Ignore:
Timestamp:
Apr 19, 2025, 8:08:37 PM (7 months ago)
Author:
David Azarewicz
Message:

Merge in changes from 6.6-LTS branch.
Fixed additional 25+ problems.

Location:
GPL/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk

  • GPL/trunk/alsa-kernel/include/sound/soc-acpi.h

    r695 r772  
    1010#include <linux/acpi.h>
    1111#include <linux/mod_devicetable.h>
     12#include <linux/soundwire/sdw.h>
    1213
    1314struct snd_soc_acpi_package_context {
     
    6162 * @platform: string used for HDAudio codec support
    6263 * @codec_mask: used for HDAudio support
     64 * @dmic_num: number of SoC- or chipset-attached PDM digital microphones
    6365 * @common_hdmi_codec_drv: use commom HDAudio HDMI codec driver
    64  * @link_mask: links enabled on the board
    65  * @links: array of link _ADR descriptors, null terminated
     66 * @link_mask: SoundWire links enabled on the board
     67 * @links: array of SoundWire link _ADR descriptors, null terminated
     68 * @i2s_link_mask: I2S/TDM links enabled on the board
    6669 * @num_dai_drivers: number of elements in @dai_drivers
    6770 * @dai_drivers: pointer to dai_drivers, used e.g. in nocodec mode
     71 * @subsystem_vendor: optional PCI SSID vendor value
     72 * @subsystem_device: optional PCI SSID device value
     73 * @subsystem_id_set: true if a value has been written to
     74 *                    subsystem_vendor and subsystem_device.
    6875 */
    6976struct snd_soc_acpi_mach_params {
     
    7582        u32 link_mask;
    7683        const struct snd_soc_acpi_link_adr *links;
     84        u32 i2s_link_mask;
    7785        u32 num_dai_drivers;
    7886        struct snd_soc_dai_driver *dai_drivers;
     87        unsigned short subsystem_vendor;
     88        unsigned short subsystem_device;
     89        bool subsystem_id_set;
    7990};
    8091
     
    123134};
    124135
     136/*
     137 * when set the topology uses the -ssp<N> suffix, where N is determined based on
     138 * BIOS or DMI information
     139 */
     140#define SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER BIT(0)
     141
     142/*
     143 * when more than one SSP is reported in the link mask, use the most significant.
     144 * This choice was found to be valid on platforms with ES8336 codecs.
     145 */
     146#define SND_SOC_ACPI_TPLG_INTEL_SSP_MSB BIT(1)
     147
     148/*
     149 * when set the topology uses the -dmic<N>ch suffix, where N is determined based on
     150 * BIOS or DMI information
     151 */
     152#define SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER BIT(2)
     153
    125154/**
    126155 * snd_soc_acpi_mach: ACPI-based machine descriptor. Most of the fields are
     
    130159 *
    131160 * @id: ACPI ID (usually the codec's) used to find a matching machine driver.
     161 * @uid: ACPI Unique ID, can be used to disambiguate matches.
     162 * @comp_ids: list of compatible audio codecs using the same machine driver,
     163 * firmware and topology
    132164 * @link_mask: describes required board layout, e.g. for SoundWire.
    133165 * @links: array of link _ADR descriptors, null terminated.
    134166 * @drv_name: machine driver name
    135167 * @fw_filename: firmware file name. Used when SOF is not enabled.
     168 * @tplg_filename: topology file name. Used when SOF is not enabled.
    136169 * @board: board name
    137170 * @machine_quirk: pointer to quirk, usually based on DMI information when
     
    141174 * @pdata: intended for platform data or machine specific-ops. This structure
    142175 *  is not constant since this field may be updated at run-time
    143  * @sof_fw_filename: Sound Open Firmware file name, if enabled
    144176 * @sof_tplg_filename: Sound Open Firmware topology file name, if enabled
     177 * @tplg_quirk_mask: quirks to select different topology files dynamically
    145178 */
    146179/* Descriptor for SST ASoC machine driver */
    147180struct snd_soc_acpi_mach {
    148         const u8 id[ACPI_ID_LEN];
     181        u8 id[ACPI_ID_LEN];
     182        const char *uid;
     183        const struct snd_soc_acpi_codecs *comp_ids;
    149184        const u32 link_mask;
    150185        const struct snd_soc_acpi_link_adr *links;
    151186        const char *drv_name;
    152187        const char *fw_filename;
     188        const char *tplg_filename;
    153189        const char *board;
    154190        struct snd_soc_acpi_mach * (*machine_quirk)(void *arg);
     
    156192        void *pdata;
    157193        struct snd_soc_acpi_mach_params mach_params;
    158         const char *sof_fw_filename;
    159194        const char *sof_tplg_filename;
     195        const u32 tplg_quirk_mask;
    160196};
    161197
     
    182218}
    183219
     220bool snd_soc_acpi_sdw_link_slaves_found(struct device *dev,
     221                                        const struct snd_soc_acpi_link_adr *link,
     222                                        struct sdw_extended_slave_id *ids,
     223                                        int num_slaves);
     224
    184225#endif
Note: See TracChangeset for help on using the changeset viewer.