PM / shmobile: Make TMU driver use pm_genpd_dev_always_on()
Make the TMU clocksource driver mark its device as "always on" using pm_genpd_dev_always_on() to protect it from surprise power removals and make sh7372_add_standard_devices() add TMU devices on sh7372 to the A4R power domain so that their "always on" flags are taken into account as appropriate. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Tested-by: Simon Horman <horms@verge.net.au> Acked-by: Paul Mundt <lethal@linux-sh.org> Cc: stable@vger.kernel.org
This commit is contained in:
Родитель
1e78a0c7fc
Коммит
2ee619f948
|
@ -1041,6 +1041,8 @@ void __init sh7372_add_standard_devices(void)
|
||||||
sh7372_add_device_to_domain(&sh7372_a4r, &veu2_device);
|
sh7372_add_device_to_domain(&sh7372_a4r, &veu2_device);
|
||||||
sh7372_add_device_to_domain(&sh7372_a4r, &veu3_device);
|
sh7372_add_device_to_domain(&sh7372_a4r, &veu3_device);
|
||||||
sh7372_add_device_to_domain(&sh7372_a4r, &jpu_device);
|
sh7372_add_device_to_domain(&sh7372_a4r, &jpu_device);
|
||||||
|
sh7372_add_device_to_domain(&sh7372_a4r, &tmu00_device);
|
||||||
|
sh7372_add_device_to_domain(&sh7372_a4r, &tmu01_device);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init sh7372_add_early_devices(void)
|
void __init sh7372_add_early_devices(void)
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include <linux/sh_timer.h>
|
#include <linux/sh_timer.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
#include <linux/pm_domain.h>
|
||||||
|
|
||||||
struct sh_tmu_priv {
|
struct sh_tmu_priv {
|
||||||
void __iomem *mapbase;
|
void __iomem *mapbase;
|
||||||
|
@ -410,6 +411,9 @@ static int __devinit sh_tmu_probe(struct platform_device *pdev)
|
||||||
struct sh_tmu_priv *p = platform_get_drvdata(pdev);
|
struct sh_tmu_priv *p = platform_get_drvdata(pdev);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if (!is_early_platform_device(pdev))
|
||||||
|
pm_genpd_dev_always_on(&pdev->dev, true);
|
||||||
|
|
||||||
if (p) {
|
if (p) {
|
||||||
dev_info(&pdev->dev, "kept as earlytimer\n");
|
dev_info(&pdev->dev, "kept as earlytimer\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче