1. 24 Aug, 2021 6 commits
  2. 23 Aug, 2021 18 commits
  3. 20 Aug, 2021 3 commits
    • Mark Brown's avatar
      Merge series "ASoC: Intel/rt5640: Add support for HP Elite Pad 1000G2... · 77eca00f
      Mark Brown authored
      Merge series "ASoC: Intel/rt5640: Add support for HP Elite Pad 1000G2 jack-detect" from Hans de Goede <hdegoede@redhat.com>:
      
      Changes in v2:
      - Rebase on asoc/for-next
      - New patch: "ASoC: Intel: bytct_rt5640: Add a separate "Headset Mic 2"
        DAPM pin for the mic on the 2nd jack"
      - Addressed Pierre-Louis' comments about calling
        acpi_dev_add_driver_gpios() twice
      
      Original cover-letter:
      
      The HP Elitepad 1000 G2 tablet has 2 headset jacks:
      
      1. on the dock which uses the output of the codecs built-in HP-amp +
      the standard IN2 input which is always used with the headset-jack.
      
      2. on the tablet itself, this uses the line-out of the codec + an external
      HP-amp, which gets enabled by the ALC5642 codec's GPIO1 pin; and IN1 for
      the headset-mic.
      
      The codec's GPIO1 is also its only IRQ output pin, so this means that
      the codec's IRQ cannot be used on this tablet. Instead the jack-detect
      is connected directly to GPIOs on the main SoC. The dock has a helper
      chip which also detects if a headset-mic is present or not, so there
      are 2 GPIOs for the jack-detect status of the dock. The tablet jack
      uses a single GPIO which indicates if a jack is present or not.
      
      Differentiating between between headphones vs a headset on the tablet jack
      is done by using the usual mic-bias over-current-detection mechanism.
      
      Regards,
      
      Hans
      
      Hans de Goede (6):
        ASoC: rt5640: Move rt5640_disable_jack_detect() up in the rt5640.c
          file
        ASoC: rt5640: Delay requesting IRQ until the machine-drv calls
          set_jack
        ASoC: rt5640: Add optional hp_det_gpio parameter to
          rt5640_detect_headset()
        ASoC: rt5640: Add rt5640_set_ovcd_params() helper
        ASoC: Intel: bytct_rt5640: Add a separate "Headset Mic 2" DAPM pin for
          the mic on the 2nd jack
        ASoC: Intel: bytcr_rt5640: Add support for HP Elite Pad 1000G2
          jack-detect
      
       sound/soc/codecs/rt5640.c             | 136 ++++++++++++----------
       sound/soc/codecs/rt5640.h             |   6 +
       sound/soc/intel/boards/bytcr_rt5640.c | 158 +++++++++++++++++++++++++-
       3 files changed, 234 insertions(+), 66 deletions(-)
      
      --
      2.31.1
      77eca00f
    • Kuninori Morimoto's avatar
      ASoC: rsnd: adg: clearly handle clock error / NULL case · cc64c390
      Kuninori Morimoto authored
      This driver is assuming that all adg->clk[i] is not NULL.
      Because of this prerequisites, for_each_rsnd_clk() is possible to work
      for all clk without checking NULL. In other words, all adg->clk[i]
      should not NULL.
      
      Some SoC might doesn't have clk_a/b/c/i. devm_clk_get() returns error in
      such case. This driver calls rsnd_adg_null_clk_get() and use null_clk
      instead of NULL in such cases.
      
      But devm_clk_get() might returns NULL even though such clocks exist, but
      it doesn't mean error (user deliberately chose to disable the feature).
      NULL clk itself is not error from clk point of view, but is error from
      this driver point of view because it is not assuming such case.
      
      But current code is using IS_ERR() which doesn't care NULL.
      This driver uses IS_ERR_OR_NULL() instead of IS_ERR() for clk check.
      And it uses ERR_CAST() to clarify null_clk error.
      
      One concern here is that it unconditionally uses null_clk if clk_a/b/c/i
      was error. It is correct if it doesn't exist, but is not correct if it
      returns error even though it exist.
      It needs to check "clock-names" from DT before calling devm_clk_get() to
      handling such case. But let's assume it is overkill so far.
      
      Link: https://lore.kernel.org/r/YMCmhfQUimHCSH/n@mwandaReported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Link: https://lore.kernel.org/r/87v940wyf9.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      cc64c390
    • Kuninori Morimoto's avatar
      ASoC: rsnd: core: make some arrays static const, makes object smaller · 28889de6
      Kuninori Morimoto authored
      Don't populate arrays on the stack but instead them static const.
      Makes the object code smaller by 48 bytes.
      
      Before:
         text    data     bss     dec     hex filename
        20938     916     104   21958    55c6 ./sound/soc/sh/rcar/core.o
      
      After:
         text    data     bss     dec     hex filename
        20890     916     104   21910    5596 ./sound/soc/sh/rcar/core.o
      
      gcc version 11.1.0)
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Link: https://lore.kernel.org/r/87tujkwydx.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      28889de6
  4. 19 Aug, 2021 8 commits
  5. 18 Aug, 2021 1 commit
  6. 17 Aug, 2021 4 commits