Skip to content
Permalink
Ajit-Kumar-Pan…
Switch branches/tags

Commits on Jan 13, 2022

  1. ASoC: amd: renoir: Add check for acp configuration flags.

    We have SOF and generic ACP support enabled for Renoir platforms
    on some machines. Since we have same PCI id used for probing, add
    check for machine configuration flag to avoid conflict with newer
    pci drivers. Such machine flag has been initialized via dmi match
    on few Chrome machines. If no flag is specified probe and register
    older platform device.
    
    Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
    ajitkupandey authored and intel-lab-lkp committed Jan 13, 2022
  2. ASoC: amd: acp: acp-legacy: Add DMIC dai link support for Renoir

    Add DMIC related dai link for pdm-dmic dai on Renoir platform with
    generic dmic codec dai.
    
    Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
    ajitkupandey authored and intel-lab-lkp committed Jan 13, 2022
  3. ASoC: amd: acp: Add ACP init()/deinit() callback for Renoir.

    ACP hardware has PGFSM control registers that can be configured to
    power On/Off the ACP IP block. Add acp init()/de_init() callbacks
    in renoir platform driver probe()/remove() respectively to power
    on and off ACP IP block on ACP3X device.
    
    Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
    ajitkupandey authored and intel-lab-lkp committed Jan 13, 2022
  4. ASoC: amd: acp: Add generic PCI driver module for ACP device

    Audio Co-processor or ACP IP block on AMD's SOC is connected via
    PCI bus interface, hence needs to be register as a PCI device. We
    have same PCI device ID across multiple SOC's but with different
    revision id for PCI hw. Add a generic PCI driver module for ACP
    that registers ACP as a PCI device and also register a platform
    device based on pci revision id. Any SOC's specific configuration
    for ACP block will be done in platform driver probe. We have added
    an initial support for ACP revision id 3 or ACP3X device.
    
    Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
    ajitkupandey authored and intel-lab-lkp committed Jan 13, 2022
  5. ASoC: amd: acp: Add PDM controller based dmic dai for Renoir

    Renoir ACP IP has a PDM controller block. Add DMIC dai instance in
    dai_driver struct to enable dmic capture support on Renoir platform.
    
    Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
    ajitkupandey authored and intel-lab-lkp committed Jan 13, 2022
  6. ASoC: amd: acp: Add generic support for PDM controller on ACP

    Add driver module for PDM controller on ACP IP block. Expose dai
    ops to configure ACP_WOV_PDM_BLOCK registers on ACP. Such dai ops
    will be used by platform specific driver module to register dmic
    related dai with ASoC.
    
    Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
    ajitkupandey authored and intel-lab-lkp committed Jan 13, 2022

Commits on Jan 12, 2022

  1. ASoC: cpcap: Check for NULL pointer after calling of_get_child_by_name

    If the device does not exist, of_get_child_by_name() will return NULL
    pointer.
    And devm_snd_soc_register_component() does not check it.
    Also, I have noticed that cpcap_codec_driver has not been used yet.
    Therefore, it should be better to check it in order to avoid the future
    dereference of the NULL pointer.
    
    Fixes: f6cdf2d ("ASoC: cpcap: new codec")
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Link: https://lore.kernel.org/r/20220111025048.524134-1-jiasheng@iscas.ac.cn
    Signed-off-by: Mark Brown <broonie@kernel.org>
    JiangJias authored and broonie committed Jan 12, 2022

Commits on Jan 11, 2022

  1. ASoC: simple-card: fix probe failure on platform component

    A previous change to simple-card resulted in asoc_simple_parse_dai
    attempting to retrieve the dai_name for platform components, which are
    unlikely to have a valid DAI name. This caused simple-card to fail to
    probe when using the xlnx_formatter_pcm as the platform component, since
    it does not register any DAI components.
    
    Since the dai_name is not used for platform components, just skip trying
    to retrieve it for those.
    
    Fixes: f107294 ("ASoC: simple-card: support snd_soc_dai_link_component style for cpu")
    Signed-off-by: Robert Hancock <robert.hancock@calian.com>
    Link: https://lore.kernel.org/r/20220107214711.1100162-6-robert.hancock@calian.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    robhancocksed authored and broonie committed Jan 11, 2022

Commits on Jan 10, 2022

  1. ASoC: xilinx: xlnx_formatter_pcm: Make buffer bytes multiple of perio…

    …d bytes
    
    This patch is based on one in the Xilinx kernel tree, "ASoc: xlnx: Make
    buffer bytes multiple of period bytes" by Devarsh Thakkar. The same
    issue exists in the mainline version of the driver. The original
    patch description is as follows:
    
    "The Xilinx Audio Formatter IP has a constraint on period
    bytes to be multiple of 64. This leads to driver changing
    the period size to suitable frames such that period bytes
    are multiple of 64.
    
    Now since period bytes and period size are updated but not
    the buffer bytes, this may make the buffer bytes unaligned
    and not multiple of period bytes.
    
    When this happens we hear popping noise as while DMA is being
    done the buffer bytes are not enough to complete DMA access
    for last period of frame within the application buffer boundary.
    
    To avoid this, align buffer bytes too as multiple of 64, and
    set another constraint to always enforce number of periods as
    integer. Now since, there is already a rule in alsa core
    to enforce Buffer size = Number of Periods * Period Size
    this automatically aligns buffer bytes as multiple of period
    bytes."
    
    Fixes: 6f6c3c3 ("ASoC: xlnx: add pcm formatter platform driver")
    Cc: Devarsh Thakkar <devarsh.thakkar@xilinx.com>
    Signed-off-by: Robert Hancock <robert.hancock@calian.com>
    Link: https://lore.kernel.org/r/20220107214711.1100162-2-robert.hancock@calian.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    robhancocksed authored and broonie committed Jan 10, 2022

Commits on Jan 7, 2022

  1. ASoC: cs35l41: Add support for hibernate memory retention mode

    The cs35l41 supports a low power DSP memory retention mode. Add support
    for entering this mode when then device is not in use.
    
    Co-authored-by: David Rhodes <david.rhodes@cirrus.com>
    Signed-off-by: David Rhodes <david.rhodes@cirrus.com>
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220107160636.6555-3-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    2 people authored and broonie committed Jan 7, 2022
  2. ASoC: cs35l41: Update handling of test key registers

    In preparation for the addition of PM runtime support move the test
    key out of the register patches themselves. This is necessary to
    allow the test key to be held during cache synchronisation, which is
    required by the OTP settings which were unpacked from the device and
    written by the driver.
    
    Also whilst at it, the driver uses a mixture of accessing the test key
    register by name and by address, consistently use the name.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220107160636.6555-2-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    charleskeepax authored and broonie committed Jan 7, 2022

Commits on Jan 6, 2022

  1. ASoC: imx-card: several improvement and fixes

    Merge series from Shengjiu Wang <shengjiu.wang@nxp.com>:
    
    Several improvement and fixes for AK codecs supported on i.MX platfroms
    broonie committed Jan 6, 2022
  2. ASoC: wcd9335: Keep a RX port value for each SLIM RX mux

    Currently, rx_port_value is a single unsigned int that gets overwritten
    when slim_rx_mux_put() is called for any RX mux, then the same value is
    read when slim_rx_mux_get() is called for any of them. This results in
    slim_rx_mux_get() reporting the last value set by slim_rx_mux_put()
    regardless of which SLIM RX mux is in question.
    
    Turn rx_port_value into an array and store a separate value for each
    SLIM RX mux.
    
    Signed-off-by: Yassine Oudjana <y.oudjana@protonmail.com>
    Link: https://lore.kernel.org/r/20220104033356.343685-1-y.oudjana@protonmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Tooniis authored and broonie committed Jan 6, 2022
  3. ASoC: amd: acp: acp-mach: Change default RT1019 amp dev id

    RT1019 components was initially registered with i2c1 and i2c2 but
    now changed to i2c0 and i2c1 in most of our AMD platforms. Change
    default rt1019 components to 10EC1019:00 and 10EC1019:01 which is
    aligned with most of AMD machines.
    
    Any exception to rt1019 device ids in near future board design can
    be handled using dmi based quirk for that machine.
    
    Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
    Link: https://lore.kernel.org/r/20220106150525.396170-1-AjitKumar.Pandey@amd.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    ajitkupandey authored and broonie committed Jan 6, 2022
  4. ASoC: topology: Fix typo

    change 'postion' to 'position'
    
    Signed-off-by: Qinghua Jin <qhjin.dev@gmail.com>
    Link: https://lore.kernel.org/r/20220106092847.357035-1-qhjin.dev@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    qhjindev authored and broonie committed Jan 6, 2022
  5. ASoC: fsl_asrc: refine the check of available clock divider

    According to RM, the clock divider range is from 1 to 8, clock
    prescaling ratio may be any power of 2 from 1 to 128.
    So the supported divider is not all the value between
    1 and 1024, just limited value in that range.
    
    Create table for the supported divder and add function to
    check the clock divider is available by comparing with
    the table.
    
    Fixes: d0250cf ("ASoC: fsl_asrc: Add an option to select internal ratio mode")
    Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
    Link: https://lore.kernel.org/r/1641380883-20709-1-git-send-email-shengjiu.wang@nxp.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    TE-N-ShengjiuWang authored and broonie committed Jan 6, 2022
  6. ASoC: Intel: bytcr_rt5640: Add support for external GPIO jack-detect

    Some boards have the codec IRQ hooked-up as normally, so the driver can
    still do things like headset vs headphones and button-press detection,
    but instead of using one of the JD pins of the codec, an external GPIO
    is used to report the jack-presence switch status of the jack.
    
    Add support for boards which have this setup and which specify which
    external GPIO to use in the special Android AMCR0F28 ACPI device.
    
    And add a quirk for the Asus TF103C tablet which uses this setup.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220106110128.66049-7-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    jwrdegoede authored and broonie committed Jan 6, 2022
  7. ASoC: Intel: bytcr_rt5640: Support retrieving the codec IRQ from the …

    …AMCR0F28 ACPI dev
    
    Some X86 tablets, which ship with Android as factory installed OS,
    specify codec IRQs/GPIOS in a special Android AMCR0F28 ACPI device.
    
    Add support for retrieving the codec IRQ from this ACPI device instead
    of from the 10EC5640 device describing the codec itself and enable this
    on Asus MemoPad 7 ME176C tablets.
    
    This fixes jack-detect not working on these tablets.
    
    Cc: Stephan Gerhold <stephan@gerhold.net>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220106110128.66049-6-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    jwrdegoede authored and broonie committed Jan 6, 2022
  8. ASoC: rt5640: Add support for boards with an external jack-detect GPIO

    Some boards have the codec IRQ hooked-up as normally, so the driver can
    still do things like headset vs headphones and button-press detection,
    but instead of using one of the JD pins of the codec, an external GPIO
    is used to report the jack-presence switch status of the jack.
    
    Add support for this.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220106110128.66049-5-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    jwrdegoede authored and broonie committed Jan 6, 2022
  9. ASoC: rt5640: Allow snd_soc_component_set_jack() to override the code…

    …c IRQ
    
    On some boards where the firmware/fwnode information is in essence
    read-only (x86 + ACPI boards) the i2c_client for the codec may contain
    the wrong IRQ or no IRQ at all.
    
    Since we only request the IRQ once snd_soc_component_set_jack() gets
    called, allow machine drivers to override the IRQ with the proper one
    through the data parameter to snd_soc_component_set_jack().
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220106110128.66049-4-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    jwrdegoede authored and broonie committed Jan 6, 2022
  10. ASoC: rt5640: Change jack_work to a delayed_work

    Change jack_work from a struct work_struct to a struct delayed_work, this
    is a preparation patch for adding support for boards where an external
    GPIO is used for jack-detect, rather then one of the JD pins of the codec.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220106110128.66049-3-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    jwrdegoede authored and broonie committed Jan 6, 2022
  11. ASoC: rt5640: Fix possible NULL pointer deref on resume

    Commit 2b9c8d2 ("ASoC: rt5640: Add the HDA header support") adds
    re-queuing of the jack_work on resume when rt5640->jd_src != 0.
    
    But the jack_work will unconditionally deref rt5640->jack and that might
    be NULL. E.g. the sound/soc/intel/boards/bytcr_rt5640.c machine driver
    call snd_soc_component_set_jack(codec, NULL, NULL) from pre_suspend to
    disable the IRQ to avoid spurious wakeups, so when rt5640_resume()
    runs rt5640->jack will be NULL in this case.
    
    Make the queueing of the work conditional on rt5640->jack instead of
    on rt5640->jd_src to fix this.
    
    Fixes: 2b9c8d2 ("ASoC: rt5640: Add the HDA header support")
    Cc: Oder Chiou <oder_chiou@realtek.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220106110128.66049-2-hdegoede@redhat.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    jwrdegoede authored and broonie committed Jan 6, 2022
  12. ASoC: imx-card: improve the sound quality for low rate

    According to RM, on auto mode:
    For codec AK4458 and AK4497, the lowest ratio of MLCK/FS is 256
    if sample rate is 8kHz-48kHz,
    For codec AK5558, the lowest ratio of MLCK/FS is 512 if sample
    rate is 8kHz-48kHz.
    
    With these setting the sound quality for 8kHz-48kHz can be improved.
    
    Fixes: aa73670 ("ASoC: imx-card: Add imx-card machine driver")
    Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
    Link: https://lore.kernel.org/r/1641292835-19085-4-git-send-email-shengjiu.wang@nxp.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    TE-N-ShengjiuWang authored and broonie committed Jan 6, 2022
  13. ASoC: imx-card: Fix mclk calculation issue for akcodec

    Transfer the refined slots and slot_width to akcodec_get_mclk_rate()
    for mclk calculation, otherwise the mclk frequency does not match
    with the slots and slot_width for S16_LE format, because the default
    slot_width is 32.
    
    Fixes: aa73670 ("ASoC: imx-card: Add imx-card machine driver")
    Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
    Link: https://lore.kernel.org/r/1641292835-19085-3-git-send-email-shengjiu.wang@nxp.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    TE-N-ShengjiuWang authored and broonie committed Jan 6, 2022
  14. ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ

    The SAI on i.MX8MQ don't support one2one ratio for mclk:bclk, so
    the mclk frequency exceeds the supported range of codec for
    the case that sample rate is larger than 705kHZ and format is
    S32_LE. Update the supported width for such case.
    
    Fixes: aa73670 ("ASoC: imx-card: Add imx-card machine driver")
    Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
    Link: https://lore.kernel.org/r/1641292835-19085-2-git-send-email-shengjiu.wang@nxp.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    TE-N-ShengjiuWang authored and broonie committed Jan 6, 2022

Commits on Jan 5, 2022

  1. ASoC: ak4375: Fix unused function error

    A randconfig caught a compile warning that is now treated as a fatal
    error:
      sound/soc/codecs/ak4375.c:415:13: error: ‘ak4375_power_off’ defined but not used [-Werror=unused-function]
    
    where ak4375_power_off() is used only from the PM handler.
    
    As both suspend and resumes are already marked with __maybe_unused,
    let's rip off the superfluous ifdef CONFIG_PM, so that the error above
    can be avoided.
    
    Fixes: 53778b8 ("ASoC: Add AK4375 support")
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Link: https://lore.kernel.org/r/20220105162409.20635-1-tiwai@suse.de
    Signed-off-by: Mark Brown <broonie@kernel.org>
    tiwai authored and broonie committed Jan 5, 2022
  2. Add low power hibernation support to cs35l41

    Merge series from Charles Keepax <ckeepax@opensource.cirrus.com>:
    
    This patch series adds support for the low power hibernation feature
    on cs35l41. This allows the DSP memory to be retained whilst the
    device enters a very low power state.
    broonie committed Jan 5, 2022
  3. ASoC: cs4265: Add a remove() function

    When the reset_gpio GPIO is used, it is better to put the codec
    back into reset state when the driver unbinds.
    
    Add a remove() function to accomplish that.
    
    Suggested-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Signed-off-by: Fabio Estevam <festevam@denx.de>
    Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220104180613.639317-1-festevam@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Fabio Estevam authored and broonie committed Jan 5, 2022
  4. ASoC: wm_adsp: Add support for "toggle" preloaders

    In the case a device can support retaining the firmware memory across
    low power states it is useful for the preloader widget to only power up
    whilst actually loading/unloading the core, as opposed to the normal
    operation where the widget is powered for the entire time a firmware is
    preloaded onto the core. Add support for this mode and a flag to enable
    it.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220105113026.18955-7-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    charleskeepax authored and broonie committed Jan 5, 2022
  5. firmware: cs_dsp: Clear core reset for cache

    If the Halo registers are kept in the register cache the
    HALO_CORE_RESET bit will be retained as 1 after reset is triggered in
    cs_dsp_halo_start_core. This will cause subsequent writes to reset
    the core which is not desired. Apart from this bit the rest of the
    register bits are cacheable, so for safety sake clear the bit to
    ensure the cache is consistent.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220105113026.18955-6-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    charleskeepax authored and broonie committed Jan 5, 2022
  6. ASoC: cs35l41: Correct handling of some registers in the cache

    It makes no sense to cache the test/user key registers, since they
    require values written at specific times, mark them volatile. It is
    probably best if they can't be accessed from user-space either, so
    mark them precious as well.
    
    The interrupt force, edge, polarity and debounce are all settings
    applied to the IRQ rather than status bits and as such should not be
    volatile.
    
    The OTP trim values will require re-application in the event of a
    cache sync and as such should not be volatile. The OTPID however
    should be volatile.
    
    The DSP scratch registers are used to read back an error/debug code
    from the DSP on shutdown, as such these should be marked volatile.
    
    Finally, add some missing defaults, add TST_FS_MON0, and allow the
    DSP core control register to be cached.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220105113026.18955-5-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    charleskeepax authored and broonie committed Jan 5, 2022
  7. ASoC: cs35l41: Correct DSP power down

    The wm_adsp_event should be called before the early_event on power
    down, event stops the core running and early_event then powers down
    the core. Additionally, the core should only be stopped if it was
    actually running in the first place.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220105113026.18955-4-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    charleskeepax authored and broonie committed Jan 5, 2022
  8. ASoC: cs35l41: Remove incorrect comment

    The IRQ is not used for the PDN_DONE bit, this is polled during the DAPM
    sequence, remove the misleading comment.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220105113026.18955-3-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    charleskeepax authored and broonie committed Jan 5, 2022
  9. ASoC: cs35l41: Add cs35l51/53 IDs

    Add IDs for the CS35L51/53 variants, the functionality is shared with
    CS35L41.
    
    Signed-off-by: David Rhodes <david.rhodes@cirrus.com>
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220105113026.18955-2-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    drhodescirrus authored and broonie committed Jan 5, 2022

Commits on Jan 4, 2022

  1. ASoC: fsl_mqs: fix MODULE_ALIAS

    modprobe can't handle spaces in aliases.
    
    Fixes: 9e28f65 ("ASoC: fsl_mqs: Add MQS component driver")
    Signed-off-by: Alyssa Ross <hi@alyssa.is>
    Link: https://lore.kernel.org/r/20220104132218.1690103-1-hi@alyssa.is
    Signed-off-by: Mark Brown <broonie@kernel.org>
    alyssais authored and broonie committed Jan 4, 2022
Older