On Tue, 30 Apr 2024 09:25:42 +0200, Baojun Xu wrote: > > Integrate tas2781 hda spi driver configs for HP (Varcolac). > Every tas2781 SPI node was added by serial-multi-instantie.c as a SPI device. > The code support Realtek as the primary codec. > > Signed-off-by: Baojun Xu <baojun.xu@xxxxxx> > > --- > v4: > - Add old hardware id "TIAS2781" for compatible with old production > - Add 2 devices in struct smi_node tas2781_hda, to compatible with 4 AMPs > v3: > - Move HID up to above /* Non-conforming _HID ... */ in scan.c, > for avoid misunderstanding. > - Move HID up to above /* Non-conforming _HID ... */ in > serial-multi-instantiate.c, for avoid misunderstanding. > - Change objs to y for snd-hda-scodec-tas2781-spi- in Makefile. > --- > drivers/acpi/scan.c | 2 ++ > drivers/platform/x86/serial-multi-instantiate.c | 13 +++++++++++++ > sound/pci/hda/Kconfig | 14 ++++++++++++++ > sound/pci/hda/Makefile | 2 ++ > sound/pci/hda/patch_realtek.c | 13 +++++++++++++ > 5 files changed, 44 insertions(+) > > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c > index d1464324de95..51af181ccf62 100644 > --- a/drivers/acpi/scan.c > +++ b/drivers/acpi/scan.c > @@ -1765,6 +1765,8 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device) > {"CSC3557", }, > {"INT33FE", }, > {"INT3515", }, > + {"TXNW2781", }, > + {"TIAS2781", }, > /* Non-conforming _HID for Cirrus Logic already released */ > {"CLSA0100", }, > {"CLSA0101", }, > diff --git a/drivers/platform/x86/serial-multi-instantiate.c b/drivers/platform/x86/serial-multi-instantiate.c > index 97b9c6392230..d1c766f17b26 100644 > --- a/drivers/platform/x86/serial-multi-instantiate.c > +++ b/drivers/platform/x86/serial-multi-instantiate.c > @@ -368,6 +368,17 @@ static const struct smi_node cs35l57_hda = { > .bus_type = SMI_AUTO_DETECT, > }; > > +static const struct smi_node tas2781_hda = { > + .instances = { > + { "tas2781-hda", IRQ_RESOURCE_AUTO, 0 }, > + { "tas2781-hda", IRQ_RESOURCE_AUTO, 0 }, > + { "tas2781-hda", IRQ_RESOURCE_AUTO, 0 }, > + { "tas2781-hda", IRQ_RESOURCE_AUTO, 0 }, > + {} > + }, > + .bus_type = SMI_AUTO_DETECT, > +}; > + > /* > * Note new device-ids must also be added to ignore_serial_bus_ids in > * drivers/acpi/scan.c: acpi_device_enumeration_by_parent(). > @@ -380,6 +391,8 @@ static const struct acpi_device_id smi_acpi_ids[] = { > { "CSC3556", (unsigned long)&cs35l56_hda }, > { "CSC3557", (unsigned long)&cs35l57_hda }, > { "INT3515", (unsigned long)&int3515_data }, > + { "TXNW2781", (unsigned long)&tas2781_hda }, > + { "TIAS2781", (unsigned long)&tas2781_hda }, > /* Non-conforming _HID for Cirrus Logic already released */ > { "CLSA0100", (unsigned long)&cs35l41_hda }, > { "CLSA0101", (unsigned long)&cs35l41_hda }, > diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig > index f806636242ee..15f0e66b77e5 100644 > --- a/sound/pci/hda/Kconfig > +++ b/sound/pci/hda/Kconfig > @@ -202,6 +202,20 @@ config SND_HDA_SCODEC_TAS2781_I2C > comment "Set to Y if you want auto-loading the side codec driver" > depends on SND_HDA=y && SND_HDA_SCODEC_TAS2781_I2C=m > > +config SND_HDA_SCODEC_TAS2781_SPI > + tristate "Build TAS2781 HD-audio side codec support for SPI Bus" > + depends on SPI_MASTER > + depends on ACPI > + depends on EFI > + depends on SND_SOC > + select CRC32_SARWATE > + help > + Say Y or M here to include TAS2781 SPI HD-audio side codec support > + in snd-hda-intel driver, such as ALC287. > + > +comment "Set to Y if you want auto-loading the side codec driver" > + depends on SND_HDA=y && SND_HDA_SCODEC_TAS2781_SPI=m > + > config SND_HDA_CODEC_REALTEK > tristate "Build Realtek HD-audio codec support" > select SND_HDA_GENERIC > diff --git a/sound/pci/hda/Makefile b/sound/pci/hda/Makefile > index 13e04e1f65de..2d5d4d841d87 100644 > --- a/sound/pci/hda/Makefile > +++ b/sound/pci/hda/Makefile > @@ -39,6 +39,7 @@ snd-hda-scodec-cs35l56-spi-objs := cs35l56_hda_spi.o > snd-hda-cs-dsp-ctls-objs := hda_cs_dsp_ctl.o > snd-hda-scodec-component-objs := hda_component.o > snd-hda-scodec-tas2781-i2c-objs := tas2781_hda_i2c.o > +snd-hda-scodec-tas2781-spi-y := tas2781_hda_spi.o tas2781_spi_fwlib.o A nitpicking: better to align with other lines (i.e. with *-objs instead of *-y). The main problem here is, though, that this commit will break the build, because you introduced a Kconfig that can be enabled, while the corresponding code for snd-hda-scodec-tas2781-spi isn't present yet. This is bad for the git-bisection. You'd need to reorganize better how the code is added piece-by-piece. thanks, Takashi