--- a/pci.c
+++ b/pci.c
@@ -2005,7 +2005,12 @@ static void acxpci_s_down(struct net_dev
 	/* 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 @@ static __devinit int vlynq_probe(struct 
        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 @@ static __devinit int vlynq_probe(struct 
 
        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);
 
--- a/wlan_compat.h
+++ b/wlan_compat.h
@@ -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
