2010-12-17 22:42:57

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 1/3] compat-wireless: make patches apply again.


Signed-off-by: Hauke Mehrtens <[email protected]>
---
patches/25-multicast-list_head.patch | 18 +++++++++---------
patches/99-change-makefiles.patch | 7 ++++---
2 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/patches/25-multicast-list_head.patch b/patches/25-multicast-list_head.patch
index 09099ff..8ad8391 100644
--- a/patches/25-multicast-list_head.patch
+++ b/patches/25-multicast-list_head.patch
@@ -162,7 +162,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856
}
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
-@@ -3122,20 +3122,42 @@ unlock:
+@@ -3131,20 +3131,42 @@ unlock:
}

static u64 ath5k_prepare_multicast(struct ieee80211_hw *hw,
@@ -205,7 +205,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856
pos ^= (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val;
pos &= 0x3f;
mfilt[pos / 32] |= (1 << (pos % 32));
-@@ -3144,6 +3166,9 @@ static u64 ath5k_prepare_multicast(struc
+@@ -3153,6 +3175,9 @@ static u64 ath5k_prepare_multicast(struc
* neet to inform below to not reset the mcast */
/* ath5k_hw_set_mcast_filterindex(ah,
* ha->addr[5]); */
@@ -501,7 +501,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856
static void rtl8187_configure_filter(struct ieee80211_hw *dev,
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
-@@ -1481,11 +1481,20 @@ struct wl1271_filter_params {
+@@ -1501,11 +1501,20 @@ struct wl1271_filter_params {
u8 mc_list[ACX_MC_ADDRESS_GROUP_MAX][ETH_ALEN];
};

@@ -522,7 +522,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856
struct wl1271 *wl = hw->priv;

if (unlikely(wl->state == WL1271_STATE_OFF))
-@@ -1498,16 +1507,40 @@ static u64 wl1271_op_prepare_multicast(s
+@@ -1518,16 +1527,40 @@ static u64 wl1271_op_prepare_multicast(s
}

/* update multicast filtering parameters */
@@ -607,11 +607,11 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856
if (!cnt)
break;
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
- memcpy(bufp, ha->addr, ETHER_ADDR_LEN);
+ memcpy(bufp, ha->addr, ETH_ALEN);
+#else
-+ memcpy(bufp, ha->dmi_addr, ETHER_ADDR_LEN);
++ memcpy(bufp, ha->dmi_addr, ETH_ALEN);
+#endif
- bufp += ETHER_ADDR_LEN;
+ bufp += ETH_ALEN;
cnt--;
}
--- a/include/net/mac80211.h
@@ -677,7 +677,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856

--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
-@@ -718,7 +718,12 @@ struct ieee80211_local {
+@@ -719,7 +719,12 @@ struct ieee80211_local {
struct work_struct recalc_smps;

/* aggregated multicast list */
@@ -733,7 +733,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856
spin_unlock_bh(&local->filter_lock);

/* be a bit nasty */
-@@ -550,9 +554,11 @@ struct ieee80211_hw *ieee80211_alloc_hw(
+@@ -555,9 +559,11 @@ struct ieee80211_hw *ieee80211_alloc_hw(
local->uapsd_max_sp_len = IEEE80211_DEFAULT_MAX_SP_LEN;

INIT_LIST_HEAD(&local->interfaces);
diff --git a/patches/99-change-makefiles.patch b/patches/99-change-makefiles.patch
index 5114869..42c7ea3 100644
--- a/patches/99-change-makefiles.patch
+++ b/patches/99-change-makefiles.patch
@@ -45,7 +45,7 @@ only the wireless stuff.

--- a/drivers/net/wireless/Makefile
+++ b/drivers/net/wireless/Makefile
-@@ -7,31 +7,16 @@ obj-$(CONFIG_IPW2200) += ipw2x00/
+@@ -7,32 +7,16 @@ obj-$(CONFIG_IPW2200) += ipw2x00/

obj-$(CONFIG_HERMES) += orinoco/

@@ -66,11 +66,12 @@ only the wireless stuff.
obj-$(CONFIG_ZD1211RW) += zd1211rw/
obj-$(CONFIG_RTL8180) += rtl818x/
obj-$(CONFIG_RTL8187) += rtl818x/
-
+-obj-$(CONFIG_RTL8192CE) += rtlwifi/
+-
-# 16-bit wireless PCMCIA client drivers
-obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o
-obj-$(CONFIG_PCMCIA_WL3501) += wl3501_cs.o
--
+
obj-$(CONFIG_USB_NET_COMPAT_RNDIS_WLAN) += rndis_wlan.o

-obj-$(CONFIG_USB_ZD1201) += zd1201.o
--
1.7.1



2010-12-17 22:43:03

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 3/3] compat-wireless: add support for RTL8192CE


Signed-off-by: Hauke Mehrtens <[email protected]>
---
config.mk | 3 +++
patches/06-header-changes.patch | 10 ++++++++++
patches/20-pcidev.patch | 11 +++++++++++
patches/99-change-makefiles.patch | 10 +++++-----
scripts/admin-update.sh | 2 ++
5 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/config.mk b/config.mk
index 3261aa3..964c646 100644
--- a/config.mk
+++ b/config.mk
@@ -353,6 +353,9 @@ CONFIG_PCMCIA_SPECTRUM=m
endif #CONFIG_PCMCIA
endif #CONFIG_WIRELESS_EXT

+CONFIG_RTL8192CE=m
+CONFIG_RTLWIFI=m
+
endif #CONFIG_PCI
## end of PCI

diff --git a/patches/06-header-changes.patch b/patches/06-header-changes.patch
index 69b1934..0b90d4c 100644
--- a/patches/06-header-changes.patch
+++ b/patches/06-header-changes.patch
@@ -16,6 +16,16 @@ cases.

struct b43_wldev;

+--- a/drivers/net/wireless/rtlwifi/base.c
++++ b/drivers/net/wireless/rtlwifi/base.c
+@@ -28,6 +28,7 @@
+ *****************************************************************************/
+
+ #include <linux/ip.h>
++#include <linux/in.h>
+ #include "wifi.h"
+ #include "rc.h"
+ #include "base.h"
--- a/drivers/net/wireless/wl1251/boot.c
+++ b/drivers/net/wireless/wl1251/boot.c
@@ -19,7 +19,6 @@
diff --git a/patches/20-pcidev.patch b/patches/20-pcidev.patch
index 19feea6..d576ce8 100644
--- a/patches/20-pcidev.patch
+++ b/patches/20-pcidev.patch
@@ -55,6 +55,17 @@ compat_is_pcie() when needed.
rt2x00_set_chip_intf(rt2x00dev, RT2X00_CHIP_INTF_PCIE);
else
rt2x00_set_chip_intf(rt2x00dev, RT2X00_CHIP_INTF_PCI);
+--- a/drivers/net/wireless/rtlwifi/pci.c
++++ b/drivers/net/wireless/rtlwifi/pci.c
+@@ -1608,7 +1608,7 @@ static bool _rtl_pci_find_adapter(struct
+ pcipriv->ndis_adapter.pcibridge_funcnum =
+ PCI_FUNC(bridge_pdev->devfn);
+ pcipriv->ndis_adapter.pcibridge_pciehdr_offset =
+- bridge_pdev->pcie_cap;
++ pci_pcie_cap(bridge_pdev);
+ pcipriv->ndis_adapter.pcicfg_addrport =
+ (pcipriv->ndis_adapter.pcibridge_busnum << 16) |
+ (pcipriv->ndis_adapter.pcibridge_devnum << 11) |
--- a/drivers/ssb/scan.c
+++ b/drivers/ssb/scan.c
@@ -405,10 +405,10 @@ int ssb_bus_scan(struct ssb_bus *bus,
diff --git a/patches/99-change-makefiles.patch b/patches/99-change-makefiles.patch
index 42c7ea3..585ff03 100644
--- a/patches/99-change-makefiles.patch
+++ b/patches/99-change-makefiles.patch
@@ -45,7 +45,7 @@ only the wireless stuff.

--- a/drivers/net/wireless/Makefile
+++ b/drivers/net/wireless/Makefile
-@@ -7,32 +7,16 @@ obj-$(CONFIG_IPW2200) += ipw2x00/
+@@ -7,18 +7,8 @@ obj-$(CONFIG_IPW2200) += ipw2x00/

obj-$(CONFIG_HERMES) += orinoco/

@@ -64,14 +64,14 @@ only the wireless stuff.
obj-$(CONFIG_B43) += b43/
obj-$(CONFIG_B43LEGACY) += b43legacy/
obj-$(CONFIG_ZD1211RW) += zd1211rw/
- obj-$(CONFIG_RTL8180) += rtl818x/
+@@ -26,13 +16,8 @@ obj-$(CONFIG_RTL8180) += rtl818x/
obj-$(CONFIG_RTL8187) += rtl818x/
--obj-$(CONFIG_RTL8192CE) += rtlwifi/
--
+ obj-$(CONFIG_RTL8192CE) += rtlwifi/
+
-# 16-bit wireless PCMCIA client drivers
-obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o
-obj-$(CONFIG_PCMCIA_WL3501) += wl3501_cs.o
-
+-
obj-$(CONFIG_USB_NET_COMPAT_RNDIS_WLAN) += rndis_wlan.o

-obj-$(CONFIG_USB_ZD1201) += zd1201.o
diff --git a/scripts/admin-update.sh b/scripts/admin-update.sh
index 6fd1bc0..b93761e 100755
--- a/scripts/admin-update.sh
+++ b/scripts/admin-update.sh
@@ -229,6 +229,8 @@ DRIVERS="$DRIVERS drivers/net/wireless/zd1211rw"
DRIVERS="$DRIVERS drivers/net/wireless/libertas"
DRIVERS="$DRIVERS drivers/net/wireless/p54"
DRIVERS="$DRIVERS drivers/net/wireless/rtl818x"
+DRIVERS="$DRIVERS drivers/net/wireless/rtlwifi"
+DRIVERS="$DRIVERS drivers/net/wireless/rtlwifi/rtl8192ce"
DRIVERS="$DRIVERS drivers/net/wireless/libertas_tf"
DRIVERS="$DRIVERS drivers/net/wireless/ipw2x00"
DRIVERS="$DRIVERS drivers/net/wireless/wl12xx"
--
1.7.1


2010-12-18 20:08:35

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH 1/3] compat-wireless: make patches apply again.

On Fri, Dec 17, 2010 at 02:42:46PM -0800, Hauke Mehrtens wrote:
>
> Signed-off-by: Hauke Mehrtens <[email protected]>

Applied all and pushed, thanks!

Luis

2010-12-17 22:42:59

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 2/3] compat-wireless: use pci_is_pcie()

Use pci_is_pcie function and do not access the member of the struct directly.

Signed-off-by: Hauke Mehrtens <[email protected]>
---
patches/20-pcidev.patch | 66 ++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 60 insertions(+), 6 deletions(-)

diff --git a/patches/20-pcidev.patch b/patches/20-pcidev.patch
index 25a3946..19feea6 100644
--- a/patches/20-pcidev.patch
+++ b/patches/20-pcidev.patch
@@ -2,17 +2,71 @@ Older kernels than 2.6.24 do not have the is_pcie member as part of
the struct pci_dev, to help with that we use the compat-2.6.24.c supplied
compat_is_pcie() when needed.

+--- a/drivers/net/wireless/ath/ath5k/attach.c
++++ b/drivers/net/wireless/ath/ath5k/attach.c
+@@ -276,7 +276,7 @@ int ath5k_hw_init(struct ath5k_softc *sc
+ /*
+ * Write PCI-E power save settings
+ */
+- if ((ah->ah_version == AR5K_AR5212) && pdev && (pdev->is_pcie)) {
++ if ((ah->ah_version == AR5K_AR5212) && pdev && (pci_is_pcie(pdev))) {
+ ath5k_hw_reg_write(ah, 0x9248fc00, AR5K_PCIE_SERDES);
+ ath5k_hw_reg_write(ah, 0x24924924, AR5K_PCIE_SERDES);
+
+--- a/drivers/net/wireless/ath/ath5k/reset.c
++++ b/drivers/net/wireless/ath/ath5k/reset.c
+@@ -537,7 +537,7 @@ int ath5k_hw_on_hold(struct ath5k_hw *ah
+ * we ingore that flag for PCI-E cards. On PCI cards
+ * this flag gets cleared after 64 PCI clocks.
+ */
+- bus_flags = (pdev && pdev->is_pcie) ? 0 : AR5K_RESET_CTL_PCI;
++ bus_flags = (pdev && pci_is_pcie(pdev)) ? 0 : AR5K_RESET_CTL_PCI;
+
+ if (ah->ah_version == AR5K_AR5210) {
+ ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU |
+@@ -594,7 +594,7 @@ int ath5k_hw_nic_wakeup(struct ath5k_hw
+ * we ingore that flag for PCI-E cards. On PCI cards
+ * this flag gets cleared after 64 PCI clocks.
+ */
+- bus_flags = (pdev && pdev->is_pcie) ? 0 : AR5K_RESET_CTL_PCI;
++ bus_flags = (pdev && pci_is_pcie(pdev)) ? 0 : AR5K_RESET_CTL_PCI;
+
+ if (ah->ah_version == AR5K_AR5210) {
+ ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU |
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
-@@ -96,7 +96,11 @@ static void ath_pci_bt_coex_prep(struct
+@@ -96,7 +96,7 @@ static void ath_pci_bt_coex_prep(struct
struct pci_dev *pdev = to_pci_dev(sc->dev);
u8 aspm;

-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
- if (!pdev->is_pcie)
-+#else
-+ if (!compat_is_pcie(pdev))
-+#endif
+- if (!pdev->is_pcie)
++ if (!pci_is_pcie(pdev))
return;

pci_read_config_byte(pdev, ATH_PCIE_CAP_LINK_CTRL, &aspm);
+--- a/drivers/net/wireless/rt2x00/rt2x00pci.c
++++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
+@@ -301,7 +301,7 @@ int rt2x00pci_probe(struct pci_dev *pci_
+ rt2x00dev->irq = pci_dev->irq;
+ rt2x00dev->name = pci_name(pci_dev);
+
+- if (pci_dev->is_pcie)
++ if (pci_is_pcie(pci_dev))
+ rt2x00_set_chip_intf(rt2x00dev, RT2X00_CHIP_INTF_PCIE);
+ else
+ rt2x00_set_chip_intf(rt2x00dev, RT2X00_CHIP_INTF_PCI);
+--- a/drivers/ssb/scan.c
++++ b/drivers/ssb/scan.c
+@@ -405,10 +405,10 @@ int ssb_bus_scan(struct ssb_bus *bus,
+ /* Ignore PCI cores on PCI-E cards.
+ * Ignore PCI-E cores on PCI cards. */
+ if (dev->id.coreid == SSB_DEV_PCI) {
+- if (bus->host_pci->is_pcie)
++ if (pci_is_pcie(bus->host_pci))
+ continue;
+ } else {
+- if (!bus->host_pci->is_pcie)
++ if (!pci_is_pcie(bus->host_pci))
+ continue;
+ }
+ }
--
1.7.1


2010-12-18 20:14:58

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH 2/3] compat-wireless: use pci_is_pcie()

On Fri, Dec 17, 2010 at 2:42 PM, Hauke Mehrtens <[email protected]> wrote:
> Use pci_is_pcie function and do not access the member of the struct directly.

So we can submit this upstream as well?

Luis

2010-12-20 11:33:43

by Walter Goldens

[permalink] [raw]
Subject: [PATCH 1/2] compat-wireless: complete rtlwifi/RTL8192CE support

enable driver-select for rtlwifi/rtl8192ce
complete renaming rtlwifi entries for compat-wireless

Signed-off-by: Walter Goldens <[email protected]>
---

--- a/scripts/driver-select
+++ b/scripts/driver-select
@@ -60,6 +60,7 @@ function usage {
echo -e "\t${CYAN}intel${NORMAL} < ${PURPLE} iwl3945 iwlagn ipw2100 ipw2200 ${NORMAL}>"
echo -e "\t${CYAN}iwlwifi${NORMAL} < ${PURPLE} iwl3945 iwlagn ${NORMAL}>"
echo -e "\t${CYAN}rtl818x${NORMAL} < ${PURPLE} rtl8180 rtl8187 ${NORMAL}>"
+ echo -e "\t${CYAN}rtlwifi${NORMAL} < ${PURPLE} rtl8192ce ${NORMAL}>"
echo -e "\t${CYAN}wl12xx${NORMAL} < ${PURPLE} wl1251 wl12xx (SPI and SDIO)${NORMAL}>"

echo -e "\nSupported group drivers: Bluetooth & Ethernet:"
@@ -332,6 +333,11 @@ case $1 in
disable_staging
disable_var_02
;;
+ rtlwifi)
+ select_drivers CONFIG_RTL8192CE CONFIG_RTLWIFI
+ disable_staging
+ disable_bt_usb_ethernet_var
+ ;;
wl12xx)
select_drivers CONFIG_WL1251 \
CONFIG_WL12XX

--- a/Makefile
+++ b/Makefile
@@ -271,6 +271,8 @@ install-scripts:
@$(MODPROBE) -l rt73usb
@$(MODPROBE) -l rtl8180
@$(MODPROBE) -l rtl8187
+ @$(MODPROBE) -l rtlwifi
+ @$(MODPROBE) -l rtl8192ce
@$(MODPROBE) -l spectrum_cs
@$(MODPROBE) -l ssb
@$(MODPROBE) -l usb8xxx
@@ -400,6 +402,8 @@ uninstall:
@$(MODPROBE) -l rt73usb
@$(MODPROBE) -l rtl8180
@$(MODPROBE) -l rtl8187
+ @$(MODPROBE) -l rtlwifi
+ @$(MODPROBE) -l rtl8192ce
@$(MODPROBE) -l spectrum_cs
@$(MODPROBE) -l ssb
@$(MODPROBE) -l usb8xxx
--- a/README
+++ b/README
@@ -159,6 +159,8 @@ rt61pci
rt73usb
rtl8180
rtl8187
+rtlwifi
+rtl8192ce
spectrum_cs
ssb
wl1251
--- a/scripts/unload.sh
+++ b/scripts/unload.sh
@@ -23,7 +23,7 @@ MODULES="$MODULES rt2400pci rt2500pci rt
MODULES="$MODULES rt2500usb rt73usb"
MODULES="$MODULES rt2800usb rt2800lib"
MODULES="$MODULES rt2x00usb rt2x00lib"
-MODULES="$MODULES rtl8180 rtl8187"
+MODULES="$MODULES rtl8180 rtl8187 rtl8192ce rtlwifi"
MODULES="$MODULES mwl8k mac80211_hwsim"
MODULES="$MODULES at76c50x_usb at76_usb"
MODULES="$MODULES rndis_wlan rndis_host cdc_ether usbnet"
--- a/scripts/wlunload.sh
+++ b/scripts/wlunload.sh
@@ -23,7 +23,7 @@ MODULES="$MODULES rt2400pci rt2500pci rt
MODULES="$MODULES rt2500usb rt73usb"
MODULES="$MODULES rt2800usb rt2800lib"
MODULES="$MODULES rt2x00usb rt2x00lib"
-MODULES="$MODULES rtl8180 rtl8187"
+MODULES="$MODULES rtl8180 rtl8187 rtl8192ce rtlwifi"
MODULES="$MODULES mwl8k mac80211_hwsim"
MODULES="$MODULES at76c50x_usb at76_usb"
MODULES="$MODULES rndis_wlan rndis_host cdc_ether usbnet"