added the au1000 pci and eth0 fixes to the 7.07 tag
authorJohn Crispin <john@openwrt.org>
Tue, 24 Jul 2007 21:50:02 +0000 (21:50 +0000)
committerJohn Crispin <john@openwrt.org>
Tue, 24 Jul 2007 21:50:02 +0000 (21:50 +0000)
SVN-Revision: 8148

target/linux/au1000-2.6/patches/014-au1000_eth_ioctl.patch
target/linux/au1000-2.6/patches/015-pci-resource.patch [new file with mode: 0644]
target/linux/au1000-2.6/patches/016-pci-io_map.patch [new file with mode: 0644]

index 5996ccf2ac872c78d754b9c5ec5d6b67b1d81965..6187a7d5afbeebb5cafce6120ac3e2606a748a5f 100644 (file)
@@ -1,26 +1,15 @@
-diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
-index c27cfce..99a1c61 100644
---- a/drivers/net/au1000_eth.c
-+++ b/drivers/net/au1000_eth.c
-@@ -1316,12 +1316,20 @@ static void set_rx_mode(struct net_device *dev)
+--- linux-2.6.22.1.orig/drivers/net/au1000_eth.c       2007-07-24 18:43:25.527583520 +0200
++++ linux-2.6.22.1/drivers/net/au1000_eth.c    2007-07-24 23:07:00.388821102 +0200
+@@ -1320,9 +1320,12 @@
+       }
+ }
++#define AU1000_KNOWN_PHY_IOCTLS               (SIOCGMIIPHY & 0xfff0)
  static int au1000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
  {
        struct au1000_private *aup = (struct au1000_private *)dev->priv;
-+      struct mii_ioctl_data *data = if_mii(rq);
-+      int rc = -EOPNOTSUPP;
++      if((cmd & AU1000_KNOWN_PHY_IOCTLS) != AU1000_KNOWN_PHY_IOCTLS)
++              return -EINVAL;
  
        if (!netif_running(dev)) return -EINVAL;
  
-       if (!aup->phy_dev) return -EINVAL; // PHY not controllable
--      return phy_mii_ioctl(aup->phy_dev, if_mii(rq), cmd);
-+      switch (cmd) {
-+      default:
-+              rc = phy_mii_ioctl(aup->phy_dev, data, cmd);
-+              break;
-+      }
-+
-+      return rc;
- }
- static struct net_device_stats *au1000_get_stats(struct net_device *dev)
diff --git a/target/linux/au1000-2.6/patches/015-pci-resource.patch b/target/linux/au1000-2.6/patches/015-pci-resource.patch
new file mode 100644 (file)
index 0000000..ddbb7ed
--- /dev/null
@@ -0,0 +1,14 @@
+--- linux-2.6.22.1.orig/include/asm-mips/mach-au1x00/au1000.h  2007-07-24 18:44:21.598778839 +0200
++++ linux-2.6.22.1/include/asm-mips/mach-au1x00/au1000.h       2007-07-24 22:08:49.761901610 +0200
+@@ -1680,9 +1680,9 @@
+ #define PCI_LAST_DEVFN  (19<<3)
+ #define IOPORT_RESOURCE_START 0x00001000 /* skip legacy probing */
+-#define IOPORT_RESOURCE_END   0xffffffff
++#define IOPORT_RESOURCE_END   0xfffffffffULL
+ #define IOMEM_RESOURCE_START  0x10000000
+-#define IOMEM_RESOURCE_END    0xffffffff
++#define IOMEM_RESOURCE_END    0xfffffffffULL
+   /*
+    * Borrowed from the PPC arch:
diff --git a/target/linux/au1000-2.6/patches/016-pci-io_map.patch b/target/linux/au1000-2.6/patches/016-pci-io_map.patch
new file mode 100644 (file)
index 0000000..6a80f7c
--- /dev/null
@@ -0,0 +1,10 @@
+--- linux-2.6.22.1.orig/arch/mips/au1000/common/pci.c  2007-07-24 18:42:21.031908123 +0200
++++ linux-2.6.22.1/arch/mips/au1000/common/pci.c       2007-07-24 22:12:07.373162835 +0200
+@@ -74,6 +74,7 @@
+               printk(KERN_ERR "Unable to ioremap pci space\n");
+               return 1;
+       }
++      au1x_controller.io_map_base = virt_io_addr;
+ #ifdef CONFIG_DMA_NONCOHERENT
+       {