Skip to contentSkip to conversation

ssb: Add support for new ChipCommon

PATCH In review Michael Buesch 1 participant 2 messages Aug 26, 2006 1 message not in the archive

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ssb: Add support for new ChipCommon

Hi John,

Please apply this to wireless-dev.

--

This adds support for the new 0x900 ChipCommon core.

drivers/misc/ssb.c +2 -2
Index: wireless-dev/drivers/misc/ssb.c
===================================================================
@@ -648,7 +648,7 @@
 
 	ssb->chipcommon_capabilities = 0;
 	ssb->nr_cores = 0;
-	if (cc == SSB_CC_CHIPCOMMON) {
+	if (cc == SSB_CC_CHIPCOMMON || cc == SSB_CC_CHIPCOMMON2) {
 		tmp = ssb_read32(ssb, SSB_CHIPCOMMON_CHIPID);
 
 		ssb->chip_id = (tmp & SSB_CHIPCOMMON_IDMASK);
@@ -656,7 +656,7 @@
 				SSB_CHIPCOMMON_REVSHIFT;
 		ssb->chip_package = (tmp & SSB_CHIPCOMMON_PACKMASK) >>
 				    SSB_CHIPCOMMON_PACKSHIFT;
-		if (rev >= 4) {
+		if (rev >= 4 || cc == SSB_CC_CHIPCOMMON2) {
 			ssb->nr_cores = (tmp & SSB_CHIPCOMMON_NRCORESMASK) >>
 					SSB_CHIPCOMMON_NRCORESSHIFT;
 		}
include/linux/ssb.h +1 -0
Index: wireless-dev/include/linux/ssb.h
===================================================================
@@ -251,6 +251,7 @@
 #define SSB_CC_MINI_MACPHY	0x823
 #define SSB_CC_ARM_1176		0x824
 #define SSB_CC_ARM_7TDMI	0x825
+#define SSB_CC_CHIPCOMMON2	0x900
 
 
 /* ChipCommon core registers. */
Signature · 1 line
Greetings Michael.

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw

Oops, sorry. Please drop this.
This patch is wrong and I will submit a correct one, soon. a 0x900 core does not exist. Instead the meaning of the revision bits changed slightly.

Quoted 46 lines · Michael Buesch

Hi John,

Please apply this to wireless-dev.

--

This adds support for the new 0x900 ChipCommon core.

Index: wireless-dev/drivers/misc/ssb.c
===================================================================

drivers/misc/ssb.c +2 -2
@@ -648,7 +648,7 @@
 
 	ssb->chipcommon_capabilities = 0;
 	ssb->nr_cores = 0;
-	if (cc == SSB_CC_CHIPCOMMON) {
+	if (cc == SSB_CC_CHIPCOMMON || cc == SSB_CC_CHIPCOMMON2) {
 		tmp = ssb_read32(ssb, SSB_CHIPCOMMON_CHIPID);
 
 		ssb->chip_id = (tmp & SSB_CHIPCOMMON_IDMASK);
@@ -656,7 +656,7 @@
 				SSB_CHIPCOMMON_REVSHIFT;
 		ssb->chip_package = (tmp & SSB_CHIPCOMMON_PACKMASK) >>
 				    SSB_CHIPCOMMON_PACKSHIFT;
-		if (rev >= 4) {
+		if (rev >= 4 || cc == SSB_CC_CHIPCOMMON2) {
 			ssb->nr_cores = (tmp & SSB_CHIPCOMMON_NRCORESMASK) >>
 					SSB_CHIPCOMMON_NRCORESSHIFT;
 		}

Index: wireless-dev/include/linux/ssb.h
===================================================================

include/linux/ssb.h +1 -0
@@ -251,6 +251,7 @@
 #define SSB_CC_MINI_MACPHY	0x823
 #define SSB_CC_ARM_1176		0x824
 #define SSB_CC_ARM_7TDMI	0x825
+#define SSB_CC_CHIPCOMMON2	0x900
 
 
 /* ChipCommon core registers. */
Signature · 1 line
Greetings Michael.