From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Arend van Spriel" Subject: Re: brcm80211 breakage.. Date: Thu, 12 Jan 2012 14:13:25 +0100 Message-ID: <4F0EDC75.3040003@broadcom.com> References: <4F0D6806.4080201@broadcom.com> <4F0DC030.6090500@lwfinger.net> <4F0E3B7E.8040005@lwfinger.net> <4F0E5E57.9060204@lwfinger.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: "Linus Torvalds" , "John W. Linville" , "Network Development" , "Franky (Zhenhui) Lin" , =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= To: "Larry Finger" Return-path: Received: from mms2.broadcom.com ([216.31.210.18]:2149 "EHLO mms2.broadcom.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753516Ab2ALNNm (ORCPT ); Thu, 12 Jan 2012 08:13:42 -0500 In-Reply-To: <4F0E5E57.9060204@lwfinger.net> Sender: netdev-owner@vger.kernel.org List-ID: On 01/12/2012 05:15 AM, Larry Finger wrote: > On 01/11/2012 08:11 PM, Linus Torvalds wrote: >> On Wed, Jan 11, 2012 at 5:46 PM, Larry Finger wrote: >>> >>> OK. The SPROM issue is not completely irrelevant as that has to be correct, >>> but obviously not sufficient. >> >> Hmm. Having dug a bit deeper, I do think it's kind of related. >> >> I get -ENODATA form sprom_read_pci(), but that function actually seems >> to get the offset *right*. >> >> Some printout shows that for that chip, I have >> >> - ai_get_ccrev(sih) = 34 >> - sprom_offset = 0x800 >> >> but then it apparently reads all ones anyway. At least in the first >> word. So then I get that -ENODATA error. >> >> So once more, it's somehow related to the sprom, just in a new place: >> sprom_read_pci() in brcmsmac/srom.c instead of drivers/bcma/sprom.c. >> >> Does that give people any new ideas to try out? > > Things are getting curious. I have a 14e4:4353 device, which works with both b43 > and brcmsmac using mainline v3.2-6271-g925b5d2. The output of > > dmesg | egrep "bcma|brcm" > > with some extra debugging added yields: > > bcma-pci-bridge 0000:06:00.0: PCI INT A -> Link[LK1E] -> GSI 22 (level, low) -> > IRQ 22 > bcma-pci-bridge 0000:06:00.0: setting latency timer to 64 > bcma: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x22, class 0x0) > bcma: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x17, class 0x0) > bcma: Core 2 found: PCIe (manuf 0x4BF, id 0x820, rev 0x0F, class 0x0) > bcma: Found rev 6 PMU (capabilities 0x108C2606) > bcma: SPROM offset 0x830 > bcma: Found SPROM Revision 8 > bcma: Bus registered > brcmsmac bcma0:0: mfg 4bf core 812 rev 23 class 0 irq 22 > brcmsmac: Found chip type AI (0x1381a8d8) > brcmsmac: Applying 43224B0+ WARs > bcma: Switched to core: 0x812 > brcms_module_init: register returned 0 > > I see no difference in the core revisions, etc. to explain why mine should work, > and yours fail. > > Arend: Any particular place we should look? > > Larry > Hi, Larry I am surprised that we end up on sprom_read_pci(). That suggests that MacBook Air has an external sprom. Can you tell me what the function ai_is_sprom_available() returns on your system? Gr. AvS