24 Sep, 2020

1 commit

  • The current SOF machine driver adds a name prefix for each codec,
    mainly to differentiate ALSA controls for left and right amplifiers.

    This is a good idea, but the machine driver duplicates some of the
    information that already exists in ACPI descriptors, so add those
    prefixes there. Follow-up patches will make use of the information
    encoded in these tables and remove duplication.

    Signed-off-by: Pierre-Louis Bossart
    Reviewed-by: Bard Liao
    Reviewed-by: Guennadi Liakhovetski
    Signed-off-by: Kai Vehmanen
    Link: https://lore.kernel.org/r/20200923080514.3242858-4-kai.vehmanen@linux.intel.com
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     

26 Aug, 2020

1 commit


02 May, 2020

1 commit


27 Mar, 2020

1 commit

  • For SoundWire, we need to know if endpoints needs to be 'aggregated'
    (MIPI parlance, meaning logically grouped), e.g. when two speaker
    amplifiers need to be handled as a single logical output.

    We don't necessarily have the information at the firmware (BIOS)
    level, so add a notion of endpoints and specify if a device/endpoint
    is part of a group, with a position.

    This may be expanded in future solutions, for now only provide a group
    and position information.

    Since we modify the header file, change all existing upstream tables
    as well to avoid breaking compilation/bisect.

    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20200325215027.28716-2-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     

13 Jan, 2020

1 commit

  • For SoundWire support, we added a 'link_mask' to describe the PCB hardware
    layout. This helped form a signature that can be used as a first-order way
    of detecting the hardware and selecting the machine driver.

    The concept of link_mask is however not enough. Some BIOS enable all links,
    even when there are no devices physically connected. We can also see
    variations with multiple devices attached on one link, or different types
    of devices connected on the same link. To accurately represent the
    hardware, we need to build static tables where each link exposes a list of
    expected devices represented by the 64-bit _ADR field (which uniquely
    identifies each device).

    The new 'links' field is optional when the link_mask is sufficient to
    represent a platform in a unique way.

    The existing mechanism to support I2C devices is left as is, it'd be too
    invasive to change the existing support for _HID and the notion of link is
    not relevant either.

    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Bard liao
    Link: https://lore.kernel.org/r/20200110222530.30303-2-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     

30 Oct, 2019

1 commit

  • Add support for using snd-hda-codec-hdmi driver for HDMI/DP
    instead of ASoC hdac-hdmi. This is aligned with how other
    HDA codecs are already handled.

    When snd-hda-codec-hdmi is used, the PCM device numbers are
    parsed from card topology and passed to the codec driver.
    This needs to be done at runtime as topology changes may
    affect PCM device allocation.

    Signed-off-by: Kai Vehmanen
    Reviewed-by: Takashi Iwai
    Reviewed-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20191029134017.18901-4-kai.vehmanen@linux.intel.com
    Signed-off-by: Mark Brown

    Kai Vehmanen
     

08 Oct, 2019

1 commit

  • When interfaces can be pin-muxed, static information from ACPI might
    not be enough. Add information on which links needs to be enabled by
    hardware/firmware for a specific machine driver to be selected.

    When walking through the list of possible machines, links will be
    checked, which implies that configurations where multiple links are
    required need to be checked first.

    Additional criteria will be needed later, such as which SoundWire
    Slave devices are actually enabled, but for now this helps detect
    between basic configurations.

    Signed-off-by: Pierre-Louis Bossart
    Link: https://lore.kernel.org/r/20190916214251.13130-2-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     

13 Feb, 2019

2 commits


28 Jan, 2019

1 commit


21 Nov, 2018

1 commit

  • The changes for HDaudio overlooked the fact that the machine drivers
    used for Chromebooks rely on the dmic number information passed as
    pdata.

    Add dmic_num field to standard interface and use standard interface
    instead of SKL-specific one.

    Also clean-up pdata definition to remove fields that are no longer
    used.

    Fixes: 842bb5135f10 ('ASoC: Intel: use standard interface for Hdaudio machine driver')
    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     

07 Nov, 2018

1 commit

  • The machine drivers may need information provided by the platform
    driver. Currently the information is passed using pdata specific to
    each plaform driver. This prevents other drivers, such as SOF, from
    reusing machine drivers directly.

    Add a new structure which contains the required fields.

    This proposal requires a bit more work on the platform side but this
    generic interface helps reuse code directly.

    Reviewed-by: Andy Shevchenko
    Signed-off-by: Pierre-Louis Bossart
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     

02 Jul, 2018

1 commit


13 Jan, 2018

3 commits


08 Jan, 2018

2 commits

  • 0-day reports compilation issues with non-ACPI platforms.

    In file included from sound/soc/soc-acpi.c:17:0:
    >> include/sound/soc-acpi.h:36:46: error: 'ACPI_ID_LEN' undeclared here
    (not in a function); did you mean 'ACPI_FILE'?
    snd_soc_acpi_find_name_from_hid(const u8 hid[ACPI_ID_LEN])

    sound/soc/soc-acpi.c: At top level:
    >> sound/soc/soc-acpi.c:174:16: error: expected declaration specifiers or
    '...' before string constant
    MODULE_LICENSE("GPL v2");

    Add missing include files.

    Fixes: 7feb2f786a46 ("ASoC: move ACPI common code out of Intel/sst tree")
    Signed-off-by: Pierre-Louis Bossart
    Reviewed-by: Andy Shevchenko
    Acked-By: Vinod Koul
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     
  • Replace snd_soc_acpi_check_hid() with the generic acpi_dev_present()
    and remove the now unused snd_soc_acpi_check_hid function. This should
    have no functional change.

    Signed-off-by: Jeremy Cline
    Signed-off-by: Pierre-Louis Bossart
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Mark Brown

    Jeremy Cline
     

21 Oct, 2017

2 commits

  • To prepare for SOF integration, we need new fields in the machine table.
    It is intended that the same table is used for both closed-source and
    open-source firmware to avoid repeating ACPI-related information
    multiple times
    No functional change

    Signed-off-by: Pierre-Louis Bossart
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     
  • ACPI support is not specific to the Intel/SST driver. Move the enumeration
    and matching code which is not hardware-dependent to sound/soc and rename
    relevant sst_acpi_ structures and functions with snd_soc_acpi_ prefix

    soc-acpi.h is protected by a #ifndef __LINUX_SND_SOC_ACPI_H for
    consistency with all other SoC .h files:

    grep -L __LINUX include/sound/soc* | wc -l
    0
    grep __LINUX include/sound/soc* | wc -l
    14

    Signed-off-by: Pierre-Louis Bossart
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart