ar71xx: improve 2.6.36 compatibility. also, instead of adding a forward port patch...
authorFelix Fietkau <nbd@openwrt.org>
Thu, 21 Oct 2010 18:42:11 +0000 (18:42 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 21 Oct 2010 18:42:11 +0000 (18:42 +0000)
SVN-Revision: 23574

target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
target/linux/ar71xx/files/drivers/spi/ap83_spi.c
target/linux/ar71xx/files/drivers/watchdog/ar71xx_wdt.c
target/linux/ar71xx/patches-2.6.32/990-backport.patch [new file with mode: 0644]
target/linux/ar71xx/patches-2.6.36/209_watchdog_fix.patch [deleted file]

index fc838f45b4b5c923af13e4998cdfd27838eed67a..45dd3e52c56774595d05d055b8c0e2c3ef42c18a 100644 (file)
@@ -685,7 +685,6 @@ static netdev_tx_t ag71xx_hard_start_xmit(struct sk_buff *skb,
 
 static int ag71xx_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 {
-       struct mii_ioctl_data *data = (struct mii_ioctl_data *) &ifr->ifr_data;
        struct ag71xx *ag = netdev_priv(dev);
        int ret;
 
@@ -717,7 +716,7 @@ static int ag71xx_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
                if (ag->phy_dev == NULL)
                        break;
 
-               return phy_mii_ioctl(ag->phy_dev, data, cmd);
+               return phy_mii_ioctl(ag->phy_dev, ifr, cmd);
 
        default:
                break;
index c93070d50a879fc8f3dd3c47553992b476dd1f45..eada5fe9cb7ec10954f77391a1898f3026ca194f 100644 (file)
@@ -127,33 +127,34 @@ static void ap83_spi_chipselect(struct spi_device *spi, int on)
 
 #define EXPAND_BITBANG_TXRX
 #include <linux/spi/spi_bitbang.h>
+#include "spi_bitbang_txrx.h"
 
 static u32 ap83_spi_txrx_mode0(struct spi_device *spi,
                               unsigned nsecs, u32 word, u8 bits)
 {
        dev_dbg(&spi->dev, "TXRX0 word=%08x, bits=%u\n", word, bits);
-       return bitbang_txrx_be_cpha0(spi, nsecs, 0, word, bits);
+       return bitbang_txrx_be_cpha0(spi, nsecs, 0, 0, word, bits);
 }
 
 static u32 ap83_spi_txrx_mode1(struct spi_device *spi,
                               unsigned nsecs, u32 word, u8 bits)
 {
        dev_dbg(&spi->dev, "TXRX1 word=%08x, bits=%u\n", word, bits);
-       return bitbang_txrx_be_cpha1(spi, nsecs, 0, word, bits);
+       return bitbang_txrx_be_cpha1(spi, nsecs, 0, 0, word, bits);
 }
 
 static u32 ap83_spi_txrx_mode2(struct spi_device *spi,
                               unsigned nsecs, u32 word, u8 bits)
 {
        dev_dbg(&spi->dev, "TXRX2 word=%08x, bits=%u\n", word, bits);
-       return bitbang_txrx_be_cpha0(spi, nsecs, 1, word, bits);
+       return bitbang_txrx_be_cpha0(spi, nsecs, 1, 0, word, bits);
 }
 
 static u32 ap83_spi_txrx_mode3(struct spi_device *spi,
                               unsigned nsecs, u32 word, u8 bits)
 {
        dev_dbg(&spi->dev, "TXRX3 word=%08x, bits=%u\n", word, bits);
-       return bitbang_txrx_be_cpha1(spi, nsecs, 1, word, bits);
+       return bitbang_txrx_be_cpha1(spi, nsecs, 1, 0, word, bits);
 }
 
 static int ap83_spi_probe(struct platform_device *pdev)
index b5bc254f8b238c343b13b23a01f64d3eae2c0498..5f8104bcdf15f4d5bda08ad0ce437c577ca9080c 100644 (file)
@@ -146,7 +146,7 @@ static struct watchdog_info ar71xx_wdt_info = {
        .identity               = "AR71XX watchdog",
 };
 
-static int ar71xx_wdt_ioctl(struct inode *inode, struct file *file,
+static long ar71xx_wdt_ioctl(struct file *file,
                            unsigned int cmd, unsigned long arg)
 {
        int t;
@@ -197,7 +197,7 @@ static int ar71xx_wdt_ioctl(struct inode *inode, struct file *file,
 static const struct file_operations ar71xx_wdt_fops = {
        .owner          = THIS_MODULE,
        .write          = ar71xx_wdt_write,
-       .ioctl          = ar71xx_wdt_ioctl,
+       .unlocked_ioctl = ar71xx_wdt_ioctl,
        .open           = ar71xx_wdt_open,
        .release        = ar71xx_wdt_release,
 };
diff --git a/target/linux/ar71xx/patches-2.6.32/990-backport.patch b/target/linux/ar71xx/patches-2.6.32/990-backport.patch
new file mode 100644 (file)
index 0000000..2c1c75c
--- /dev/null
@@ -0,0 +1,80 @@
+--- a/drivers/net/ag71xx/ag71xx_main.c
++++ b/drivers/net/ag71xx/ag71xx_main.c
+@@ -685,6 +685,7 @@ static netdev_tx_t ag71xx_hard_start_xmi
+ static int ag71xx_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+ {
++      struct mii_ioctl_data *data = (struct mii_ioctl_data *) &ifr->ifr_data;
+       struct ag71xx *ag = netdev_priv(dev);
+       int ret;
+@@ -716,7 +717,7 @@ static int ag71xx_do_ioctl(struct net_de
+               if (ag->phy_dev == NULL)
+                       break;
+-              return phy_mii_ioctl(ag->phy_dev, ifr, cmd);
++              return phy_mii_ioctl(ag->phy_dev, data, cmd);
+       default:
+               break;
+--- a/drivers/spi/ap83_spi.c
++++ b/drivers/spi/ap83_spi.c
+@@ -127,34 +127,33 @@ static void ap83_spi_chipselect(struct s
+ #define EXPAND_BITBANG_TXRX
+ #include <linux/spi/spi_bitbang.h>
+-#include "spi_bitbang_txrx.h"
+ static u32 ap83_spi_txrx_mode0(struct spi_device *spi,
+                              unsigned nsecs, u32 word, u8 bits)
+ {
+       dev_dbg(&spi->dev, "TXRX0 word=%08x, bits=%u\n", word, bits);
+-      return bitbang_txrx_be_cpha0(spi, nsecs, 0, 0, word, bits);
++      return bitbang_txrx_be_cpha0(spi, nsecs, 0, word, bits);
+ }
+ static u32 ap83_spi_txrx_mode1(struct spi_device *spi,
+                              unsigned nsecs, u32 word, u8 bits)
+ {
+       dev_dbg(&spi->dev, "TXRX1 word=%08x, bits=%u\n", word, bits);
+-      return bitbang_txrx_be_cpha1(spi, nsecs, 0, 0, word, bits);
++      return bitbang_txrx_be_cpha1(spi, nsecs, 0, word, bits);
+ }
+ static u32 ap83_spi_txrx_mode2(struct spi_device *spi,
+                              unsigned nsecs, u32 word, u8 bits)
+ {
+       dev_dbg(&spi->dev, "TXRX2 word=%08x, bits=%u\n", word, bits);
+-      return bitbang_txrx_be_cpha0(spi, nsecs, 1, 0, word, bits);
++      return bitbang_txrx_be_cpha0(spi, nsecs, 1, word, bits);
+ }
+ static u32 ap83_spi_txrx_mode3(struct spi_device *spi,
+                              unsigned nsecs, u32 word, u8 bits)
+ {
+       dev_dbg(&spi->dev, "TXRX3 word=%08x, bits=%u\n", word, bits);
+-      return bitbang_txrx_be_cpha1(spi, nsecs, 1, 0, word, bits);
++      return bitbang_txrx_be_cpha1(spi, nsecs, 1, word, bits);
+ }
+ static int ap83_spi_probe(struct platform_device *pdev)
+--- a/drivers/watchdog/ar71xx_wdt.c
++++ b/drivers/watchdog/ar71xx_wdt.c
+@@ -146,7 +146,7 @@ static struct watchdog_info ar71xx_wdt_i
+       .identity               = "AR71XX watchdog",
+ };
+-static long ar71xx_wdt_ioctl(struct file *file,
++static int ar71xx_wdt_ioctl(struct inode *inode, struct file *file,
+                           unsigned int cmd, unsigned long arg)
+ {
+       int t;
+@@ -197,7 +197,7 @@ static long ar71xx_wdt_ioctl(struct file
+ static const struct file_operations ar71xx_wdt_fops = {
+       .owner          = THIS_MODULE,
+       .write          = ar71xx_wdt_write,
+-      .unlocked_ioctl = ar71xx_wdt_ioctl,
++      .ioctl          = ar71xx_wdt_ioctl,
+       .open           = ar71xx_wdt_open,
+       .release        = ar71xx_wdt_release,
+ };
diff --git a/target/linux/ar71xx/patches-2.6.36/209_watchdog_fix.patch b/target/linux/ar71xx/patches-2.6.36/209_watchdog_fix.patch
deleted file mode 100644 (file)
index f0f37f4..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/drivers/watchdog/ar71xx_wdt.c
-+++ b/drivers/watchdog/ar71xx_wdt.c
-@@ -197,7 +197,7 @@ static int ar71xx_wdt_ioctl(struct inode
- static const struct file_operations ar71xx_wdt_fops = {
-       .owner          = THIS_MODULE,
-       .write          = ar71xx_wdt_write,
--      .ioctl          = ar71xx_wdt_ioctl,
-+      .unlocked_ioctl = ar71xx_wdt_ioctl,
-       .open           = ar71xx_wdt_open,
-       .release        = ar71xx_wdt_release,
- };