--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
-@@ -4184,8 +4184,13 @@ redo:
+@@ -4201,8 +4201,13 @@ redo:
if (b43_bus_host_is_sdio(dev->dev)) {
b43_sdio_free_irq(dev);
} else {
}
mutex_lock(&wl->mutex);
dev = wl->current_dev;
-@@ -4225,9 +4230,17 @@ static int b43_wireless_core_start(struc
+@@ -4244,9 +4249,17 @@ static int b43_wireless_core_start(struc
goto out;
}
} else {
if (err) {
b43err(dev->wl, "Cannot request IRQ-%d\n",
dev->dev->irq);
-@@ -5016,6 +5029,10 @@ static int b43_setup_bands(struct b43_wl
+@@ -5035,6 +5048,10 @@ static int b43_setup_bands(struct b43_wl
static void b43_wireless_core_detach(struct b43_wldev *dev)
{
b43_release_firmware(dev);
--- a/drivers/net/wireless/b43/b43.h
+++ b/drivers/net/wireless/b43/b43.h
-@@ -843,6 +843,9 @@ struct b43_wldev {
+@@ -844,6 +844,9 @@ struct b43_wldev {
unsigned int tx_count;
unsigned int rx_count;
#endif
/* Data structure for the WLAN parts (802.11 cores) of the b43 chip. */
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
-@@ -5183,14 +5183,25 @@ static int __devinit wl12xx_probe(struct
+@@ -5180,14 +5180,25 @@ static int __devinit wl12xx_probe(struct
platform_set_drvdata(pdev, wl);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
-+ irqflags = IRQF_TRIGGER_RISING
++ irqflags = IRQF_TRIGGER_RISING;
+#else
if (wl->platform_quirks & WL12XX_PLATFORM_QUIRK_EDGE_IRQ)
irqflags = IRQF_TRIGGER_RISING;
else
irqflags = IRQF_TRIGGER_HIGH | IRQF_ONESHOT;
-
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
+ ret = compat_request_threaded_irq(&wl->irq_compat, wl->irq,
-+ wl1271_hardirq, wl1271_irq,
++ wl12xx_hardirq, wl1271_irq,
+ irqflags,
+ pdev->name, wl);
+#else
if (ret < 0) {
wl1271_error("request_irq() failed: %d", ret);
goto out_free_hw;
-@@ -5244,7 +5255,11 @@ out_bt_coex_state:
+@@ -5241,7 +5252,11 @@ out_bt_coex_state:
device_remove_file(wl->dev, &dev_attr_bt_coex_state);
out_irq:
out_free_hw:
wl1271_free_hw(wl);
-@@ -5262,7 +5277,12 @@ static int __devexit wl12xx_remove(struc
+@@ -5259,7 +5274,12 @@ static int __devexit wl12xx_remove(struc
disable_irq_wake(wl->irq);
}
wl1271_unregister_hw(wl);
return 0;
--- a/drivers/net/wireless/wl12xx/wl12xx.h
+++ b/drivers/net/wireless/wl12xx/wl12xx.h
-@@ -484,6 +484,10 @@ struct wl1271 {
+@@ -477,6 +477,10 @@ struct wl1271 {
/* last wlvif we transmitted from */
struct wl12xx_vif *last_wlvif;