diff --git a/drivers/staging/ccree/ssi_driver.c b/drivers/staging/ccree/ssi_driver.c index fbf03385631735519e153a1cb9241afb1008c942..ad02d9214fbe58467f1421a5c331d0f8c51fbe0d 100644 --- a/drivers/staging/ccree/ssi_driver.c +++ b/drivers/staging/ccree/ssi_driver.c @@ -500,18 +500,6 @@ static int cc7x_remove(struct platform_device *plat_dev) return 0; } -#if defined(CONFIG_PM) -static const struct dev_pm_ops arm_cc7x_driver_pm = { - SET_RUNTIME_PM_OPS(cc_pm_suspend, cc_pm_resume, NULL) -}; -#endif - -#if defined(CONFIG_PM) -#define CC_DRIVER_RUNTIME_PM (&arm_cc7x_driver_pm) -#else -#define CC_DRIVER_RUNTIME_PM NULL -#endif - static const struct of_device_id arm_cc7x_dev_of_match[] = { {.compatible = "arm,cryptocell-712-ree"}, {} @@ -522,7 +510,9 @@ static struct platform_driver cc7x_driver = { .driver = { .name = "cc7xree", .of_match_table = arm_cc7x_dev_of_match, - .pm = CC_DRIVER_RUNTIME_PM, +#ifdef CONFIG_PM + .pm = &ccree_pm, +#endif }, .probe = cc7x_probe, .remove = cc7x_remove, diff --git a/drivers/staging/ccree/ssi_pm.c b/drivers/staging/ccree/ssi_pm.c index 3c4892b85ea50ac04810f168ce50978ab385565a..0db935dd306a49439591753da4095344d75ebe38 100644 --- a/drivers/staging/ccree/ssi_pm.c +++ b/drivers/staging/ccree/ssi_pm.c @@ -34,6 +34,10 @@ #define POWER_DOWN_ENABLE 0x01 #define POWER_DOWN_DISABLE 0x00 +const struct dev_pm_ops ccree_pm = { + SET_RUNTIME_PM_OPS(cc_pm_suspend, cc_pm_resume, NULL) +}; + int cc_pm_suspend(struct device *dev) { struct cc_drvdata *drvdata = dev_get_drvdata(dev); diff --git a/drivers/staging/ccree/ssi_pm.h b/drivers/staging/ccree/ssi_pm.h index a5f2b1b053a2255bf3a116a20ff5424b21eeccbe..91140a34267af28fe6ddfef1ed4e0f4bc8fbedfd 100644 --- a/drivers/staging/ccree/ssi_pm.h +++ b/drivers/staging/ccree/ssi_pm.h @@ -30,6 +30,9 @@ int cc_pm_init(struct cc_drvdata *drvdata); void cc_pm_fini(struct cc_drvdata *drvdata); #if defined(CONFIG_PM) + +extern const struct dev_pm_ops ccree_pm; + int cc_pm_suspend(struct device *dev); int cc_pm_resume(struct device *dev);