mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-20 17:50:09 -05:00
i2c: xiic: Relocate xiic_i2c_runtime_suspend and xiic_i2c_runtime_resume to facilitate atomic mode
Relocate xiic_i2c_runtime_suspend and xiic_i2c_runtime_resume functions to avoid prototype statements in atomic mode changes. Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli@amd.com> Acked-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/20241210095242.1982770-2-manikanta.guntupalli@amd.com Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
This commit is contained in:
committed by
Andi Shyti
parent
f524707b44
commit
2ee409c6a1
@@ -238,6 +238,29 @@ static const struct timing_regs timing_reg_values[] = {
|
||||
static int xiic_start_xfer(struct xiic_i2c *i2c, struct i2c_msg *msgs, int num);
|
||||
static void __xiic_start_xfer(struct xiic_i2c *i2c);
|
||||
|
||||
static int __maybe_unused xiic_i2c_runtime_suspend(struct device *dev)
|
||||
{
|
||||
struct xiic_i2c *i2c = dev_get_drvdata(dev);
|
||||
|
||||
clk_disable(i2c->clk);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __maybe_unused xiic_i2c_runtime_resume(struct device *dev)
|
||||
{
|
||||
struct xiic_i2c *i2c = dev_get_drvdata(dev);
|
||||
int ret;
|
||||
|
||||
ret = clk_enable(i2c->clk);
|
||||
if (ret) {
|
||||
dev_err(dev, "Cannot enable clock.\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* For the register read and write functions, a little-endian and big-endian
|
||||
* version are necessary. Endianness is detected during the probe function.
|
||||
@@ -1365,29 +1388,6 @@ static void xiic_i2c_remove(struct platform_device *pdev)
|
||||
pm_runtime_dont_use_autosuspend(&pdev->dev);
|
||||
}
|
||||
|
||||
static int __maybe_unused xiic_i2c_runtime_suspend(struct device *dev)
|
||||
{
|
||||
struct xiic_i2c *i2c = dev_get_drvdata(dev);
|
||||
|
||||
clk_disable(i2c->clk);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __maybe_unused xiic_i2c_runtime_resume(struct device *dev)
|
||||
{
|
||||
struct xiic_i2c *i2c = dev_get_drvdata(dev);
|
||||
int ret;
|
||||
|
||||
ret = clk_enable(i2c->clk);
|
||||
if (ret) {
|
||||
dev_err(dev, "Cannot enable clock.\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct dev_pm_ops xiic_dev_pm_ops = {
|
||||
SET_RUNTIME_PM_OPS(xiic_i2c_runtime_suspend,
|
||||
xiic_i2c_runtime_resume, NULL)
|
||||
|
||||
Reference in New Issue
Block a user