[PATCH] ssb: Ignore dangling ethernet cores on wireless devices

Rafał Miłecki zajec5 at gmail.com
Wed Nov 9 10:46:11 EST 2011


2011/11/9 Larry Finger <Larry.Finger at lwfinger.net>:
> On 11/09/2011 06:16 AM, Jonas Gorski wrote:
>>
>> On 9 November 2011 12:51, Gábor Stefanik<netrolller.3d at gmail.com>  wrote:
>>>
>>> On Wed, Nov 9, 2011 at 12:50 PM, Gábor Stefanik<netrolller.3d at gmail.com>
>>>  wrote:
>>>>
>>>> On Wed, Nov 9, 2011 at 12:14 PM, David Woodhouse<dwmw2 at infradead.org>
>>>>  wrote:
>>>>>
>>>>> On Fri, 2011-01-07 at 19:48 +0100, Michael Büsch wrote:
>>>>>>
>>>>>> +               case SSB_DEV_ETHERNET:
>>>>>> +                       if (bus->bustype == SSB_BUSTYPE_PCI) {
>>>>>> +                               if (bus->host_pci->vendor ==
>>>>>> PCI_VENDOR_ID_BROADCOM&&
>>>>>> +                                   (bus->host_pci->device&  0xFF00)
>>>>>> == 0x4300) {
>>>>>> +                                       /* This is a dangling ethernet
>>>>>> core on a
>>>>>> +                                        * wireless device. Ignore it.
>>>>>> */
>>>>>> +                                       continue;
>>>>>> +                               }
>>>>>> +                       }
>>>>>> +                       break;
>>>>>
>>>>> Do you also need to check for (bus->host_pci->device / 1000) == 43?
>>>>> Or do the chips with 5-digit 'decimal' IDs not have the Ethernet cores?
>>>>>
>>>>> Would it be better to invert the test and check for != 0x4400?
>>>>
>>>> I do not know of any Broadcom wireless device with a decimal PCI ID
>>>> (as opposed to a decimal Chip ID).
>>>
>>> Edit: However, 0x4700 should also be checked, as some BCM43xx chips
>>> use 0x47xx PCI IDs.
>>
>> As far as I can tell from this snippet (I'm missing the original
>> message), this code is SSB, and the only 0x47xx I know of is the
>> BCM4313, and that's a BCMA card. So this doesn't apply here.
>>
>> Same for the five digit Chip IDs (which might leak into the PCI ID, if
>> the card has no SPROM), AFAIK these are also BCMA exclusive.
>
> The only known card with this problem is the BCM4303, with PCI IDs
> 14e4:4301. My suspicion is that Broadcom created a chip that could be used
> for wireless or wired depending on which core was connected. Thus, it is an
> artifact of the early days. One can clean up the code as much as you want,
> but I do not believe any other chips are involved.

It's BCM4301 btw. There was incorrect entry in lspci db for some time.
b43legacy has been always detecting it as BCM4301.

-- 
Rafał



More information about the b43-dev mailing list