lkml.org 
[lkml]   [2021]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v4 0/5] Add missing reset controls to NVIDIA Tegra ASoC drivers
    Date
    Hi,

    This series adds missing hardware reset controls to I2S and AC97 drivers.
    Currently drivers happen to work properly because reset is implicitly
    deasserted by tegra-clk driver, but clk driver shouldn't touch the resets
    and we need to fix it because this breaks other Tegra drivers. Previously
    we fixed the resets of the AHUB and HDMI codec drivers, but turned out
    that we missed the I2C and AC97 drivers.

    Thanks to Paul Fertser for testing the pending clk patches and finding
    that audio got broken on Tegra20 AC100 netbook because of the missing I2S
    reset.

    Changelog:

    v4: - Added missing prototype for reset_control_bulk_put().

    v3: - Fixed reset stubs for !CONFIG_RESET_CONTROLLER.

    v2: - After some more testing I found that I2S control logic doesn't require
    I2S clock to be enabled for resetting. Hence it's fine to have I2S to
    be reset by parent AHUB driver, so I dropped "tegra30: i2s: Add reset
    control" patch.

    - While I was double-checking resets on Tegra30, I found that that
    Tegra30 I2S driver has a broken runtime PM which doesn't restore
    hardware state on resume and it's lost after AHUB RPM-resume.
    Thus, added this new patch "tegra30: i2s: Restore hardware state
    on runtime PM resume".

    - Added new patches which switch AHUB driver to use reset-bulk API.
    I took the RFC patch from Philipp Zabel, fixed it and added
    devm_reset_control_bulk_optional_get_exclusive_released() that
    will be useful for further Tegra GPU patches. This is a minor
    improvement which makes code cleaner.

    Dmitry Osipenko (4):
    ASoC: tegra20: ac97: Add reset control
    ASoC: tegra20: i2s: Add reset control
    ASoC: tegra30: i2s: Restore hardware state on runtime PM resume
    ASoC: tegra: ahub: Switch to use reset-bulk API

    Philipp Zabel (1):
    reset: Add reset_control_bulk API

    drivers/reset/core.c | 215 ++++++++++++++++++++++
    include/linux/reset.h | 315 +++++++++++++++++++++++++++++++++
    sound/soc/tegra/tegra20_ac97.c | 21 +++
    sound/soc/tegra/tegra20_ac97.h | 1 +
    sound/soc/tegra/tegra20_i2s.c | 31 ++++
    sound/soc/tegra/tegra20_i2s.h | 1 +
    sound/soc/tegra/tegra30_ahub.c | 104 ++++-------
    sound/soc/tegra/tegra30_ahub.h | 5 +-
    sound/soc/tegra/tegra30_i2s.c | 41 ++---
    9 files changed, 636 insertions(+), 98 deletions(-)

    --
    2.29.2

    \
     
     \ /
      Last update: 2021-03-11 19:01    [W:4.282 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site