• D
    i2c: tegra: Remove suspend-resume · 535ba904
    Dmitry Osipenko 提交于
    Nothing prevents I2C clients to access I2C while Tegra's driver is being
    suspended, this results in -EBUSY error returned to the clients and that
    may have unfortunate consequences. In particular this causes problems
    for the TPS6586x MFD driver which emits hundreds of "failed to read
    interrupt status" error messages on resume from suspend. This happens if
    TPS6586X is used to wake system from suspend by the expired RTC alarm
    timer because TPS6586X is an I2C device driver and its IRQ handler reads
    the status register while Tegra's I2C driver is suspended, i.e. just after
    kernel enabled IRQ's during of resume-from-suspend process.
    
    Note that the removed tegra_i2c_resume() invoked tegra_i2c_init() which
    performs HW reset. That seems was also not entirely correct because moving
    tegra_i2c_resume to an earlier stage of resume-from-suspend process causes
    I2C transfer to fail in the case of TPS6586X. It is fine to remove the
    HW-reinitialization for now because it should be only needed in a case of
    using lowest power-mode during suspend, which upstream kernel doesn't
    support.
    Signed-off-by: NDmitry Osipenko <digetx@gmail.com>
    Acked-by: NLaxman Dewangan <ldewangan@nvidia.com>
    Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
    535ba904
i2c-tegra.c 29.7 KB