diff options
Diffstat (limited to 'drivers/watchdog/omap_wdt.c')
| -rw-r--r-- | drivers/watchdog/omap_wdt.c | 24 | 
1 files changed, 7 insertions, 17 deletions
diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c index 8285d65cd20..fceec4f4eb7 100644 --- a/drivers/watchdog/omap_wdt.c +++ b/drivers/watchdog/omap_wdt.c @@ -126,8 +126,6 @@ static void omap_wdt_set_timeout(struct omap_wdt_dev *wdev)  	u32 pre_margin = GET_WLDR_VAL(timer_margin);  	void __iomem *base = wdev->base; -	pm_runtime_get_sync(wdev->dev); -  	/* just count up at 32 KHz */  	while (__raw_readl(base + OMAP_WATCHDOG_WPS) & 0x04)  		cpu_relax(); @@ -135,8 +133,6 @@ static void omap_wdt_set_timeout(struct omap_wdt_dev *wdev)  	__raw_writel(pre_margin, base + OMAP_WATCHDOG_LDR);  	while (__raw_readl(base + OMAP_WATCHDOG_WPS) & 0x04)  		cpu_relax(); - -	pm_runtime_put_sync(wdev->dev);  }  /* @@ -166,8 +162,6 @@ static int omap_wdt_open(struct inode *inode, struct file *file)  	omap_wdt_ping(wdev); /* trigger loading of new timeout value */  	omap_wdt_enable(wdev); -	pm_runtime_put_sync(wdev->dev); -  	return nonseekable_open(inode, file);  } @@ -179,8 +173,6 @@ static int omap_wdt_release(struct inode *inode, struct file *file)  	 *      Shut off the timer unless NOWAYOUT is defined.  	 */  #ifndef CONFIG_WATCHDOG_NOWAYOUT -	pm_runtime_get_sync(wdev->dev); -  	omap_wdt_disable(wdev);  	pm_runtime_put_sync(wdev->dev); @@ -199,11 +191,9 @@ static ssize_t omap_wdt_write(struct file *file, const char __user *data,  	/* Refresh LOAD_TIME. */  	if (len) { -		pm_runtime_get_sync(wdev->dev);  		spin_lock(&wdt_lock);  		omap_wdt_ping(wdev);  		spin_unlock(&wdt_lock); -		pm_runtime_put_sync(wdev->dev);  	}  	return len;  } @@ -236,18 +226,15 @@ static long omap_wdt_ioctl(struct file *file, unsigned int cmd,  					(int __user *)arg);  		return put_user(0, (int __user *)arg);  	case WDIOC_KEEPALIVE: -		pm_runtime_get_sync(wdev->dev);  		spin_lock(&wdt_lock);  		omap_wdt_ping(wdev);  		spin_unlock(&wdt_lock); -		pm_runtime_put_sync(wdev->dev);  		return 0;  	case WDIOC_SETTIMEOUT:  		if (get_user(new_margin, (int __user *)arg))  			return -EFAULT;  		omap_wdt_adjust_timeout(new_margin); -		pm_runtime_get_sync(wdev->dev);  		spin_lock(&wdt_lock);  		omap_wdt_disable(wdev);  		omap_wdt_set_timeout(wdev); @@ -255,7 +242,6 @@ static long omap_wdt_ioctl(struct file *file, unsigned int cmd,  		omap_wdt_ping(wdev);  		spin_unlock(&wdt_lock); -		pm_runtime_put_sync(wdev->dev);  		/* Fall */  	case WDIOC_GETTIMEOUT:  		return put_user(timer_margin, (int __user *)arg); @@ -363,7 +349,6 @@ static void omap_wdt_shutdown(struct platform_device *pdev)  	struct omap_wdt_dev *wdev = platform_get_drvdata(pdev);  	if (wdev->omap_wdt_users) { -		pm_runtime_get_sync(wdev->dev);  		omap_wdt_disable(wdev);  		pm_runtime_put_sync(wdev->dev);  	} @@ -403,7 +388,6 @@ static int omap_wdt_suspend(struct platform_device *pdev, pm_message_t state)  	struct omap_wdt_dev *wdev = platform_get_drvdata(pdev);  	if (wdev->omap_wdt_users) { -		pm_runtime_get_sync(wdev->dev);  		omap_wdt_disable(wdev);  		pm_runtime_put_sync(wdev->dev);  	} @@ -419,7 +403,6 @@ static int omap_wdt_resume(struct platform_device *pdev)  		pm_runtime_get_sync(wdev->dev);  		omap_wdt_enable(wdev);  		omap_wdt_ping(wdev); -		pm_runtime_put_sync(wdev->dev);  	}  	return 0; @@ -430,6 +413,12 @@ static int omap_wdt_resume(struct platform_device *pdev)  #define	omap_wdt_resume		NULL  #endif +static const struct of_device_id omap_wdt_of_match[] = { +	{ .compatible = "ti,omap3-wdt", }, +	{}, +}; +MODULE_DEVICE_TABLE(of, omap_wdt_of_match); +  static struct platform_driver omap_wdt_driver = {  	.probe		= omap_wdt_probe,  	.remove		= __devexit_p(omap_wdt_remove), @@ -439,6 +428,7 @@ static struct platform_driver omap_wdt_driver = {  	.driver		= {  		.owner	= THIS_MODULE,  		.name	= "omap_wdt", +		.of_match_table = omap_wdt_of_match,  	},  };  |