Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 08 Mar 2005 15:33:34 -0700
From:      Scott Long <scottl@samsco.org>
To:        Kevin Oberman <oberman@es.net>
Cc:        "M. Warner Losh" <imp@bsdimp.com>
Subject:   Re: cvs commit: src/sys/dev/cardbus cardbus.c
Message-ID:  <422E283E.3080009@samsco.org>
In-Reply-To: <20050308221021.5FA265D08@ptavv.es.net>
References:  <20050308221021.5FA265D08@ptavv.es.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Kevin Oberman wrote:
>>Date: Tue, 08 Mar 2005 09:35:35 -0700 (MST)
>>From: "M. Warner Losh" <imp@bsdimp.com>
>>Sender: owner-cvs-all@freebsd.org
>>
>>In message: <20050308072731.GI94451@obiwan.tataz.chchile.org>
>>            Jeremie Le Hen <jeremie@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?

Scott



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?422E283E.3080009>