Skip to contentSkip to conversation

rt2x00: make vals static

PATCH In review Ivo van Doorn 2 participants 3 messages Apr 27, 2006 – Apr 28, 2006

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

PATCH 7/32 rt2x00: make vals static

From: Ivo van Doorn <[email protected]>

The vals[] arrays in *_init_hw_channels can be made static to optimize memory and reduce stack size.

drivers/net/wireless/d80211/rt2x00/rt2400pci.c +1 -1
diff -uprN wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2400pci.c wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2400pci.c
@@ -1868,7 +1868,7 @@ rt2400pci_init_hw_channels(struct rt2x00
 {
 	int				counter;
 	u16				eeprom;
-	u32 vals[] = {
+	static u32 vals[] = {
 		0x000c1fda, 0x000c1fee, 0x000c2002, 0x000c2016,
 		0x000c202a, 0x000c203e, 0x000c2052, 0x000c2066,
 		0x000c207a, 0x000c208e, 0x000c20a2, 0x000c20b6,
drivers/net/wireless/d80211/rt2x00/rt2500pci.c +11 -11
diff -uprN wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2500pci.c wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2500pci.c
@@ -1929,9 +1929,9 @@ rt2500pci_init_hw_channels(struct rt2x00
 	struct ieee80211_channel *channels)
 {
 	int				counter;
-	u16				eeprom;
 	u32				rf2_base;
-	struct {
+	u16				eeprom;
+	static struct {
 		unsigned int chip;
 		u32 val[3];
 	} rf[] = {
@@ -1947,16 +1947,16 @@ rt2500pci_init_hw_channels(struct rt2x00
 	 * Channel initialization.
 	 * First we set the basic variables.
 	 */
-		for (counter = 0; counter < 13; counter++) {
-			channels[counter].chan = counter + 1;
+	for (counter = 0; counter < 13; counter++) {
+		channels[counter].chan = counter + 1;
 		channels[counter].freq = 2407 + ((counter + 1) * 5);
 		channels[counter].flag = IEEE80211_CHAN_W_IBSS
 			| IEEE80211_CHAN_W_ACTIVE_SCAN | IEEE80211_CHAN_W_SCAN;
 		channels[counter].antenna_max = 0xff;
-		}
+	}
 
-		channels[13].chan = 14;
-		channels[13].freq = 2484;
+	channels[13].chan = 14;
+	channels[13].freq = 2484;
 	channels[13].flag = IEEE80211_CHAN_W_IBSS
 		| IEEE80211_CHAN_W_ACTIVE_SCAN | IEEE80211_CHAN_W_SCAN;
 	channels[13].antenna_max = 0xff;
@@ -1988,7 +1988,7 @@ rt2500pci_init_hw_channels(struct rt2x00
 		rf2_base = 0x00080000;
 
 	if (rt2x00_rf(&rt2x00pci->chip, RF2522)) {
-		u32 vals[] = {
+		static u32 vals[] = {
 			0x000c1fda, 0x000c1fee, 0x000c2002, 0x000c2016,
 			0x000c202a, 0x000c203e, 0x000c2052, 0x000c2066,
 			0x000c207a, 0x000c208e, 0x000c20a2, 0x000c20b6,
@@ -2000,7 +2000,7 @@ rt2500pci_init_hw_channels(struct rt2x00
 	} else if (rt2x00_rf(&rt2x00pci->chip, RF2523)
 	|| rt2x00_rf(&rt2x00pci->chip, RF2524)
 	|| rt2x00_rf(&rt2x00pci->chip, RF2525)) {
-		u32 vals[] = {
+		static u32 vals[] = {
 			0x00000c9e, 0x00000ca2, 0x00000ca6, 0x00000caa,
 			0x00000cae, 0x00000cb2, 0x00000cb6, 0x00000cba,
 			0x00000cbe, 0x00000d02, 0x00000d06, 0x00000d0a,
@@ -2012,7 +2012,7 @@ rt2500pci_init_hw_channels(struct rt2x00
 				cpu_to_le32(vals[counter] | rf2_base);
 	} else if (rt2x00_rf(&rt2x00pci->chip, RF2525E)
 	|| rt2x00_rf(&rt2x00pci->chip, RF5222)) {
-		u32 vals[] = {
+		static u32 vals[] = {
 			0x00001136, 0x0000113a, 0x0000113e, 0x00001182,
 			0x00001186, 0x0000118a, 0x0000118e, 0x00001192,
 			0x00001196, 0x0000119a, 0x0000119e, 0x000011a2,
@@ -2024,7 +2024,7 @@ rt2500pci_init_hw_channels(struct rt2x00
 				cpu_to_le32(vals[counter] | rf2_base);
 		}
 	if (rt2x00_rf(&rt2x00pci->chip, RF5222)) {
-		u32 vals[] = {
+		static u32 vals[] = {
 			0x00018896, 0x0001889a, 0x0001889e, 0x000188a2,
 			0x000188a6, 0x000188aa, 0x000188ae, 0x000188b2,
 			0x00008802, 0x00008806, 0x0000880a, 0x0000880e,
drivers/net/wireless/d80211/rt2x00/rt2500usb.c +10 -10
diff -uprN wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2500usb.c wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2500usb.c
@@ -1629,9 +1629,9 @@ rt2500usb_init_hw_channels(struct rt2x00
 	struct ieee80211_channel *channels)
 {
 	int				counter;
-	u16				eeprom;
 	u32				rf2_base;
-	struct {
+	u16				eeprom;
+	static struct {
 		unsigned int chip;
 		u32 val[3];
 	} rf[] = {
@@ -1647,16 +1647,16 @@ rt2500usb_init_hw_channels(struct rt2x00
 	 * Channel initialization.
 	 * First we set the basic variables.
 	 */
-		for (counter = 0; counter < 13; counter++) {
-			channels[counter].chan = counter + 1;
+	for (counter = 0; counter < 13; counter++) {
+		channels[counter].chan = counter + 1;
 		channels[counter].freq = 2407 + ((counter + 1) * 5);
 		channels[counter].flag = IEEE80211_CHAN_W_IBSS
 			| IEEE80211_CHAN_W_ACTIVE_SCAN | IEEE80211_CHAN_W_SCAN;
 		channels[counter].antenna_max = 0xff;
-		}
+	}
 
-		channels[13].chan = 14;
-		channels[13].freq = 2484;
+	channels[13].chan = 14;
+	channels[13].freq = 2484;
 	channels[13].flag = IEEE80211_CHAN_W_IBSS
 		| IEEE80211_CHAN_W_ACTIVE_SCAN | IEEE80211_CHAN_W_SCAN;
 	channels[13].antenna_max = 0xff;
@@ -1687,7 +1687,7 @@ rt2500usb_init_hw_channels(struct rt2x00
 		rf2_base = 0x00080000;
 
 	if (rt2x00_rf(&rt2x00usb->chip, RF2522)) {
-		u32 vals[] = {
+		static u32 vals[] = {
 			0x000c1fda, 0x000c1fee, 0x000c2002, 0x000c2016,
 			0x000c202a, 0x000c203e, 0x000c2052, 0x000c2066,
 			0x000c207a, 0x000c208e, 0x000c20a2, 0x000c20b6,
@@ -1699,7 +1699,7 @@ rt2500usb_init_hw_channels(struct rt2x00
 	} else if (rt2x00_rf(&rt2x00usb->chip, RF2523)
 	|| rt2x00_rf(&rt2x00usb->chip, RF2524)
 	|| rt2x00_rf(&rt2x00usb->chip, RF2525)) {
-		u32 vals[] = {
+		static u32 vals[] = {
 			0x00000c9e, 0x00000ca2, 0x00000ca6, 0x00000caa,
 			0x00000cae, 0x00000cb2, 0x00000cb6, 0x00000cba,
 			0x00000cbe, 0x00000d02, 0x00000d06, 0x00000d0a,
@@ -1720,7 +1720,7 @@ rt2500usb_init_hw_channels(struct rt2x00
 		for (counter = 0; counter < ARRAY_SIZE(vals); counter++)
 			channels[counter].val = cpu_to_le32(vals[counter]);
 	} else if (rt2x00_rf(&rt2x00usb->chip, RF5222)) {
-		u32 vals[] = {
+		static u32 vals[] = {
 			0x00001136, 0x0000113a, 0x0000113e, 0x00001182,
 			0x00001186, 0x0000118a, 0x0000118e, 0x00001192,
 			0x00001196, 0x0000119a, 0x0000119e, 0x000011a2,
#1 lore raw

Sie schrieben:

Quoted 4 lines

From: Ivo van Doorn <[email protected]>

The vals[] arrays in *_init_hw_channels can be made static to optimize memory and reduce stack size.

What about static const? They are also constants, right? But please try first, if this helps in terms of code size.

Regards

Ingo Oeser

#2 lore raw
Quoted 8 lines · Ingo Oeser

Sie schrieben:

Quoted 4 lines

From: Ivo van Doorn <[email protected]>

The vals[] arrays in *_init_hw_channels can be made static to optimize memory and reduce stack size.

What about static const? They are also constants, right? But please try first, if this helps in terms of code size.

Good idea, I'll create a patch to make them constant as well.