diff -urN acx-20080210/pci.c acx-20080210.new/pci.c
--- acx-20080210/pci.c	2009-08-04 00:28:37.000000000 +0200
+++ acx-20080210.new/pci.c	2009-08-04 00:28:42.000000000 +0200
@@ -2005,7 +2005,12 @@
 	/* then wait until interrupts have finished executing on other CPUs */
 	acx_lock(adev, flags);
 	disable_acx_irq(adev);
+#ifdef CONFIG_PCI
 	synchronize_irq(adev->pdev->irq);
+#endif
+#ifdef CONFIG_VLYNQ
+	synchronize_irq(adev->vdev->irq);
+#endif
 	acx_unlock(adev, flags);
 
 	/* we really don't want to have an asynchronous tasklet disturb us
@@ -4164,7 +4169,11 @@
        addr = (u32)ioremap(vdev->mem_start, 0x1000);
        if (!addr) {
 	       printk(KERN_ERR "%s: failed to remap io memory\n",
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
 		      vdev->dev.bus_id);
+#else
+			dev_name(vdev));
+#endif
 	       result = -ENXIO;
 	       goto fail;
        }
@@ -4231,7 +4240,11 @@
 
        printk("acx: found %s-based wireless network card at %s, irq:%d, "
 	      "phymem:0x%x, mem:0x%p\n",
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
 	      match->name, vdev->dev.bus_id, ndev->irq,
+#else
+	      match->name, dev_name(vdev), ndev->irq,
+#endif
 	      vdev->mem_start, adev->iobase);
        log(L_ANY, "initial debug setting is 0x%04X\n", acx_debug);
 
diff -urN acx-20080210/wlan_compat.h acx-20080210.new/wlan_compat.h
--- acx-20080210/wlan_compat.h	2008-02-10 21:06:42.000000000 +0100
+++ acx-20080210.new/wlan_compat.h	2009-08-04 00:24:26.000000000 +0200
@@ -221,8 +221,10 @@
 #ifndef IRQ_NONE
 #define IRQ_NONE
 #define IRQ_HANDLED
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
 typedef void irqreturn_t;
 #endif
+#endif
 
 #ifndef ARPHRD_IEEE80211_PRISM
 #define ARPHRD_IEEE80211_PRISM 802
