Skip to content

Commit 57648e8

Browse files
Roja Rani Yarubandiwsakernel
authored andcommitted
i2c: qcom-geni: Suspend and resume the bus during SYSTEM_SLEEP_PM ops
Mark bus as suspended during system suspend to block the future transfers. Implement geni_i2c_resume_noirq() to resume the bus. Fixes: 37692de ("i2c: i2c-qcom-geni: Add bus driver for the Qualcomm GENI I2C controller") Signed-off-by: Roja Rani Yarubandi <[email protected]> Reviewed-by: Stephen Boyd <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
1 parent 9f78c60 commit 57648e8

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

drivers/i2c/busses/i2c-qcom-geni.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -698,6 +698,8 @@ static int __maybe_unused geni_i2c_suspend_noirq(struct device *dev)
698698
{
699699
struct geni_i2c_dev *gi2c = dev_get_drvdata(dev);
700700

701+
i2c_mark_adapter_suspended(&gi2c->adap);
702+
701703
if (!gi2c->suspended) {
702704
geni_i2c_runtime_suspend(dev);
703705
pm_runtime_disable(dev);
@@ -707,8 +709,16 @@ static int __maybe_unused geni_i2c_suspend_noirq(struct device *dev)
707709
return 0;
708710
}
709711

712+
static int __maybe_unused geni_i2c_resume_noirq(struct device *dev)
713+
{
714+
struct geni_i2c_dev *gi2c = dev_get_drvdata(dev);
715+
716+
i2c_mark_adapter_resumed(&gi2c->adap);
717+
return 0;
718+
}
719+
710720
static const struct dev_pm_ops geni_i2c_pm_ops = {
711-
SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(geni_i2c_suspend_noirq, NULL)
721+
SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(geni_i2c_suspend_noirq, geni_i2c_resume_noirq)
712722
SET_RUNTIME_PM_OPS(geni_i2c_runtime_suspend, geni_i2c_runtime_resume,
713723
NULL)
714724
};

0 commit comments

Comments
 (0)