]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ssb: do not read SPROM if it does not exist
authorJohn W. Linville <linville@tuxdriver.com>
Wed, 31 Mar 2010 19:39:35 +0000 (21:39 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 Aug 2010 17:20:49 +0000 (10:20 -0700)
commitd94dcccffd327b2858b890b10aab8eabf2f31c62
treeb0a18dd4f0d68d57208c75c53ada716456718d3d
parent7fc0405db42af7c170c6eb5d0244b38b54ea7d2c
ssb: do not read SPROM if it does not exist

commit d53cdbb94a52a920d5420ed64d986c3523a56743 upstream.

Attempting to read registers that don't exist on the SSB bus can cause
hangs on some boxes.  At least some b43 devices are 'in the wild' that
don't have SPROMs at all.  When the SSB bus support loads, it attempts
to read these (non-existant) SPROMs and causes hard hangs on the box --
no console output, etc.

This patch adds some intelligence to determine whether or not the SPROM
is present before attempting to read it.  This avoids those hard hangs
on those devices with no SPROM attached to their SSB bus.  The
SSB-attached devices (e.g. b43, et al.) won't work, but at least the box
will survive to test further patches. :-)

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Cc: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Michael Buesch <mb@bu3sch.de>
Cc: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/ssb/driver_chipcommon.c
drivers/ssb/pci.c
drivers/ssb/sprom.c
include/linux/ssb/ssb.h
include/linux/ssb/ssb_driver_chipcommon.h