SH Driver Update for v3.16
* PM Runtime enhancements targeted for use with ARM-based Renesas R-Car Gen2 SoCs * Restrict INTC_USERIMASK to SH4A as it is only used there -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.15 (GNU/Linux) iQIcBAABAgAGBQJTkbZRAAoJENfPZGlqN0++PRMP/A7E8+jBUkYIK/khGQ8obkWs FfDsMN+Zgs+en+E99GARJhrBPuRfp+ySrgXPydHwD1f1sYLPDq8IWRXTfM8Ibce3 hVSLqpWvVR/PoqIryvAbw8iDC/4ENN0cNEja2IWLSzoGXEnK53XSDJTHRIAwEaVg 6OHPzXTteD/2qFRqC6ALtzS0dNVuImWXSEBui8Wwdt/5Kh6hmqf0hGNsWq1AKgZB yxBmEGTAfimy5iNQJc1JmPy5HX05ZLybRsjpwGwUHUfdI5tDdhMDyHTDtFJNB+Y3 6sPIyWV61Eck7uUwfnDe7CstidMOvqhyOG5rsFlszu5MNZ2er4c9xmg6Tr0SRkFu Ck+SMekcqYG+lfOYdXpMpXkE1jQu2F1NhWNeOsdlK6M9OL7j/IcwxZ+mt5XW9qI2 YLMCE7uatKln6p/CO18CPJqFzQi6sOXbGLKHAKQ0bXragmFdYHWUUDIClV2t2hW9 CyVG6vSvFpkjwGD1nxB9kTSeXhhPO72Vow6fAD5/45wAoPrVu6Z7yfEj9pd4uYSp BQMtbtxGF03epSVe3kCS8qdoj+3Ehqb5rnjTZt5V8malO0VdstWZfFiggrbOCh6D 3Ol8PcyiKF2QK/jwPSaVpvDs6e1KuuRKekIG9oiFS3MyTQh7rxpHh6YP9sUY19u5 Qy1gACWjBwf27CTStq2s =1JA8 -----END PGP SIGNATURE----- Merge tag 'renesas-sh-drivers-for-v3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next Pull SH driver update from Simon Horman: - PM Runtime enhancements targeted for use with ARM-based Renesas R-Car Gen2 SoCs - Restrict INTC_USERIMASK to SH4A as it is only used there * tag 'renesas-sh-drivers-for-v3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: drivers: sh: Enable PM runtime for new R-Car Gen2 SoCs drivers: sh: pm_runtime implementation needs to suspend and resume devices drivers: sh: Restrict INTC_USERIMASK to SH4A drivers: sh: pm_runtime does not need idle callback
This commit is contained in:
commit
75bcc84445
|
@ -6,7 +6,7 @@ comment "Interrupt controller options"
|
|||
|
||||
config INTC_USERIMASK
|
||||
bool "Userspace interrupt masking support"
|
||||
depends on ARCH_SHMOBILE || (SUPERH && CPU_SH4A) || COMPILE_TEST
|
||||
depends on (SUPERH && CPU_SH4A) || COMPILE_TEST
|
||||
help
|
||||
This enables support for hardware-assisted userspace hardirq
|
||||
masking.
|
||||
|
|
|
@ -21,18 +21,43 @@
|
|||
#include <linux/slab.h>
|
||||
|
||||
#ifdef CONFIG_PM_RUNTIME
|
||||
|
||||
static int default_platform_runtime_idle(struct device *dev)
|
||||
static int sh_pm_runtime_suspend(struct device *dev)
|
||||
{
|
||||
/* suspend synchronously to disable clocks immediately */
|
||||
int ret;
|
||||
|
||||
ret = pm_generic_runtime_suspend(dev);
|
||||
if (ret) {
|
||||
dev_err(dev, "failed to suspend device\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = pm_clk_suspend(dev);
|
||||
if (ret) {
|
||||
dev_err(dev, "failed to suspend clock\n");
|
||||
pm_generic_runtime_resume(dev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int sh_pm_runtime_resume(struct device *dev)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = pm_clk_resume(dev);
|
||||
if (ret) {
|
||||
dev_err(dev, "failed to resume clock\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
return pm_generic_runtime_resume(dev);
|
||||
}
|
||||
|
||||
static struct dev_pm_domain default_pm_domain = {
|
||||
.ops = {
|
||||
.runtime_suspend = pm_clk_suspend,
|
||||
.runtime_resume = pm_clk_resume,
|
||||
.runtime_idle = default_platform_runtime_idle,
|
||||
.runtime_suspend = sh_pm_runtime_suspend,
|
||||
.runtime_resume = sh_pm_runtime_resume,
|
||||
USE_PLATFORM_PM_SLEEP_OPS
|
||||
},
|
||||
};
|
||||
|
@ -63,6 +88,9 @@ static int __init sh_pm_runtime_init(void)
|
|||
!of_machine_is_compatible("renesas,r8a7779") &&
|
||||
!of_machine_is_compatible("renesas,r8a7790") &&
|
||||
!of_machine_is_compatible("renesas,r8a7791") &&
|
||||
!of_machine_is_compatible("renesas,r8a7792") &&
|
||||
!of_machine_is_compatible("renesas,r8a7793") &&
|
||||
!of_machine_is_compatible("renesas,r8a7794") &&
|
||||
!of_machine_is_compatible("renesas,sh7372") &&
|
||||
!of_machine_is_compatible("renesas,sh73a0"))
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue