From 928da83f5beb644cb706ca41ddc8742035929cde Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Sat, 15 May 2010 21:26:56 +0000 Subject: fix panic on boot due to invalid IORESOURCE for MFD cells, fix gpio value setting SVN-Revision: 21459 --- .../003-rdc321x_watchdog_southbridge.patch | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'target/linux/rdc/patches-2.6.32/003-rdc321x_watchdog_southbridge.patch') diff --git a/target/linux/rdc/patches-2.6.32/003-rdc321x_watchdog_southbridge.patch b/target/linux/rdc/patches-2.6.32/003-rdc321x_watchdog_southbridge.patch index 2671fb17cd..dafa7e49a6 100644 --- a/target/linux/rdc/patches-2.6.32/003-rdc321x_watchdog_southbridge.patch +++ b/target/linux/rdc/patches-2.6.32/003-rdc321x_watchdog_southbridge.patch @@ -10,8 +10,10 @@ Changes from v2: - replaced rdc321x_pci_{read,write} - use the pci_dev pointer passed as platform_data ---- a/drivers/watchdog/rdc321x_wdt.c -+++ b/drivers/watchdog/rdc321x_wdt.c +Index: linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c +=================================================================== +--- linux-2.6.32.10.orig/drivers/watchdog/rdc321x_wdt.c 2010-05-15 22:14:28.000000000 +0200 ++++ linux-2.6.32.10/drivers/watchdog/rdc321x_wdt.c 2010-05-15 22:15:24.000000000 +0200 @@ -1,7 +1,7 @@ /* * RDC321x watchdog driver @@ -31,7 +33,7 @@ Changes from v2: #define RDC_WDT_MASK 0x80000000 /* Mask */ #define RDC_WDT_EN 0x00800000 /* Enable bit */ -@@ -63,6 +62,8 @@ static struct { +@@ -63,6 +62,8 @@ int default_ticks; unsigned long inuse; spinlock_t lock; @@ -40,7 +42,7 @@ Changes from v2: } rdc321x_wdt_device; /* generic helper functions */ -@@ -70,14 +71,18 @@ static struct { +@@ -70,14 +71,18 @@ static void rdc321x_wdt_trigger(unsigned long unused) { unsigned long flags; @@ -61,7 +63,7 @@ Changes from v2: spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags); /* requeue?? */ -@@ -105,10 +110,13 @@ static void rdc321x_wdt_start(void) +@@ -105,10 +110,13 @@ /* Clear the timer */ spin_lock_irqsave(&rdc321x_wdt_device.lock, flags); @@ -77,7 +79,7 @@ Changes from v2: spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags); mod_timer(&rdc321x_wdt_device.timer, -@@ -148,7 +156,7 @@ static long rdc321x_wdt_ioctl(struct fil +@@ -148,7 +156,7 @@ unsigned long arg) { void __user *argp = (void __user *)arg; @@ -86,7 +88,7 @@ Changes from v2: static struct watchdog_info ident = { .options = WDIOF_CARDRESET, .identity = "RDC321x WDT", -@@ -162,9 +170,10 @@ static long rdc321x_wdt_ioctl(struct fil +@@ -162,9 +170,10 @@ case WDIOC_GETSTATUS: /* Read the value from the DATA register */ spin_lock_irqsave(&rdc321x_wdt_device.lock, flags); @@ -99,20 +101,20 @@ Changes from v2: return -EFAULT; break; case WDIOC_GETSUPPORT: -@@ -219,17 +228,35 @@ static struct miscdevice rdc321x_wdt_mis +@@ -219,17 +228,35 @@ static int __devinit rdc321x_wdt_probe(struct platform_device *pdev) { int err; + struct resource *r; + struct rdc321x_wdt_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; + } + -+ r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "wdt-reg"); ++ r = platform_get_resource_byname(pdev, IORESOURCE_IO, "wdt-reg"); + if (!r) { + dev_err(&pdev->dev, "failed to get wdt-reg resource\n"); + return -ENODEV; @@ -137,7 +139,7 @@ Changes from v2: init_completion(&rdc321x_wdt_device.stop); rdc321x_wdt_device.queue = 0; -@@ -240,7 +267,7 @@ static int __devinit rdc321x_wdt_probe(s +@@ -240,7 +267,7 @@ rdc321x_wdt_device.default_ticks = ticks; -- cgit v1.2.3