From: René Bolldorf on
On 03/29/10 17:59, Ren� Bolldorf wrote:
> Hi John,
>
> since commit fcb54b0bf7d3fe730c2b72e224bc616e358f24cb, my b43 (4312)
> device doesn't work.
>
> But the device have a sprom. Maybe the chip-status register check is wrong?
>
> +/** Macros to determine SPROM presence based on Chip-Status register. */
> +#define SSB_CHIPCO_CHST_4312_SPROM_PRESENT(status) \
> + ((status & SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL) != \
> + SSB_CHIPCO_CHST_4325_OTP_SEL)

I have talked with my colleague and he have the same problem. I have
made a patch , for me it works and should work for others too. My
colleague testing this in the late evening.

diff --git a/include/linux/ssb/ssb_driver_chipcommon.h
b/include/linux/ssb/ssb_driver_chipcommon.h
index 2cdf249..1e0b9cd 100644
--- a/include/linux/ssb/ssb_driver_chipcommon.h
+++ b/include/linux/ssb/ssb_driver_chipcommon.h
@@ -386,6 +386,7 @@


/** Chip specific Chip-Status register contents. */
+#define SSB_CHIPCO_CHST_4312_SPROM_EXISTS 0x00000025
#define SSB_CHIPCO_CHST_4322_SPROM_EXISTS 0x00000040 /* SPROM present */
#define SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL 0x00000003
#define SSB_CHIPCO_CHST_4325_DEFCIS_SEL 0 /* OTP is powered up, use
def. CIS, no SPROM */
@@ -403,7 +404,7 @@
/** Macros to determine SPROM presence based on Chip-Status register. */
#define SSB_CHIPCO_CHST_4312_SPROM_PRESENT(status) \
((status & SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL) != \
- SSB_CHIPCO_CHST_4325_OTP_SEL)
+ SSB_CHIPCO_CHST_4312_SPROM_EXISTS)
#define SSB_CHIPCO_CHST_4322_SPROM_PRESENT(status) \
(status & SSB_CHIPCO_CHST_4322_SPROM_EXISTS)
#define SSB_CHIPCO_CHST_4325_SPROM_PRESENT(status) \
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Larry Finger on
Ren�,

When you have a wireless problem, please post it to
linux-wireless(a)vger.kernel.org. The Linux Kernel Mailing List may or may not be
appropriate.

To help in diagnosing your problem, please apply this patch and post the output
line that it produces. On my system, it shows

ssb: chip_id 0x4312, status 0x10

Please also post the output of 'lspci -nnv | grep 14e4'.

Index: wireless-testing/drivers/ssb/sprom.c
===================================================================
--- wireless-testing.orig/drivers/ssb/sprom.c
+++ wireless-testing/drivers/ssb/sprom.c
@@ -182,6 +182,8 @@ bool ssb_is_sprom_available(struct ssb_b
if (bus->chipco.dev->id.revision < 11)
return true;

+ printk(KERN_INFO "ssb: chip_id 0x%x, status 0x%x\n", bus->chip_id,
+ bus->chipco.status);
switch (bus->chip_id) {
case 0x4312:
return SSB_CHIPCO_CHST_4312_SPROM_PRESENT(bus->chipco.status);


Larry


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/