mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
mfd: stmfx: Disable IRQ in suspend to avoid spurious interrupt
[ Upstream commit 97eda5dcc2cde5dcc778bef7a9344db3b6bf8ef5 ]
When STMFX supply is stopped, spurious interrupt can occur. To avoid that,
disable the interrupt in suspend before disabling the regulator and
re-enable it at the end of resume.
Fixes: 06252ade91 ("mfd: Add ST Multi-Function eXpander (STMFX) core driver")
Signed-off-by: Amelie Delaunay <[email protected]>
Signed-off-by: Lee Jones <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
This commit is contained in:
parent
d8d1b8b417
commit
9669bf039f
2 changed files with 7 additions and 0 deletions
|
|
@ -296,6 +296,8 @@ static int stmfx_irq_init(struct i2c_client *client)
|
|||
if (ret)
|
||||
goto irq_exit;
|
||||
|
||||
stmfx->irq = client->irq;
|
||||
|
||||
return 0;
|
||||
|
||||
irq_exit:
|
||||
|
|
@ -486,6 +488,8 @@ static int stmfx_suspend(struct device *dev)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
disable_irq(stmfx->irq);
|
||||
|
||||
if (stmfx->vdd)
|
||||
return regulator_disable(stmfx->vdd);
|
||||
|
||||
|
|
@ -529,6 +533,8 @@ static int stmfx_resume(struct device *dev)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
enable_irq(stmfx->irq);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue