summaryrefslogtreecommitdiff
path: root/target/linux/rdc/patches-2.6.32/002-rdc321x_gpio.patch
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2010-05-15 21:26:56 +0000
committerFlorian Fainelli <florian@openwrt.org>2010-05-15 21:26:56 +0000
commit928da83f5beb644cb706ca41ddc8742035929cde (patch)
tree1e9ad139da4f3c3fb6161d23bd895dbfe451872e /target/linux/rdc/patches-2.6.32/002-rdc321x_gpio.patch
parentfa8c4aa1644ef3a1c1af3b0e245ef0cad19209cc (diff)
downloadmtk-20170518-928da83f5beb644cb706ca41ddc8742035929cde.zip
mtk-20170518-928da83f5beb644cb706ca41ddc8742035929cde.tar.gz
mtk-20170518-928da83f5beb644cb706ca41ddc8742035929cde.tar.bz2
fix panic on boot due to invalid IORESOURCE for MFD cells, fix gpio value setting
SVN-Revision: 21459
Diffstat (limited to 'target/linux/rdc/patches-2.6.32/002-rdc321x_gpio.patch')
-rw-r--r--target/linux/rdc/patches-2.6.32/002-rdc321x_gpio.patch30
1 files changed, 18 insertions, 12 deletions
diff --git a/target/linux/rdc/patches-2.6.32/002-rdc321x_gpio.patch b/target/linux/rdc/patches-2.6.32/002-rdc321x_gpio.patch
index e1aa46e..c2365b7 100644
--- a/target/linux/rdc/patches-2.6.32/002-rdc321x_gpio.patch
+++ b/target/linux/rdc/patches-2.6.32/002-rdc321x_gpio.patch
@@ -8,9 +8,11 @@ Changes from v2:
- use the pci_dev pointer passed as platform data
- replaced rdc321x_pci_{read,write}
---- a/drivers/gpio/Kconfig
-+++ b/drivers/gpio/Kconfig
-@@ -196,6 +196,14 @@ config GPIO_LANGWELL
+Index: linux-2.6.32.10/drivers/gpio/Kconfig
+===================================================================
+--- linux-2.6.32.10.orig/drivers/gpio/Kconfig 2010-05-15 22:54:31.000000000 +0200
++++ linux-2.6.32.10/drivers/gpio/Kconfig 2010-05-15 22:54:51.000000000 +0200
+@@ -196,6 +196,14 @@
help
Say Y here to support Intel Moorestown platform GPIO.
@@ -25,15 +27,19 @@ Changes from v2:
comment "SPI GPIO expanders:"
config GPIO_MAX7301
---- a/drivers/gpio/Makefile
-+++ b/drivers/gpio/Makefile
-@@ -19,3 +19,4 @@ obj-$(CONFIG_GPIO_XILINX) += xilinx_gpio
+Index: linux-2.6.32.10/drivers/gpio/Makefile
+===================================================================
+--- linux-2.6.32.10.orig/drivers/gpio/Makefile 2010-05-15 22:54:31.000000000 +0200
++++ linux-2.6.32.10/drivers/gpio/Makefile 2010-05-15 22:54:51.000000000 +0200
+@@ -19,3 +19,4 @@
obj-$(CONFIG_GPIO_BT8XX) += bt8xxgpio.o
obj-$(CONFIG_GPIO_VR41XX) += vr41xx_giu.o
obj-$(CONFIG_GPIO_WM831X) += wm831x-gpio.o
+obj-$(CONFIG_GPIO_RDC321X) += rdc321x-gpio.o
---- /dev/null
-+++ b/drivers/gpio/rdc321x-gpio.c
+Index: linux-2.6.32.10/drivers/gpio/rdc321x-gpio.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.32.10/drivers/gpio/rdc321x-gpio.c 2010-05-15 22:55:10.000000000 +0200
@@ -0,0 +1,245 @@
+/*
+ * RDC321x GPIO driver
@@ -109,7 +115,7 @@ Changes from v2:
+ gpch->data_reg[reg] &= ~(1 << (gpio & 0x1f));
+
+ pci_write_config_dword(gpch->sb_pdev,
-+ reg ? gpch->reg1_data_base : gpch->reg2_data_base,
++ reg ? gpch->reg2_data_base : gpch->reg1_data_base,
+ gpch->data_reg[reg]);
+}
+
@@ -171,7 +177,7 @@ Changes from v2:
+ struct rdc321x_gpio *rdc321x_gpio_dev;
+ struct rdc321x_gpio_pdata *pdata;
+
-+ pdata = pdev->dev.platform_data;
++ pdata = platform_get_drvdata(pdev);
+ if (!pdata) {
+ dev_err(&pdev->dev, "no platform data supplied\n");
+ return -ENODEV;
@@ -183,7 +189,7 @@ Changes from v2:
+ return -ENOMEM;
+ }
+
-+ r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gpio-reg1");
++ r = platform_get_resource_byname(pdev, IORESOURCE_IO, "gpio-reg1");
+ if (!r) {
+ dev_err(&pdev->dev, "failed to get gpio-reg1 resource\n");
+ err = -ENODEV;
@@ -195,7 +201,7 @@ Changes from v2:
+ rdc321x_gpio_dev->reg1_ctrl_base = r->start;
+ rdc321x_gpio_dev->reg1_data_base = r->start + 0x4;
+
-+ r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gpio-reg2");
++ r = platform_get_resource_byname(pdev, IORESOURCE_IO, "gpio-reg2");
+ if (!r) {
+ dev_err(&pdev->dev, "failed to get gpio-reg2 resource\n");
+ err = -ENODEV;