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

Jonas Gorski jonas.gorski at gmail.com
Wed Nov 9 07:16:07 EST 2011


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.


A check for != 0x44xx would probably still the safest way.


Regards
Jonas



More information about the b43-dev mailing list