aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2008-04-15 19:54:53 -0700
committerLuis R. Rodriguez <lrodriguez@atheros.com>2008-04-15 19:54:53 -0700
commit07e58f688d541cf3530074c19b43d66386b65be6 (patch)
tree4711c0224defb668e6061a70a93a6ede2febad85
parent90889dec3a241c43cc2fbfdff90ee4e0360a72af (diff)
downloadcompat-wireless-2.6-old-07e58f688d541cf3530074c19b43d66386b65be6.tar.gz
Update compat-wireless to reflect new changes, also
select SSB_BLOCKIO when B43_PIO is used. Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
-rw-r--r--compat/compat.diff498
-rw-r--r--config.mk2
-rwxr-xr-xscripts/admin-update.sh6
3 files changed, 253 insertions, 253 deletions
diff --git a/compat/compat.diff b/compat/compat.diff
index 84512d8..38f5191 100644
--- a/compat/compat.diff
+++ b/compat/compat.diff
@@ -8,32 +8,6 @@
/*
* 802.11 configuration in-kernel interface
---- a/net/mac80211/tx.c 2008-02-28 19:54:52.000000000 +0100
-+++ b/net/mac80211/tx.c 2008-02-28 19:55:23.000000000 +0100
-@@ -18,7 +18,9 @@
- #include <linux/etherdevice.h>
- #include <linux/bitmap.h>
- #include <linux/rcupdate.h>
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
- #include <net/net_namespace.h>
-+#endif
- #include <net/ieee80211_radiotap.h>
- #include <net/cfg80211.h>
- #include <net/mac80211.h>
-@@ -1617,8 +1619,13 @@ int ieee80211_subif_start_xmit(struct sk
- pkt_data->flags |= IEEE80211_TXPD_EAPOL_FRAME;
-
- skb->dev = local->mdev;
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22))
-+ sdata->stats.tx_packets++;
-+ sdata->stats.tx_bytes += skb->len;
-+#else
- dev->stats.tx_packets++;
- dev->stats.tx_bytes += skb->len;
-+#endif
-
- /* Update skb pointers to various headers since this modified frame
- * is going to go through Linux networking code that may potentially
--- a/net/wireless/sysfs.c 2008-02-28 19:54:52.000000000 +0100
+++ b/net/wireless/sysfs.c 2008-02-28 19:54:53.000000000 +0100
@@ -52,6 +52,7 @@ static void wiphy_dev_release(struct dev
@@ -91,24 +65,6 @@
struct pcmcia_device;
---- a/net/mac80211/util.c 2008-02-28 19:54:52.000000000 +0100
-+++ b/net/mac80211/util.c 2008-02-28 19:54:53.000000000 +0100
-@@ -20,9 +20,15 @@
- #include <linux/if_arp.h>
- #include <linux/wireless.h>
- #include <linux/bitmap.h>
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
- #include <net/net_namespace.h>
-+#endif
- #include <net/cfg80211.h>
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22))
- #include <net/rtnetlink.h>
-+#else
-+#include <linux/rtnetlink.h>
-+#endif
-
- #include "ieee80211_i.h"
- #include "ieee80211_rate.h"
--- a/net/ieee80211/ieee80211_module.c 2008-02-28 19:54:52.000000000 +0100
+++ b/net/ieee80211/ieee80211_module.c 2008-02-28 19:54:53.000000000 +0100
@@ -47,7 +47,9 @@
@@ -121,16 +77,6 @@
#include <net/arp.h>
#include <net/ieee80211.h>
---- a/drivers/net/wireless/libertas/dev.h 2008-02-28 19:54:52.000000000 +0100
-+++ b/drivers/net/wireless/libertas/dev.h 2008-02-28 19:54:53.000000000 +0100
-@@ -10,6 +10,7 @@
- #include <linux/wireless.h>
- #include <linux/ethtool.h>
- #include <linux/debugfs.h>
-+#include <net/compat.h>
-
- #include "defs.h"
- #include "scan.h"
--- a/net/mac80211/cfg.c 2008-02-28 19:54:52.000000000 +0100
+++ b/net/mac80211/cfg.c 2008-02-28 19:54:53.000000000 +0100
@@ -9,7 +9,9 @@
@@ -299,9 +245,219 @@
obj-$(CONFIG_EEPROM_93CX6) += eeprom_93cx6.o
-obj-$(CONFIG_INTEL_MENLOW) += intel_menlow.o
-obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
---- a/drivers/net/wireless/adm8211.c 2008-02-28 19:54:52.000000000 +0100
-+++ b/drivers/net/wireless/adm8211.c 2008-02-28 19:54:53.000000000 +0100
-@@ -143,7 +143,11 @@ static int adm8211_read_eeprom(struct ie
+--- a/net/wireless/core.c 2008-02-28 19:54:52.000000000 +0100
++++ b/net/wireless/core.c 2008-02-28 19:54:53.000000000 +0100
+@@ -71,9 +71,9 @@ __cfg80211_drv_from_info(struct genl_inf
+ ifindex = nla_get_u32(info->attrs[NL80211_ATTR_IFINDEX]);
+ dev = dev_get_by_index(&init_net, ifindex);
+ if (dev) {
+- if (dev->ieee80211_ptr)
++ if (((struct wireless_dev *)dev->ieee80211_ptr))
+ byifidx =
+- wiphy_to_dev(dev->ieee80211_ptr->wiphy);
++ wiphy_to_dev(((struct wireless_dev *)dev->ieee80211_ptr)->wiphy);
+ dev_put(dev);
+ }
+ err = -ENODEV;
+@@ -123,8 +123,8 @@ cfg80211_get_dev_from_ifindex(int ifinde
+ dev = dev_get_by_index(&init_net, ifindex);
+ if (!dev)
+ goto out;
+- if (dev->ieee80211_ptr) {
+- drv = wiphy_to_dev(dev->ieee80211_ptr->wiphy);
++ if (((struct wireless_dev *)dev->ieee80211_ptr)) {
++ drv = wiphy_to_dev(((struct wireless_dev *)dev->ieee80211_ptr)->wiphy);
+ mutex_lock(&drv->mtx);
+ } else
+ drv = ERR_PTR(-ENODEV);
+@@ -345,28 +345,28 @@ static int cfg80211_netdev_notifier_call
+ struct net_device *dev = ndev;
+ struct cfg80211_registered_device *rdev;
+
+- if (!dev->ieee80211_ptr)
++ if (!((struct wireless_dev *)dev->ieee80211_ptr))
+ return 0;
+
+- rdev = wiphy_to_dev(dev->ieee80211_ptr->wiphy);
++ rdev = wiphy_to_dev(((struct wireless_dev *)dev->ieee80211_ptr)->wiphy);
+
+ switch (state) {
+ case NETDEV_REGISTER:
+ mutex_lock(&rdev->devlist_mtx);
+- list_add(&dev->ieee80211_ptr->list, &rdev->netdev_list);
++ list_add(&((struct wireless_dev *)dev->ieee80211_ptr)->list, &rdev->netdev_list);
+ if (sysfs_create_link(&dev->dev.kobj, &rdev->wiphy.dev.kobj,
+ "phy80211")) {
+ printk(KERN_ERR "wireless: failed to add phy80211 "
+ "symlink to netdev!\n");
+ }
+- dev->ieee80211_ptr->netdev = dev;
++ ((struct wireless_dev *)dev->ieee80211_ptr)->netdev = dev;
+ mutex_unlock(&rdev->devlist_mtx);
+ break;
+ case NETDEV_UNREGISTER:
+ mutex_lock(&rdev->devlist_mtx);
+- if (!list_empty(&dev->ieee80211_ptr->list)) {
++ if (!list_empty(&((struct wireless_dev *)dev->ieee80211_ptr)->list)) {
+ sysfs_remove_link(&dev->dev.kobj, "phy80211");
+- list_del_init(&dev->ieee80211_ptr->list);
++ list_del_init(&((struct wireless_dev *)dev->ieee80211_ptr)->list);
+ }
+ mutex_unlock(&rdev->devlist_mtx);
+ break;
+--- a/net/wireless/nl80211.c 2008-02-28 19:54:52.000000000 +0100
++++ b/net/wireless/nl80211.c 2008-02-28 19:54:53.000000000 +0100
+@@ -1062,7 +1062,7 @@ static int get_vlan(struct nlattr *vlana
+ return -ENODEV;
+ if (!(*vlan)->ieee80211_ptr)
+ return -EINVAL;
+- if ((*vlan)->ieee80211_ptr->wiphy != &rdev->wiphy)
++ if (((struct wireless_dev *)(*vlan)->ieee80211_ptr)->wiphy != &rdev->wiphy)
+ return -EINVAL;
+ }
+ return 0;
+--- a/drivers/net/wireless/zd1211rw/zd_mac.c 2008-03-07 20:02:06.000000000 -0500
++++ b/drivers/net/wireless/zd1211rw/zd_mac.c 2008-03-07 20:02:07.000000000 -0500
+@@ -1042,5 +1042,5 @@
+ dev_dbg_f(zd_mac_dev(mac), "\n");
+ cancel_rearming_delayed_workqueue(zd_workqueue,
+ &mac->housekeeping.link_led_work);
+- zd_chip_control_leds(&mac->chip, LED_OFF);
++ zd_chip_control_leds(&mac->chip, LED_OFF_ZD);
+ }
+--- a/drivers/net/wireless/zd1211rw/zd_chip.c 2008-03-07 20:02:06.000000000 -0500
++++ b/drivers/net/wireless/zd1211rw/zd_chip.c 2008-03-07 20:02:07.000000000 -0500
+@@ -1281,7 +1281,7 @@
+ other_led = chip->link_led == LED1 ? LED2 : LED1;
+
+ switch (status) {
+- case LED_OFF:
++ case LED_OFF_ZD:
+ ioreqs[0].value = FW_LINK_OFF;
+ ioreqs[1].value = v[1] & ~(LED1|LED2);
+ break;
+--- a/drivers/net/wireless/zd1211rw/zd_chip.h 2008-03-07 20:02:06.000000000 -0500
++++ b/drivers/net/wireless/zd1211rw/zd_chip.h 2008-03-07 20:02:07.000000000 -0500
+@@ -897,7 +897,7 @@
+ int zd_chip_unlock_phy_regs(struct zd_chip *chip);
+
+ enum led_status {
+- LED_OFF = 0,
++ LED_OFF_ZD = 0,
+ LED_SCANNING = 1,
+ LED_ASSOCIATED = 2,
+ };
+--- a/drivers/net/wireless/ath5k/hw.c 2008-03-14 10:32:35.000000000 -0400
++++ b/drivers/net/wireless/ath5k/hw.c 2008-03-14 10:32:36.000000000 -0400
+@@ -385,7 +385,11 @@
+ /* reseting PCI on PCI-E cards results card to hang
+ * and always return 0xffff... so we ingore that flag
+ * for PCI-E cards */
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
++ bus_flags = (compat_is_pcie(pdev)) ? 0 : AR5K_RESET_CTL_PCI;
++#else
+ bus_flags = (pdev->is_pcie) ? 0 : AR5K_RESET_CTL_PCI;
++#endif
+
+ /* Reset chipset */
+ ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU |
+@@ -937,7 +941,11 @@
+ * TODO: Check out tx triger level, it's always 64 on dumps but I
+ * guess we can tweak it and see how it goes ;-)
+ */
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
++ dma_size = (compat_is_pcie(pdev)) ? AR5K_DMASIZE_128B : AR5K_DMASIZE_512B;
++#else
+ dma_size = (pdev->is_pcie) ? AR5K_DMASIZE_128B : AR5K_DMASIZE_512B;
++#endif
+ if (ah->ah_version != AR5K_AR5210) {
+ AR5K_REG_WRITE_BITS(ah, AR5K_TXCFG,
+ AR5K_TXCFG_SDMAMR, dma_size);
+--- a/drivers/net/wireless/libertas/ethtool.c 2008-04-03 21:51:48.000000000 -0400
++++ b/drivers/net/wireless/libertas/ethtool.c 2008-04-03 21:51:49.000000000 -0400
+@@ -111,6 +111,7 @@
+ lbs_deb_enter(LBS_DEB_ETHTOOL);
+ }
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
+ static int lbs_ethtool_get_sset_count(struct net_device * dev, int sset)
+ {
+ switch (sset) {
+@@ -120,6 +121,7 @@
+ return -EOPNOTSUPP;
+ }
+ }
++#endif
+
+ static void lbs_ethtool_get_strings(struct net_device *dev,
+ u32 stringset,
+@@ -188,7 +190,9 @@
+ .get_drvinfo = lbs_ethtool_get_drvinfo,
+ .get_eeprom = lbs_ethtool_get_eeprom,
+ .get_eeprom_len = lbs_ethtool_get_eeprom_len,
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
+ .get_sset_count = lbs_ethtool_get_sset_count,
++#endif
+ .get_ethtool_stats = lbs_ethtool_get_stats,
+ .get_strings = lbs_ethtool_get_strings,
+ .get_wol = lbs_ethtool_get_wol,
+--- a/net/mac80211/tx.c 2008-04-15 19:25:05.000000000 -0700
++++ b/net/mac80211/tx.c 2008-04-15 19:25:05.000000000 -0700
+@@ -18,7 +18,9 @@
+ #include <linux/etherdevice.h>
+ #include <linux/bitmap.h>
+ #include <linux/rcupdate.h>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
+ #include <net/net_namespace.h>
++#endif
+ #include <net/ieee80211_radiotap.h>
+ #include <net/cfg80211.h>
+ #include <net/mac80211.h>
+@@ -1618,8 +1620,13 @@
+ pkt_data->flags |= IEEE80211_TXPD_EAPOL_FRAME;
+
+ skb->dev = local->mdev;
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22))
++ sdata->stats.tx_packets++;
++ sdata->stats.tx_bytes += skb->len;
++#else
+ dev->stats.tx_packets++;
+ dev->stats.tx_bytes += skb->len;
++#endif
+
+ /* Update skb pointers to various headers since this modified frame
+ * is going to go through Linux networking code that may potentially
+--- a/net/mac80211/util.c 2008-04-15 19:25:05.000000000 -0700
++++ b/net/mac80211/util.c 2008-04-15 19:25:05.000000000 -0700
+@@ -20,9 +20,15 @@
+ #include <linux/if_arp.h>
+ #include <linux/wireless.h>
+ #include <linux/bitmap.h>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
+ #include <net/net_namespace.h>
++#endif
+ #include <net/cfg80211.h>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22))
+ #include <net/rtnetlink.h>
++#else
++#include <linux/rtnetlink.h>
++#endif
+
+ #include "ieee80211_i.h"
+ #include "rate.h"
+--- a/drivers/net/wireless/libertas/dev.h 2008-04-15 19:25:05.000000000 -0700
++++ b/drivers/net/wireless/libertas/dev.h 2008-04-15 19:28:16.000000000 -0700
+@@ -11,6 +11,7 @@
+ #include <linux/ethtool.h>
+ #include <linux/debugfs.h>
+ #include <net/ieee80211.h>
++#include <net/compat.h>
+
+ #include "defs.h"
+ #include "hostcmd.h"
+--- a/drivers/net/wireless/adm8211.c 2008-04-15 19:25:05.000000000 -0700
++++ b/drivers/net/wireless/adm8211.c 2008-04-15 19:25:05.000000000 -0700
+@@ -143,7 +143,11 @@
break;
default:
@@ -313,7 +469,7 @@
priv->rf_type = ADM8211_TYPE_RFMD;
else
priv->rf_type = ADM8211_TYPE_AIROHA;
-@@ -161,7 +165,11 @@ static int adm8211_read_eeprom(struct ie
+@@ -161,7 +165,11 @@
case ADM8211_TYPE_ADMTEK:
break;
default:
@@ -325,7 +481,7 @@
priv->bbp_type = ADM8211_TYPE_RFMD;
else
priv->bbp_type = ADM8211_TYPE_ADMTEK;
-@@ -201,7 +209,11 @@ static int adm8211_read_eeprom(struct ie
+@@ -201,7 +209,11 @@
break;
default:
@@ -337,7 +493,7 @@
priv->specific_bbptype = ADM8211_BBP_RFMD3000;
else
priv->specific_bbptype = ADM8211_BBP_ADM8011;
-@@ -220,11 +232,23 @@ static int adm8211_read_eeprom(struct ie
+@@ -220,11 +232,23 @@
break;
default:
@@ -361,7 +517,7 @@
priv->transceiver_type = ADM8211_RFMD2948;
printk(KERN_WARNING "%s (adm8211): Unknown transceiver: %d\n",
-@@ -246,7 +270,11 @@ static inline void adm8211_write_sram(st
+@@ -246,7 +270,11 @@
struct adm8211_priv *priv = dev->priv;
ADM8211_CSR_WRITE(WEPCTL, addr | ADM8211_WEPCTL_TABLE_WR |
@@ -373,7 +529,7 @@
0 : ADM8211_WEPCTL_SEL_WEPTABLE ));
ADM8211_CSR_READ(WEPCTL);
msleep(1);
-@@ -264,7 +292,11 @@ static void adm8211_write_sram_bytes(str
+@@ -264,7 +292,11 @@
u32 reg = ADM8211_CSR_READ(WEPCTL);
unsigned int i;
@@ -385,7 +541,7 @@
for (i = 0; i < len; i += 2) {
u16 val = buf[i] | (buf[i + 1] << 8);
adm8211_write_sram(dev, addr + i / 2, val);
-@@ -445,7 +477,11 @@ static void adm8211_interrupt_rci(struct
+@@ -445,7 +477,11 @@
if (skb) {
struct ieee80211_rx_status rx_status = {0};
@@ -397,7 +553,7 @@
rx_status.ssi = rssi;
else
rx_status.ssi = 100 - rssi;
-@@ -725,7 +761,11 @@ static int adm8211_rf_set_channel(struct
+@@ -718,7 +754,11 @@
adm8211_rf_write_syn_rfmd2958(dev, 0x0A, reg);
/* set TXRX TX_GAIN */
adm8211_rf_write_syn_rfmd2958(dev, 0x09, 0x00050 |
@@ -409,7 +565,7 @@
} else {
reg = ADM8211_CSR_READ(PLCPHD);
reg &= 0xff00ffff;
-@@ -744,7 +784,11 @@ static int adm8211_rf_set_channel(struct
+@@ -737,7 +777,11 @@
tx_power<<2);
adm8211_write_bbp(dev, RF3000_LOW_GAIN_CALIB, lpf_cutoff);
adm8211_write_bbp(dev, RF3000_HIGH_GAIN_CALIB, lnags_thresh);
@@ -421,7 +577,7 @@
priv->eeprom->cr28 : 0);
adm8211_write_bbp(dev, 0x1d, priv->eeprom->cr29);
-@@ -783,7 +827,11 @@ static void adm8211_update_mode(struct i
+@@ -776,7 +820,11 @@
priv->nar |= ADM8211_NAR_EA | ADM8211_NAR_ST | ADM8211_NAR_SR;
/* don't trust the error bits on rev 0x20 and up in adhoc */
@@ -433,7 +589,7 @@
priv->soft_rx_crc = 1;
break;
case IEEE80211_IF_TYPE_MNTR:
-@@ -884,7 +932,11 @@ static int adm8211_hw_init_bbp(struct ie
+@@ -877,7 +925,11 @@
break;
}
@@ -445,7 +601,7 @@
case ADM8211_REV_CA:
if (priv->transceiver_type == ADM8211_RFMD2958 ||
priv->transceiver_type == ADM8211_RFMD2958_RF3000_CONTROL_POWER ||
-@@ -942,7 +994,11 @@ static int adm8211_hw_init_bbp(struct ie
+@@ -935,7 +987,11 @@
adm8211_write_bbp(dev, 0x1c, 0x00);
adm8211_write_bbp(dev, 0x1d, 0x80);
} else {
@@ -457,7 +613,7 @@
adm8211_write_bbp(dev, 0x1c, priv->eeprom->cr28);
else
adm8211_write_bbp(dev, 0x1c, 0x00);
-@@ -1074,7 +1130,11 @@ static int adm8211_set_rate(struct ieee8
+@@ -1067,7 +1123,11 @@
u8 rate_buf[12] = {0};
/* write supported rates */
@@ -469,7 +625,7 @@
rate_buf[0] = ARRAY_SIZE(adm8211_rates);
for (i = 0; i < ARRAY_SIZE(adm8211_rates); i++)
rate_buf[i + 1] = (adm8211_rates[i].bitrate / 5) | 0x80;
-@@ -1158,7 +1218,11 @@ static void adm8211_hw_init(struct ieee8
+@@ -1151,7 +1211,11 @@
* PWR0PE2 = 13 us
* PWR1PE2 = 1 us
* PWR0TXPE = 8 or 6 */
@@ -481,7 +637,7 @@
ADM8211_CSR_WRITE(TOFS2, 0x8815cd18);
else
ADM8211_CSR_WRITE(TOFS2, 0x8535cd16);
-@@ -1187,7 +1251,11 @@ static void adm8211_hw_init(struct ieee8
+@@ -1180,7 +1244,11 @@
/* SLOT=20 us, SIFS=110 cycles of 22 MHz (5 us),
* DIFS=50 us, EIFS=100 us */
@@ -493,7 +649,7 @@
ADM8211_CSR_WRITE(IFST, (20 << 23) | (110 << 15) |
(50 << 9) | 100);
else
-@@ -1246,13 +1314,21 @@ static int adm8211_hw_reset(struct ieee8
+@@ -1239,13 +1307,21 @@
ADM8211_CSR_WRITE(PAR, tmp);
@@ -515,7 +671,7 @@
reg = ADM8211_CSR_READ(CSR_TEST1);
reg &= ~((1 << 4) | (1 << 5));
ADM8211_CSR_WRITE(CSR_TEST1, reg);
-@@ -1887,6 +1963,9 @@ static int __devinit adm8211_probe(struc
+@@ -1880,6 +1956,9 @@
pci_name(pdev));
goto err_iounmap;
}
@@ -525,7 +681,7 @@
*(__le32 *)perm_addr = cpu_to_le32(ADM8211_CSR_READ(PAR0));
*(__le16 *)&perm_addr[4] =
-@@ -1915,7 +1994,11 @@ static int __devinit adm8211_probe(struc
+@@ -1908,7 +1987,11 @@
priv->mode = IEEE80211_IF_TYPE_INVALID;
/* Power-on issue. EEPROM won't read correctly without */
@@ -537,7 +693,7 @@
ADM8211_CSR_WRITE(FRCTL, 0);
ADM8211_CSR_READ(FRCTL);
ADM8211_CSR_WRITE(FRCTL, 1);
-@@ -1943,7 +2026,11 @@ static int __devinit adm8211_probe(struc
+@@ -1936,7 +2019,11 @@
printk(KERN_INFO "%s: hwaddr %s, Rev 0x%02x\n",
wiphy_name(dev->wiphy), print_mac(mac, dev->wiphy->perm_addr),
@@ -549,111 +705,9 @@
return 0;
---- a/net/wireless/core.c 2008-02-28 19:54:52.000000000 +0100
-+++ b/net/wireless/core.c 2008-02-28 19:54:53.000000000 +0100
-@@ -71,9 +71,9 @@ __cfg80211_drv_from_info(struct genl_inf
- ifindex = nla_get_u32(info->attrs[NL80211_ATTR_IFINDEX]);
- dev = dev_get_by_index(&init_net, ifindex);
- if (dev) {
-- if (dev->ieee80211_ptr)
-+ if (((struct wireless_dev *)dev->ieee80211_ptr))
- byifidx =
-- wiphy_to_dev(dev->ieee80211_ptr->wiphy);
-+ wiphy_to_dev(((struct wireless_dev *)dev->ieee80211_ptr)->wiphy);
- dev_put(dev);
- }
- err = -ENODEV;
-@@ -123,8 +123,8 @@ cfg80211_get_dev_from_ifindex(int ifinde
- dev = dev_get_by_index(&init_net, ifindex);
- if (!dev)
- goto out;
-- if (dev->ieee80211_ptr) {
-- drv = wiphy_to_dev(dev->ieee80211_ptr->wiphy);
-+ if (((struct wireless_dev *)dev->ieee80211_ptr)) {
-+ drv = wiphy_to_dev(((struct wireless_dev *)dev->ieee80211_ptr)->wiphy);
- mutex_lock(&drv->mtx);
- } else
- drv = ERR_PTR(-ENODEV);
-@@ -345,28 +345,28 @@ static int cfg80211_netdev_notifier_call
- struct net_device *dev = ndev;
- struct cfg80211_registered_device *rdev;
-
-- if (!dev->ieee80211_ptr)
-+ if (!((struct wireless_dev *)dev->ieee80211_ptr))
- return 0;
-
-- rdev = wiphy_to_dev(dev->ieee80211_ptr->wiphy);
-+ rdev = wiphy_to_dev(((struct wireless_dev *)dev->ieee80211_ptr)->wiphy);
-
- switch (state) {
- case NETDEV_REGISTER:
- mutex_lock(&rdev->devlist_mtx);
-- list_add(&dev->ieee80211_ptr->list, &rdev->netdev_list);
-+ list_add(&((struct wireless_dev *)dev->ieee80211_ptr)->list, &rdev->netdev_list);
- if (sysfs_create_link(&dev->dev.kobj, &rdev->wiphy.dev.kobj,
- "phy80211")) {
- printk(KERN_ERR "wireless: failed to add phy80211 "
- "symlink to netdev!\n");
- }
-- dev->ieee80211_ptr->netdev = dev;
-+ ((struct wireless_dev *)dev->ieee80211_ptr)->netdev = dev;
- mutex_unlock(&rdev->devlist_mtx);
- break;
- case NETDEV_UNREGISTER:
- mutex_lock(&rdev->devlist_mtx);
-- if (!list_empty(&dev->ieee80211_ptr->list)) {
-+ if (!list_empty(&((struct wireless_dev *)dev->ieee80211_ptr)->list)) {
- sysfs_remove_link(&dev->dev.kobj, "phy80211");
-- list_del_init(&dev->ieee80211_ptr->list);
-+ list_del_init(&((struct wireless_dev *)dev->ieee80211_ptr)->list);
- }
- mutex_unlock(&rdev->devlist_mtx);
- break;
---- a/net/wireless/nl80211.c 2008-02-28 19:54:52.000000000 +0100
-+++ b/net/wireless/nl80211.c 2008-02-28 19:54:53.000000000 +0100
-@@ -1062,7 +1062,7 @@ static int get_vlan(struct nlattr *vlana
- return -ENODEV;
- if (!(*vlan)->ieee80211_ptr)
- return -EINVAL;
-- if ((*vlan)->ieee80211_ptr->wiphy != &rdev->wiphy)
-+ if (((struct wireless_dev *)(*vlan)->ieee80211_ptr)->wiphy != &rdev->wiphy)
- return -EINVAL;
- }
- return 0;
---- a/drivers/net/wireless/zd1211rw/zd_mac.c 2008-03-07 20:02:06.000000000 -0500
-+++ b/drivers/net/wireless/zd1211rw/zd_mac.c 2008-03-07 20:02:07.000000000 -0500
-@@ -1042,5 +1042,5 @@
- dev_dbg_f(zd_mac_dev(mac), "\n");
- cancel_rearming_delayed_workqueue(zd_workqueue,
- &mac->housekeeping.link_led_work);
-- zd_chip_control_leds(&mac->chip, LED_OFF);
-+ zd_chip_control_leds(&mac->chip, LED_OFF_ZD);
- }
---- a/drivers/net/wireless/zd1211rw/zd_chip.c 2008-03-07 20:02:06.000000000 -0500
-+++ b/drivers/net/wireless/zd1211rw/zd_chip.c 2008-03-07 20:02:07.000000000 -0500
-@@ -1281,7 +1281,7 @@
- other_led = chip->link_led == LED1 ? LED2 : LED1;
-
- switch (status) {
-- case LED_OFF:
-+ case LED_OFF_ZD:
- ioreqs[0].value = FW_LINK_OFF;
- ioreqs[1].value = v[1] & ~(LED1|LED2);
- break;
---- a/drivers/net/wireless/zd1211rw/zd_chip.h 2008-03-07 20:02:06.000000000 -0500
-+++ b/drivers/net/wireless/zd1211rw/zd_chip.h 2008-03-07 20:02:07.000000000 -0500
-@@ -897,7 +897,7 @@
- int zd_chip_unlock_phy_regs(struct zd_chip *chip);
-
- enum led_status {
-- LED_OFF = 0,
-+ LED_OFF_ZD = 0,
- LED_SCANNING = 1,
- LED_ASSOCIATED = 2,
- };
---- a/drivers/ssb/main.c 2008-03-14 10:30:04.000000000 -0400
-+++ b/drivers/ssb/main.c 2008-03-14 10:30:05.000000000 -0400
-@@ -360,6 +360,27 @@
+--- a/drivers/ssb/main.c 2008-04-15 19:25:05.000000000 -0700
++++ b/drivers/ssb/main.c 2008-04-15 19:25:05.000000000 -0700
+@@ -347,6 +347,27 @@
return 0;
}
@@ -681,7 +735,7 @@
static int ssb_device_uevent(struct device *dev, struct kobj_uevent_env *env)
{
struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
-@@ -372,6 +393,7 @@
+@@ -359,6 +380,7 @@
ssb_dev->id.vendor, ssb_dev->id.coreid,
ssb_dev->id.revision);
}
@@ -689,34 +743,8 @@
static struct bus_type ssb_bustype = {
.name = "ssb",
---- a/drivers/net/wireless/ath5k/hw.c 2008-03-14 10:32:35.000000000 -0400
-+++ b/drivers/net/wireless/ath5k/hw.c 2008-03-14 10:32:36.000000000 -0400
-@@ -385,7 +385,11 @@
- /* reseting PCI on PCI-E cards results card to hang
- * and always return 0xffff... so we ingore that flag
- * for PCI-E cards */
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
-+ bus_flags = (compat_is_pcie(pdev)) ? 0 : AR5K_RESET_CTL_PCI;
-+#else
- bus_flags = (pdev->is_pcie) ? 0 : AR5K_RESET_CTL_PCI;
-+#endif
-
- /* Reset chipset */
- ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU |
-@@ -937,7 +941,11 @@
- * TODO: Check out tx triger level, it's always 64 on dumps but I
- * guess we can tweak it and see how it goes ;-)
- */
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
-+ dma_size = (compat_is_pcie(pdev)) ? AR5K_DMASIZE_128B : AR5K_DMASIZE_512B;
-+#else
- dma_size = (pdev->is_pcie) ? AR5K_DMASIZE_128B : AR5K_DMASIZE_512B;
-+#endif
- if (ah->ah_version != AR5K_AR5210) {
- AR5K_REG_WRITE_BITS(ah, AR5K_TXCFG,
- AR5K_TXCFG_SDMAMR, dma_size);
---- a/net/mac80211/rx.c 2008-03-28 15:35:48.000000000 -0400
-+++ b/net/mac80211/rx.c 2008-03-28 15:35:48.000000000 -0400
+--- a/net/mac80211/rx.c 2008-04-15 19:31:45.000000000 -0700
++++ b/net/mac80211/rx.c 2008-04-15 19:31:45.000000000 -0700
@@ -237,8 +237,13 @@
}
@@ -731,7 +759,7 @@
}
if (prev_dev) {
-@@ -1378,8 +1383,13 @@
+@@ -1375,8 +1380,13 @@
skb->dev = dev;
@@ -745,7 +773,7 @@
/* skip the wrapping header */
eth = (struct ethhdr *) skb_pull(skb, sizeof(struct ethhdr));
-@@ -1488,8 +1498,13 @@
+@@ -1485,8 +1495,13 @@
rx->skb->dev = dev;
@@ -759,7 +787,7 @@
ieee80211_deliver_skb(rx);
-@@ -1695,8 +1710,13 @@
+@@ -1692,8 +1707,13 @@
}
prev_dev = sdata->dev;
@@ -773,36 +801,8 @@
}
if (prev_dev) {
---- a/drivers/net/wireless/libertas/ethtool.c 2008-04-03 21:51:48.000000000 -0400
-+++ b/drivers/net/wireless/libertas/ethtool.c 2008-04-03 21:51:49.000000000 -0400
-@@ -111,6 +111,7 @@
- lbs_deb_enter(LBS_DEB_ETHTOOL);
- }
-
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
- static int lbs_ethtool_get_sset_count(struct net_device * dev, int sset)
- {
- switch (sset) {
-@@ -120,6 +121,7 @@
- return -EOPNOTSUPP;
- }
- }
-+#endif
-
- static void lbs_ethtool_get_strings(struct net_device *dev,
- u32 stringset,
-@@ -188,7 +190,9 @@
- .get_drvinfo = lbs_ethtool_get_drvinfo,
- .get_eeprom = lbs_ethtool_get_eeprom,
- .get_eeprom_len = lbs_ethtool_get_eeprom_len,
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
- .get_sset_count = lbs_ethtool_get_sset_count,
-+#endif
- .get_ethtool_stats = lbs_ethtool_get_stats,
- .get_strings = lbs_ethtool_get_strings,
- .get_wol = lbs_ethtool_get_wol,
---- a/net/mac80211/ieee80211.c 2008-04-03 21:51:48.000000000 -0400
-+++ b/net/mac80211/ieee80211.c 2008-04-03 21:51:49.000000000 -0400
+--- a/net/mac80211/main.c 2008-04-15 19:36:34.000000000 -0700
++++ b/net/mac80211/main.c 2008-04-15 19:36:34.000000000 -0700
@@ -21,7 +21,9 @@
#include <linux/wireless.h>
#include <linux/rtnetlink.h>
@@ -813,7 +813,7 @@
#include <net/cfg80211.h>
#include "ieee80211_i.h"
-@@ -942,6 +944,13 @@
+@@ -940,6 +942,13 @@
.cache_update = eth_header_cache_update,
};
@@ -827,7 +827,7 @@
/* Must not be called for mdev */
void ieee80211_if_setup(struct net_device *dev)
{
-@@ -953,6 +962,9 @@
+@@ -951,6 +960,9 @@
dev->open = ieee80211_open;
dev->stop = ieee80211_stop;
dev->destructor = ieee80211_if_free;
@@ -837,7 +837,7 @@
}
/* everything else */
-@@ -1643,7 +1655,12 @@
+@@ -1656,7 +1668,12 @@
mdev->open = ieee80211_master_open;
mdev->stop = ieee80211_master_stop;
mdev->type = ARPHRD_IEEE80211;
@@ -850,9 +850,9 @@
mdev->set_multicast_list = ieee80211_master_set_multicast_list;
sdata->vif.type = IEEE80211_IF_TYPE_AP;
---- a/net/mac80211/ieee80211_i.h 2008-04-03 21:51:48.000000000 -0400
-+++ b/net/mac80211/ieee80211_i.h 2008-04-03 21:51:49.000000000 -0400
-@@ -430,6 +430,10 @@
+--- a/net/mac80211/ieee80211_i.h 2008-04-15 19:38:02.000000000 -0700
++++ b/net/mac80211/ieee80211_i.h 2008-04-15 19:38:03.000000000 -0700
+@@ -421,6 +421,10 @@
struct wireless_dev wdev;
@@ -863,7 +863,7 @@
/* keys */
struct list_head key_list;
-@@ -562,7 +566,7 @@
+@@ -553,7 +557,7 @@
return container_of(p, struct ieee80211_sub_if_data, vif);
}
diff --git a/config.mk b/config.mk
index b927aac..171e43a 100644
--- a/config.mk
+++ b/config.mk
@@ -41,6 +41,8 @@ CONFIG_B43=m
CONFIG_B43_PCMCIA=y
CONFIG_B43_DMA=y
CONFIG_B43_PIO=y
+# B43_PIO selects SSB_BLOCKIO
+CONFIG_SSB_BLOCKIO=y
CONFIG_B43_DMA_AND_PIO_MODE=y
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
diff --git a/scripts/admin-update.sh b/scripts/admin-update.sh
index 0952f50..7373c86 100755
--- a/scripts/admin-update.sh
+++ b/scripts/admin-update.sh
@@ -1,6 +1,6 @@
#!/bin/bash
#
-# Copyright 2007 Luis R. Rodriguez <mcgrof@winlab.rutgers.edu>
+# Copyright 2007, 2008 Luis R. Rodriguez <mcgrof@winlab.rutgers.edu>
#
# Use this to update compat-wireless-2.6 to the latest
# wireless-testing.git tree you have.
@@ -55,6 +55,7 @@ DRIVERS="$DRIVERS drivers/net/wireless/iwlwifi"
DRIVERS="$DRIVERS drivers/net/wireless/rt2x00"
DRIVERS="$DRIVERS drivers/net/wireless/zd1211rw"
DRIVERS="$DRIVERS drivers/net/wireless/libertas"
+DRIVERS="$DRIVERS drivers/net/wireless/p54"
# Drivers that belong the the wireless directory
DRIVER_FILES="rtl818x.h rtl8180_sa2400.h rtl8180_max2820.h"
@@ -66,9 +67,6 @@ DRIVER_FILES="$DRIVER_FILES rtl8187.h rtl8187_rtl8225.h"
DRIVER_FILES="$DRIVER_FILES rtl8180_grf5101.c rtl8180_grf5101.h"
DRIVER_FILES="$DRIVER_FILES rtl8187_dev.c rtl8187_rtl8225.c"
DRIVER_FILES="$DRIVER_FILES adm8211.c adm8211.h"
-DRIVER_FILES="$DRIVER_FILES p54.h p54common.h p54common.c net2280.h"
-DRIVER_FILES="$DRIVER_FILES p54pci.h p54pci.c"
-DRIVER_FILES="$DRIVER_FILES p54usb.h p54usb.c"
DRIVER_FILES="$DRIVER_FILES ipw2100.h ipw2100.c"
DRIVER_FILES="$DRIVER_FILES ipw2200.h ipw2200.c"
DRIVER_FILES="$DRIVER_FILES rndis_wlan.c"