/* Data structure for the WLAN parts (802.11 cores) of the b43 chip. */
--- a/drivers/net/wireless/wl12xx/spi.c
+++ b/drivers/net/wireless/wl12xx/spi.c
-@@ -408,9 +408,20 @@ static int __devinit wl1271_probe(struct
+@@ -417,9 +417,20 @@
goto out_free;
}
+#else
ret = request_threaded_irq(wl->irq, wl1271_hardirq, wl1271_irq,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
-+ IRQF_TRIGGER_RISING,
++ IRQF_TRIGGER_RISING,
+#else
- IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
+ irqflags,
+#endif
DRIVER_NAME, wl);
+#endif
if (ret < 0) {
wl1271_error("request_irq() failed: %d", ret);
goto out_free;
-@@ -431,7 +442,11 @@ static int __devinit wl1271_probe(struct
+@@ -440,7 +451,11 @@
return 0;
out_irq:
out_free:
wl1271_free_hw(wl);
-@@ -444,7 +459,12 @@ static int __devexit wl1271_remove(struc
+@@ -453,7 +468,12 @@
struct wl1271 *wl = dev_get_drvdata(&spi->dev);
wl1271_unregister_hw(wl);
wl1271_free_hw(wl);
return 0;
+ struct wl1271_station {
--- a/drivers/net/wireless/wl12xx/wl12xx.h
+++ b/drivers/net/wireless/wl12xx/wl12xx.h
-@@ -544,6 +544,10 @@ struct wl1271 {
+@@ -582,6 +582,10 @@
- /* Quirks of specific hardware revisions */
- unsigned int quirks;
+ /* Platform limitations */
+ unsigned int platform_quirks;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
+ struct compat_threaded_irq irq_compat;