mirror of https://gitee.com/openkylin/linux.git
I2C: OMAP: make omap_i2c_unidle/idle functions depend on CONFIG_PM_RUNTIME
The functions omap_i2c_unidle/idle are called from omap_i2c_runtime_resume and omap_i2c_runtime_suspend which is compiled for CONFIG_PM_RUNTIME. This patch removes the omap_i2c_unidle/idle functions and folds them into the runtime callbacks. This fixes the below warn when CONFIG_PM_RUNTIME is not defined CC arch/arm/mach-omap2/board-ti8168evm.o drivers/i2c/busses/i2c-omap.c:272: warning: 'omap_i2c_unidle' defined but not used drivers/i2c/busses/i2c-omap.c:293: warning: 'omap_i2c_idle' defined but not used CC net/ipv4/ip_forward.o Reviewed-by: Kevin Hilman <khilman@ti.com> Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
This commit is contained in:
parent
f14cf2fb8d
commit
3dae3efb12
|
@ -269,47 +269,6 @@ static inline u16 omap_i2c_read_reg(struct omap_i2c_dev *i2c_dev, int reg)
|
|||
(i2c_dev->regs[reg] << i2c_dev->reg_shift));
|
||||
}
|
||||
|
||||
static void omap_i2c_unidle(struct omap_i2c_dev *dev)
|
||||
{
|
||||
if (dev->flags & OMAP_I2C_FLAG_RESET_REGS_POSTIDLE) {
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0);
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_PSC_REG, dev->pscstate);
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_SCLL_REG, dev->scllstate);
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_SCLH_REG, dev->sclhstate);
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_BUF_REG, dev->bufstate);
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, dev->syscstate);
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_WE_REG, dev->westate);
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN);
|
||||
}
|
||||
|
||||
/*
|
||||
* Don't write to this register if the IE state is 0 as it can
|
||||
* cause deadlock.
|
||||
*/
|
||||
if (dev->iestate)
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate);
|
||||
}
|
||||
|
||||
static void omap_i2c_idle(struct omap_i2c_dev *dev)
|
||||
{
|
||||
u16 iv;
|
||||
|
||||
dev->iestate = omap_i2c_read_reg(dev, OMAP_I2C_IE_REG);
|
||||
if (dev->dtrev == OMAP_I2C_IP_VERSION_2)
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_IP_V2_IRQENABLE_CLR, 1);
|
||||
else
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, 0);
|
||||
|
||||
if (dev->rev < OMAP_I2C_OMAP1_REV_2) {
|
||||
iv = omap_i2c_read_reg(dev, OMAP_I2C_IV_REG); /* Read clears */
|
||||
} else {
|
||||
omap_i2c_write_reg(dev, OMAP_I2C_STAT_REG, dev->iestate);
|
||||
|
||||
/* Flush posted write */
|
||||
omap_i2c_read_reg(dev, OMAP_I2C_STAT_REG);
|
||||
}
|
||||
}
|
||||
|
||||
static int omap_i2c_init(struct omap_i2c_dev *dev)
|
||||
{
|
||||
u16 psc = 0, scll = 0, sclh = 0, buf = 0;
|
||||
|
@ -1163,8 +1122,22 @@ static int omap_i2c_runtime_suspend(struct device *dev)
|
|||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
struct omap_i2c_dev *_dev = platform_get_drvdata(pdev);
|
||||
u16 iv;
|
||||
|
||||
omap_i2c_idle(_dev);
|
||||
_dev->iestate = omap_i2c_read_reg(_dev, OMAP_I2C_IE_REG);
|
||||
if (_dev->dtrev == OMAP_I2C_IP_VERSION_2)
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_IP_V2_IRQENABLE_CLR, 1);
|
||||
else
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_IE_REG, 0);
|
||||
|
||||
if (_dev->rev < OMAP_I2C_OMAP1_REV_2) {
|
||||
iv = omap_i2c_read_reg(_dev, OMAP_I2C_IV_REG); /* Read clears */
|
||||
} else {
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_STAT_REG, _dev->iestate);
|
||||
|
||||
/* Flush posted write */
|
||||
omap_i2c_read_reg(_dev, OMAP_I2C_STAT_REG);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1174,7 +1147,23 @@ static int omap_i2c_runtime_resume(struct device *dev)
|
|||
struct platform_device *pdev = to_platform_device(dev);
|
||||
struct omap_i2c_dev *_dev = platform_get_drvdata(pdev);
|
||||
|
||||
omap_i2c_unidle(_dev);
|
||||
if (_dev->flags & OMAP_I2C_FLAG_RESET_REGS_POSTIDLE) {
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_CON_REG, 0);
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_PSC_REG, _dev->pscstate);
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_SCLL_REG, _dev->scllstate);
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_SCLH_REG, _dev->sclhstate);
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_BUF_REG, _dev->bufstate);
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_SYSC_REG, _dev->syscstate);
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_WE_REG, _dev->westate);
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN);
|
||||
}
|
||||
|
||||
/*
|
||||
* Don't write to this register if the IE state is 0 as it can
|
||||
* cause deadlock.
|
||||
*/
|
||||
if (_dev->iestate)
|
||||
omap_i2c_write_reg(_dev, OMAP_I2C_IE_REG, _dev->iestate);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue