From 7475bb3dc60a5c94c73035b890b7ef648cd32bdb Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat, 14 Apr 2012 12:12:22 +0000
Subject: [PATCH] brcm47xx: fix a bug in the sprom handling of bcma, this broke
 all bcma based SoCs.

bcma: use fallback sprom if no on chip sprom is available

SVN-Revision: 31285
---
 ...k-sprom-if-no-on-chip-sprom-is-avail.patch | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 target/linux/brcm47xx/patches-3.2/060-bcma-use-fallback-sprom-if-no-on-chip-sprom-is-avail.patch

diff --git a/target/linux/brcm47xx/patches-3.2/060-bcma-use-fallback-sprom-if-no-on-chip-sprom-is-avail.patch b/target/linux/brcm47xx/patches-3.2/060-bcma-use-fallback-sprom-if-no-on-chip-sprom-is-avail.patch
new file mode 100644
index 0000000000..abc638d244
--- /dev/null
+++ b/target/linux/brcm47xx/patches-3.2/060-bcma-use-fallback-sprom-if-no-on-chip-sprom-is-avail.patch
@@ -0,0 +1,24 @@
+--- a/drivers/bcma/sprom.c
++++ b/drivers/bcma/sprom.c
+@@ -404,16 +404,19 @@ int bcma_sprom_get(struct bcma_bus *bus)
+ 		return -EOPNOTSUPP;
+ 
+ 	if (!bcma_sprom_ext_available(bus)) {
++		bool sprom_onchip;
++
+ 		/*
+ 		 * External SPROM takes precedence so check
+ 		 * on-chip OTP only when no external SPROM
+ 		 * is present.
+ 		 */
+-		if (bcma_sprom_onchip_available(bus)) {
++		sprom_onchip = bcma_sprom_onchip_available(bus);
++		if (sprom_onchip) {
+ 			/* determine offset */
+ 			offset = bcma_sprom_onchip_offset(bus);
+ 		}
+-		if (!offset) {
++		if (!offset || !sprom_onchip) {
+ 			/*
+ 			 * Maybe there is no SPROM on the device?
+ 			 * Now we ask the arch code if there is some sprom
-- 
2.30.2