1. 09 Mar, 2022 7 commits
  2. 08 Mar, 2022 25 commits
  3. 07 Mar, 2022 8 commits
    • Mark Brown's avatar
      ASoC: fsl_sai: Cleanups and 1:1 bclk:mclk ratio support · 9fce18ab
      Mark Brown authored
      Merge series from Sascha Hauer <s.hauer@pengutronix.de>:
      
      This series has some updates for the fsl_sai driver: Some general
      cleanup patches, a bugfix in the ip revision checking and finally
      the mclk setting is made more accurate and support for 1:1 bclk:mclk
      setting is added.
      9fce18ab
    • Mark Brown's avatar
      ASoC: SOF: updates for 5.18 · 5e36946a
      Mark Brown authored
      Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
      
      A couple of updates for Intel and AMD hardware, along with minor
      cleanups
      
      Ajit Kumar Pandey (4):
        ASoC: SOF: amd: Flush cache after ATU_BASE_ADDR_GRP register update
        ASoC: SOF: amd: Use semaphore register to synchronize ipc's irq
        ASoC: SOF: amd: Move group register configuration to acp-loader
        ASoC: SOF: amd: Increase ACP_HW_SEM_RETRY_COUNT value
      
      Curtis Malainey (1):
        ASoC: SOF: fix 32 signed bit overflow
      
      Gongjun Song (1):
        ASoC: SOF: Intel: pci-tgl: add RPL-S support
      
      Peter Ujfalusi (2):
        ASoC: SOF: amd: acp-pcm: Take buffer information directly from runtime
        ASoC: SOF: amd: Do not set ipc_pcm_params ops as it is optional
      
      Pierre-Louis Bossart (2):
        ASoC: SOF: debug: clarify operator precedence
        ASoC: SOF: Intel: hda: clarify operator precedence
      
       include/sound/sof/header.h         |  2 +-
       include/uapi/sound/sof/abi.h       |  2 +-
       sound/soc/sof/amd/acp-dsp-offset.h |  1 +
       sound/soc/sof/amd/acp-ipc.c        | 22 ++++++++++++++--------
       sound/soc/sof/amd/acp-loader.c     |  9 +++++++++
       sound/soc/sof/amd/acp-pcm.c        |  7 ++++---
       sound/soc/sof/amd/acp-stream.c     |  3 +++
       sound/soc/sof/amd/acp.c            | 29 ++++++++++++++---------------
       sound/soc/sof/amd/acp.h            |  3 +--
       sound/soc/sof/amd/renoir.c         |  1 -
       sound/soc/sof/debug.c              |  2 +-
       sound/soc/sof/intel/hda.c          |  2 +-
       sound/soc/sof/intel/pci-tgl.c      |  2 ++
       13 files changed, 52 insertions(+), 33 deletions(-)
      
      --
      2.30.2
      5e36946a
    • Mark Brown's avatar
      ASoC: Intel: boards: cleanups for 5.18 · 2f4d6de5
      Mark Brown authored
      Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
      
      Updates to clean-up the GPIOLIB dependency and a quirk for HP
      SoundWire devices.
      2f4d6de5
    • Mark Brown's avatar
      ASoC: audio_graph_card2: Support variable slot widths · 3066987e
      Mark Brown authored
      Merge series from Richard Fitzgerald <rf@opensource.cirrus.com>:
      
      This adds support for I2S/TDM links where the slot width varies
      depending on the sample width, in a way that cannot be guessed by
      component hw_params().
      
      A typical example is:
      
      - 16-bit samples use 16-bit slots
      - 24-bit samples use 32-bit slots
      
      There is no way for a component hw_params() to deduce from the information
      it is passed that 24-bit samples will be in 32-bit slots.
      
      Some audio hardware cannot support a fixed slot width or a slot width
      equal to the sample width in all cases. This is usually due either to
      limitations of the audio serial port or system clocking restrictions.
      3066987e
    • Mark Brown's avatar
      ASoC: codecs: Add Awinic AW8738 audio amplifier driver · fc14fac2
      Mark Brown authored
      Merge series from Stephan Gerhold <stephan@gerhold.net>:
      
      This series adds a simple driver and DT schema for the Awinic AW8738
      audio amplifier. It's fairly simple - the main difference to
      simple-amplifier is that there is a "one-wire pulse control" that
      allows configuring the amplifier to one of a few pre-defined modes.
      This can be used to configure the speaker-guard function (primarily
      the power limit for the amplifier).
      fc14fac2
    • Dan Carpenter's avatar
      ASoC: amd: vg: fix signedness bug in acp5x_audio_probe() · 468f2529
      Dan Carpenter authored
      The "adata->i2s_irq" variable is unsigned so the error handling
      will not work.
      
      Fixes: 87d71a12 ("ASoC: amd: pcm-dma: Use platform_get_irq() to get the interrupt")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Link: https://lore.kernel.org/r/20220304131256.GA28739@kiliSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      468f2529
    • Richard Fitzgerald's avatar
      ASoC: cs42l42: Add warnings about DETECT_MODE and PLL_START · 71a6254c
      Richard Fitzgerald authored
      DETECT_MODE and PLL_START must be zero while HP_PDN and ADC_PDN are
      both 1. If this condition is broken it can discharge FILT+ and it
      can then take up to 1 second for FILT+ to recharge.
      
      There is no workaround required for this, simply avoiding settings
      and sequences that would break the requirement. The driver already
      meets the requirement.
      
      But it is not obvious from reading the code that this requirement
      exists, or what is ensuring it is met. So it would not currently be
      obvious to someone changing the code that there is certain special
      behaviour that must be maintained.
      
      To avoid accidental breakage in the future:
      
      - Add comments into the register definitions to warn about this so
        that anyone changing the code around DETECT_MODE and PLL_START is
        aware of this requirement.
      
      - Add a comment where PLL_START is written to 1 to highlight the
        requirement and why it is satisfied.
      
      - Add a comment in cs42l42_setup_hs_type_detect() when DETECT_MODE is
        initialized.
      Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20220304144015.398656-1-rf@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      71a6254c
    • Simon Trimmer's avatar
      ASoC: wm_adsp: Expand firmware loading search options · b6b62d94
      Simon Trimmer authored
      The parts supported by this driver can have product-specific
      firmware and tunings files. Typically these have been used on
      embedded systems where the manufacturer is responsible for
      installing the correct product-specific firmware files into
      /lib/firmware. However, the linux-firmware repository places all
      available firmwares into /lib/firmware and it is up to the driver to
      select the correct product-specific firmware from that directory.
      
      For example a product containing four smart amplifiers may provide
      firmware specific for that product and each of the amplifiers may
      have coefficient files containing tunings for their placement in the
      mechanical design.
      
      This change extends firmware (wmfw) and coefficient (bin) filenames
      to be of the general form:
      
      <cirrus/>part-dspN-fwtype<-system_name<-asoc_component_prefix>>.type
      
      Where the cirrus subdirectory, system_name and asoc_component_prefix
      are optional.
      
      New files will be placed in the cirrus subdirectory to avoid
      polluting the main /lib/firmware/ location. The generic name must be
      searched in /lib/firmware before /lib/firmware/cirrus so that a
      generic file in the new location does not override existing
      product-specific files in the legacy location.
      
      The search order for firmware files is:
        - cirrus/part-dspN-fwtype-system_name-asoc_component_prefix.wmfw
        - cirrus/part-dspN-fwtype-system_name.wmfw
        - part-dspN-fwtype.wmfw
        - cirrus/part-dspN-fwtype.wmfw
      
      - Qualifications are added to the filename so that rightwards is more
        specific.
      - The system_name is provided by the codec driver.
      - The asoc_component_prefix is used to identify tunings for individual
        parts because it would already exist to disambiguate the controls
        and it makes it obvious which firmware file applies to which device.
      
      The optional coefficient file must have the same filename
      construction as the discovered wmfw except:
        - where the wmfw has only system_name then the bin file can
          optionally include the asoc_component_prefix. This is to allow a
          common wmfw for all amps but separate tunings per amp.
      Signed-off-by: default avatarSimon Trimmer <simont@opensource.cirrus.com>
      Acked-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
      Link: https://lore.kernel.org/r/20220303155016.122125-1-simont@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      b6b62d94