From: Ivo van Doorn <[EMAIL PROTECTED]> The vals[] arrays in *_init_hw_channels can be made static to optimize memory and reduce stack size.
Signed-off-by: Ivo van Doorn <[EMAIL PROTECTED]> diff -uprN wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2400pci.c wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2400pci.c --- wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2400pci.c 2006-04-27 21:40:06.000000000 +0200 +++ wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2400pci.c 2006-04-27 21:40:43.000000000 +0200 @@ -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, diff -uprN wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2500pci.c wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2500pci.c --- wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2500pci.c 2006-04-27 21:40:06.000000000 +0200 +++ wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2500pci.c 2006-04-27 21:40:43.000000000 +0200 @@ -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, diff -uprN wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2500usb.c wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2500usb.c --- wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2500usb.c 2006-04-27 21:40:06.000000000 +0200 +++ wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2500usb.c 2006-04-27 21:40:43.000000000 +0200 @@ -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,
pgpNyYhGCXOQ7.pgp
Description: PGP signature