mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 04:20:53 +07:00
gpio/omap: remove suspend/resume callbacks
Both omap_gpio_suspend() and omap_gpio_resume() does programming of wakeup_en register. _gpio_rmw(base, bank->regs->wkup_en, 0xffffffff, 0); _gpio_rmw(base, bank->regs->wkup_en, bank->context.wake_en, 1); This is redundant in omap_gpio_suspend() because wakeup_en register automatically gets initialized in _set_gpio_wakeup() and set_gpio_trigger() while being called either from chip.irq_set_wake() or chip.irq_set_type(). This is also redundant in omap_gpio_resume() because wakeup_en register is programmed in omap_gpio_restore_context() called which is called from runtime resume callback. Cc: Kevin Hilman <khilman@ti.com> Cc: Tony Lindgren <tony@atomide.com> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com> Cc: Cousson, Benoit <b-cousson@ti.com> Cc: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Tarun Kanti DebBarma <tarun.kanti@ti.com> Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: Govindraj.R <govindraj.raja@ti.com> Signed-off-by: Kevin Hilman <khilman@ti.com>
This commit is contained in:
parent
b1a8e3d2d1
commit
9c4ed9e6c0
@ -1144,50 +1144,6 @@ static int __devinit omap_gpio_probe(struct platform_device *pdev)
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP2PLUS
|
||||
|
||||
#if defined(CONFIG_PM_SLEEP)
|
||||
static int omap_gpio_suspend(struct device *dev)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
struct gpio_bank *bank = platform_get_drvdata(pdev);
|
||||
void __iomem *base = bank->base;
|
||||
unsigned long flags;
|
||||
|
||||
if (!bank->mod_usage || !bank->loses_context)
|
||||
return 0;
|
||||
|
||||
if (!bank->regs->wkup_en || !bank->context.wake_en)
|
||||
return 0;
|
||||
|
||||
spin_lock_irqsave(&bank->lock, flags);
|
||||
_gpio_rmw(base, bank->regs->wkup_en, 0xffffffff, 0);
|
||||
_gpio_rmw(base, bank->regs->wkup_en, bank->context.wake_en, 1);
|
||||
spin_unlock_irqrestore(&bank->lock, flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int omap_gpio_resume(struct device *dev)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
struct gpio_bank *bank = platform_get_drvdata(pdev);
|
||||
void __iomem *base = bank->base;
|
||||
unsigned long flags;
|
||||
|
||||
if (!bank->mod_usage || !bank->loses_context)
|
||||
return 0;
|
||||
|
||||
if (!bank->regs->wkup_en || !bank->context.wake_en)
|
||||
return 0;
|
||||
|
||||
spin_lock_irqsave(&bank->lock, flags);
|
||||
_gpio_rmw(base, bank->regs->wkup_en, 0xffffffff, 0);
|
||||
_gpio_rmw(base, bank->regs->wkup_en, bank->context.wake_en, 1);
|
||||
spin_unlock_irqrestore(&bank->lock, flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
#if defined(CONFIG_PM_RUNTIME)
|
||||
static void omap_gpio_restore_context(struct gpio_bank *bank);
|
||||
|
||||
@ -1416,14 +1372,11 @@ static void omap_gpio_restore_context(struct gpio_bank *bank)
|
||||
}
|
||||
#endif /* CONFIG_PM_RUNTIME */
|
||||
#else
|
||||
#define omap_gpio_suspend NULL
|
||||
#define omap_gpio_resume NULL
|
||||
#define omap_gpio_runtime_suspend NULL
|
||||
#define omap_gpio_runtime_resume NULL
|
||||
#endif
|
||||
|
||||
static const struct dev_pm_ops gpio_pm_ops = {
|
||||
SET_SYSTEM_SLEEP_PM_OPS(omap_gpio_suspend, omap_gpio_resume)
|
||||
SET_RUNTIME_PM_OPS(omap_gpio_runtime_suspend, omap_gpio_runtime_resume,
|
||||
NULL)
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user