Trouble using bcm4318 compact flash with b43 driver

dylan cristiani d.cristiani at
Thu Feb 3 03:45:10 EST 2011

On Wed, 02 Feb 2011 23:40:08 +0100
Michael Büsch <mb at> wrote:

> On Wed, 2011-02-02 at 16:30 +0100, dylan cristiani wrote: 
> > --- a/drivers/ssb/pcmcia.c
> > +++ b/drivers/ssb/pcmcia.c
> > @@ -735,5 +735,5 @@ int ssb_pcmcia_get_invariants(struct ssb_bus
> > *bus, /* Fetch the vendor specific tuples. */
> > 	res = pcmcia_loop_tuple(bus->host_pcmcia, SSB_PCMCIA_CIS,
> > -				ssb_pcmcia_do_get_invariants,
> > sprom);
> > +				ssb_pcmcia_do_get_invariants, iv);
> > 	if ((res == 0) || (res == -ENOSPC))
> > 		return 0;
> That patch seems right.
> I guess that the regression was introduced with the general PCMCIA
> changes by Dominik Brodowski back in October.
> However...
> I do actually have serious trouble to figure out what you're doing.
> I'm not saying that there is no bug, but I don't understand what
> you're doing to trigger and/or track down the bug.
> Let's look at two facts you gave us in previous email:
> 1) You want to change the PCI IDs. That implies you have a PCI card.
> 2) You are patching stuff in the PCMCIA code.
i'm using PCMCIA module with BCM4318 so the 2 one is the right statement

> These two things are mutually exclusive.
> You card is either PCI xor PCMCIA. So only one of these facts can
> be true.
yes as i told using b43 driver for PCMCIA ans SSB backplane

> If it really is PCMCIA, I'll have to say that the SSB-PCMCIA
> SPROM writing code is basically untested. That means I would be
> surprised if it worked at all.
> PS:
> I also want to note that it is wrong to override the SPROM with
> an image acquired elsewhere. The SPROM contains important calibration
> data that is card-specific. So you cannot take the SPROM from one
> card and put it into another. Even if it's exactly the same card type.
> You must read SPROM -> modify that image -> write SPROM back.
i'm not trying to write to SPROM i noticed that using kernel 2.6.36 i
was seeing the warning message:
"b43-phy0 warning: Invalid max-TX-power value in SPROM"
, then the wlan card didn't associate to AP.

Then i decided to try to migrate forth to 2.6.37 then back to
2.6.34 but problem was still present; then i changed strategy and i went
very very back to 2.6.26 and i noticed that the warning message wasn't
issued and the wlan module associates to AP and worked; so i decided to
migrate, kernel by kernel, to the first one that showed up the
original problem, that was the 2.6.33; so i guessed that there were
somewhere some changes in SPROM reading methods, that were 'wasting'
some structure where those SPROM values were stored; with a big amount
of printk i located the problem then i (hope to have) fixed it; so
resuming it wasn't problem in ovverriding SPROM values but just the way
the driver was reading and storing these values; hope i explained the

eng. dylan cristiani
idem srl

More information about the b43-dev mailing list