cvs commit: src/sys/dev/cardbus cardbus.c
Scott Long
scottl at samsco.org
Tue Mar 8 23:26:37 GMT 2005
Kevin Oberman wrote:
>>Date: Tue, 08 Mar 2005 15:33:34 -0700
>>From: Scott Long <scottl at samsco.org>
>>
>>Kevin Oberman wrote:
>>
>>>>Date: Tue, 08 Mar 2005 09:35:35 -0700 (MST)
>>>>From: "M. Warner Losh" <imp at bsdimp.com>
>>>>Sender: owner-cvs-all at freebsd.org
>>>>
>>>>In message: <20050308072731.GI94451 at obiwan.tataz.chchile.org>
>>>> Jeremie Le Hen <jeremie at le-hen.org> writes:
>>>>: > Both laptops are Dell (Inspiron 4150 and Inspiron 8100).
>>>>:
>>>>: I don't know if it cares, but mine is a Dell Latitute CPx.
>>>>:
>>>>: dmesg(8) is attached, with cardbus rev 1.48.
>>>>
>>>>This looks like it is working to me. Is that correct? I tried it
>>>>last night on my Sony and got two interesting results. The rl card I
>>>>have just worked, and the dc card appeared to work, but locked up the
>>>>system completely. I've noticed some anomalies with the lights on the
>>>>card (which indicate power issues), which may be the cause of some of
>>>>these problems. I'll look into those when I get the chance (maybe
>>>>Thursday night unless work is exceptionally non-busy before then).
>>>
>>>
>>>The if_dc issues is with busdma and Scott is aware of it. (Hopefully a
>>>fix is coming soon.) In the meantime I have a patch to get dc to work
>>>again. It's a kludge, but it at least lives.
>>>
>>>
>>>------------------------------------------------------------------------
>>>
>>>--- sys/pci/if_dc.c~ Fri Oct 15 17:53:44 2004
>>>+++ sys/pci/if_dc.c Mon Dec 20 14:22:48 2004
>>>@@ -2151,8 +2151,8 @@
>>> }
>>>
>>> /* Allocate a busdma tag for mbufs. */
>>> error = bus_dma_tag_create(NULL, PAGE_SIZE, 0, BUS_SPACE_MAXADDR_32BIT,
>>>- BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES * DC_TX_LIST_CNT,
>>>+ BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES,
>>> DC_TX_LIST_CNT, MCLBYTES, 0, NULL, NULL, &sc->dc_mtag);
>>> if (error) {
>>> printf("dc%d: failed to allocate busdma tag\n", unit);
>>
>>I think that this patch is actually the correct thing to do. I also
>>believe that the alignment argument should be changed from PAGE_SIZE to
>>'1'. Considering that busdma never used to do alignment fixups, this
>>change should effectively be a NOP for the driver, and will avoid the
>>whole bounce-buffer mess. Care to give this a sanity test?
>
>
> Oops! I sent the wrong diff. Sorry, It was an older one. The current one
> is:
> --- sys/pci/if_dc.c.orig Thu Mar 3 16:00:57 2005
> +++ sys/pci/if_dc.c Tue Mar 8 14:41:20 2005
> @@ -2147,8 +2147,8 @@
> }
>
> /* Allocate a busdma tag for mbufs. */
> - error = bus_dma_tag_create(NULL, PAGE_SIZE, 0, BUS_SPACE_MAXADDR_32BIT,
> - BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES * DC_TX_LIST_CNT,
> + error = bus_dma_tag_create(NULL, 1, 0, BUS_SPACE_MAXADDR_32BIT,
> + BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES,
> DC_TX_LIST_CNT, MCLBYTES, 0, NULL, NULL, &sc->dc_mtag);
> if (error) {
> printf("dc%d: failed to allocate busdma tag\n", unit);
>
> I can confirm that this one makes my Xircom card work just fine. It
> would be nice to get this committed if it's an acceptable fix. I have no
> idea who should do this as if_dc does not show up in MAINTAINERS. I guess
> most any committer (Scott...Warner?) can do it.
Done, thanks!
Scott
More information about the cvs-src
mailing list