All of lore.kernel.org
 help / color / mirror / Atom feed
From: Larry Finger <Larry.Finger@lwfinger.net>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "Arend van Spriel" <arend@broadcom.com>,
	"Alwin Beukers" <alwin@broadcom.com>,
	"Roland Vossen" <rvossen@broadcom.com>,
	"John W. Linville" <linville@tuxdriver.com>,
	"Network Development" <netdev@vger.kernel.org>,
	"Franky (Zhenhui) Lin" <frankyl@broadcom.com>,
	"Rafał Miłecki" <zajec5@gmail.com>
Subject: Re: brcm80211 breakage..
Date: Thu, 12 Jan 2012 19:53:16 -0600	[thread overview]
Message-ID: <4F0F8E8C.9020000@lwfinger.net> (raw)
In-Reply-To: <CA+55aFx2UnVZP1Z44dMHeifB2nD1zJ87kz25zZjUdwv0ozwKPA@mail.gmail.com>

On 01/12/2012 01:00 PM, Linus Torvalds wrote:
> On Wed, Jan 11, 2012 at 11:13 PM, Linus Torvalds
> <torvalds@linux-foundation.org>  wrote:
>>
>> All the BCMA changes make the revert somewhat non-trivial, could
>> somebody who knows the code better please try to do it for me? It
>> doesn't look complicated, and I can try to do it myself tomorrow if
>> nobody else steps up, but I'd *really* prefer the guilty parties
>> themselves to do it, ok?
>
> Since I had the hardware to test, I could work on this and try to
> figure out exactly what went wrong in that commit.
>
> The problem seems to be simple: the SPROM contents *have* to be read
> as aligned 16-bit words. Anything else seems to return 0xff and just
> fails the transaction.
>
> I didn't check all the combinations, of course, so who knows what the
> exact details are, but it does look like the sprom has very limited
> pci decode and simply refuses to touch anything but the one case it
> can handle.
>
> I'll send out a patch that seems to get things to a working state for
> me. At least I have wireless connectivity again, I don't know if there
> are some other problems remaining.

As my device has both SPROM and OTP, I hacked on it to get it to use the SPROM 
rather than the default OTP.

I learned that reading by byte on my HP laptop fails the same was as did the 
MacBook - it is not an Apple artifact.

Note, the patch that worked for me is as follows:

Index: linux-2.6/drivers/net/wireless/brcm80211/brcmsmac/srom.c
===================================================================
--- linux-2.6.orig/drivers/net/wireless/brcm80211/brcmsmac/srom.c
+++ linux-2.6/drivers/net/wireless/brcm80211/brcmsmac/srom.c
@@ -786,9 +786,12 @@ sprom_read_pci(struct si_pub *sih, u16 *
  		sprom_offset = CHIPCREGOFFS(sromotp);
  	}

-	/* read the sprom in bytes */
-	for (i = 0; i < nbytes; i++)
-		bbuf[i] = bcma_read8(core, sprom_offset+i);
+	/* read the sprom - this operation must be done by words */
+	for (i = 0; i < nbytes; i += 2) {
+		u16 data = bcma_read16(core, sprom_offset+i);
+		bbuf[i] = data & 0xff;
+		bbuf[i+1] = (data >> 8) & 0xff;
+	}

  	if (buf[0] == 0xffff)
  		/*


Larry

  parent reply	other threads:[~2012-01-13  1:53 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-10 20:15 brcm80211 breakage Linus Torvalds
2012-01-11 10:44 ` Arend van Spriel
2012-01-11 15:05   ` Linus Torvalds
2012-01-11 16:04     ` Linus Torvalds
2012-01-11 17:00       ` Larry Finger
2012-01-12  1:06         ` Linus Torvalds
2012-01-12  1:46           ` Larry Finger
2012-01-12  1:58             ` Linus Torvalds
2012-01-12  2:11             ` Linus Torvalds
2012-01-12  4:15               ` Larry Finger
2012-01-12  5:20                 ` Linus Torvalds
2012-01-12  5:30                   ` Linus Torvalds
2012-01-12  7:08                     ` Rafał Miłecki
2012-01-12  7:10                       ` Rafał Miłecki
2012-01-12  7:18                       ` Linus Torvalds
2012-01-12 15:39                       ` Larry Finger
2012-01-12 15:46                         ` Rafał Miłecki
2012-01-12  7:13                     ` Linus Torvalds
2012-01-12  7:18                       ` Rafał Miłecki
2012-01-12  7:22                         ` Linus Torvalds
2012-01-12 10:03                       ` Arend van Spriel
2012-01-12 15:51                         ` Linus Torvalds
2012-01-12 19:00                       ` Linus Torvalds
2012-01-12 19:08                         ` Linus Torvalds
2012-01-12 20:09                           ` Arend van Spriel
2012-01-12 20:27                             ` Linus Torvalds
2012-01-12 20:36                               ` Arend van Spriel
2012-01-12 22:38                               ` Linus Torvalds
2012-01-12 22:42                                 ` Rafał Miłecki
2012-01-12 22:45                                   ` Linus Torvalds
2012-01-12 23:04                                     ` Rafał Miłecki
2012-01-13  0:13                                       ` Linus Torvalds
2012-01-13  2:30                                         ` Linus Torvalds
2012-01-13  5:34                                           ` Linus Torvalds
2012-01-13  6:50                                             ` Rafał Miłecki
2012-01-13  6:57                                               ` Rafał Miłecki
2012-01-13  7:17                                                 ` Linus Torvalds
2012-01-13  7:41                                                   ` [PATCH] bcma: s&r: NULL mapped core Rafał Miłecki
2012-01-13  7:53                                                     ` Linus Torvalds
2012-01-13  7:59                                                     ` [0/5] bcma/brcmsmac suspend/resume cleanups and fixes Linus Torvalds
2012-01-13  8:00                                                       ` [PATCH 1/5] bcma: convert suspend/resume to pm_ops Linus Torvalds
2012-01-13  9:58                                                         ` Arend van Spriel
2012-01-13 10:01                                                           ` Rafał Miłecki
2012-01-13  8:00                                                       ` [PATCH 2/5] bcma: add stub for bcma_bus suspend() Linus Torvalds
2012-01-13  8:01                                                       ` [PATCH 3/5] bcma: connect the bcma bus suspend/resume to the bcma driver suspend/resume Linus Torvalds
2012-01-13  8:01                                                       ` [PATCH 4/5] brcmsmac: remove PCI suspend/resume from bcma driver Linus Torvalds
2012-01-13  9:59                                                         ` Arend van Spriel
2012-01-13  8:02                                                       ` [PATCH 5/5] bcma: invalidate the mapped window over suspend/resume Linus Torvalds
2012-01-13 10:03                                                       ` [0/5] bcma/brcmsmac suspend/resume cleanups and fixes Rafał Miłecki
2012-01-13 16:15                                                         ` Linus Torvalds
2012-01-13 11:06                                                       ` Arend van Spriel
2012-01-13 16:23                                                         ` Linus Torvalds
2012-01-14  3:50                                                         ` Linus Torvalds
2012-01-14 12:22                                                           ` Dominique Martinet
2012-01-14 14:34                                                             ` Rafał Miłecki
2012-01-14 15:07                                                               ` Dominique Martinet
2012-01-14 19:15                                                             ` Linus Torvalds
2012-01-14 23:08                                                               ` Dominique Martinet
2012-01-14 23:28                                                                 ` Linus Torvalds
2012-01-14 17:36                                                           ` Arend van Spriel
2012-01-16 14:00                                                           ` Arend van Spriel
2012-01-16 17:33                                                             ` Arend van Spriel
2012-01-17  1:12                                                               ` Linus Torvalds
2012-01-17 10:37                                                                 ` Arend van Spriel
2012-01-19  9:42                                                                 ` Arend van Spriel
2012-01-19 12:12                                                                 ` Arend van Spriel
2012-01-19 16:15                                                                   ` Linus Torvalds
2012-01-13  7:13                                               ` brcm80211 breakage Linus Torvalds
2012-01-12 19:46                         ` Arend van Spriel
2012-01-13  1:53                         ` Larry Finger [this message]
2012-01-31 12:08                         ` Henrik Rydberg
2012-01-31 17:02                           ` Linus Torvalds
2012-01-31 19:08                             ` Arend van Spriel
2012-01-31 19:25                               ` John W. Linville
2012-01-31 19:35                                 ` Arend van Spriel
2012-01-31 19:58                                 ` Henrik Rydberg
2012-01-31 20:21                                   ` Arend van Spriel
2012-01-31 22:23                                     ` Henrik Rydberg
2012-01-31 19:36                               ` Henrik Rydberg
2012-01-31 19:49                                 ` Arend van Spriel
2012-01-12 13:13                 ` Arend van Spriel
2012-01-12 16:22                   ` Larry Finger
2012-01-12 17:18                   ` Larry Finger
2012-01-12 17:31                     ` Linus Torvalds
2012-01-12 17:44                       ` Larry Finger
2012-01-11 21:01       ` Arend van Spriel
2012-01-12  0:07         ` Linus Torvalds
2012-01-11 17:15   ` Ben Hutchings
2012-01-12  0:10     ` Linus Torvalds

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F0F8E8C.9020000@lwfinger.net \
    --to=larry.finger@lwfinger.net \
    --cc=alwin@broadcom.com \
    --cc=arend@broadcom.com \
    --cc=frankyl@broadcom.com \
    --cc=linville@tuxdriver.com \
    --cc=netdev@vger.kernel.org \
    --cc=rvossen@broadcom.com \
    --cc=torvalds@linux-foundation.org \
    --cc=zajec5@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.