Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44d62462 authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branch 'asoc/topic/intel' into asoc-next

parents 0d911262 1b00126c
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1124,8 +1124,10 @@ static void hdac_hdmi_present_sense(struct hdac_hdmi_pin *pin, int repoll)
			}
			hdac_hdmi_parse_eld(edev, pin);

			print_hex_dump_bytes("ELD: ", DUMP_PREFIX_OFFSET,
					pin->eld.eld_buffer, pin->eld.eld_size);
			print_hex_dump_debug("ELD: ",
					DUMP_PREFIX_OFFSET, 16, 1,
					pin->eld.eld_buffer, pin->eld.eld_size,
					true);
		} else {
			pin->eld.monitor_present = false;
			pin->eld.eld_valid = false;
@@ -1816,6 +1818,7 @@ static const struct dev_pm_ops hdac_hdmi_pm = {
static const struct hda_device_id hdmi_list[] = {
	HDA_CODEC_EXT_ENTRY(0x80862809, 0x100000, "Skylake HDMI", 0),
	HDA_CODEC_EXT_ENTRY(0x8086280a, 0x100000, "Broxton HDMI", 0),
	HDA_CODEC_EXT_ENTRY(0x8086280b, 0x100000, "Kabylake HDMI", 0),
	{}
};

+7 −0
Original line number Diff line number Diff line
@@ -1100,6 +1100,13 @@ static const struct dmi_system_id force_combo_jack_table[] = {
			DMI_MATCH(DMI_PRODUCT_NAME, "Skylake Client platform")
		}
	},
	{
		.ident = "Intel Kabylake RVP",
		.matches = {
			DMI_MATCH(DMI_PRODUCT_NAME, "Kabylake Client platform")
		}
	},

	{ }
};

+49 −24
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ config SND_MFLD_MACHINE
	help
          This adds support for ASoC machine driver for Intel(R) MID Medfield platform
          used as alsa device in audio substem in Intel(R) MID devices
          Say Y if you have such a device
          Say Y if you have such a device.
          If unsure select "N".

config SND_SST_MFLD_PLATFORM
@@ -25,7 +25,6 @@ config SND_SST_IPC_ACPI
	tristate
	select SND_SST_IPC
	select SND_SOC_INTEL_SST
	depends on ACPI

config SND_SOC_INTEL_SST
	tristate
@@ -33,6 +32,12 @@ config SND_SOC_INTEL_SST
	select SND_SOC_INTEL_SST_MATCH if ACPI
	depends on (X86 || COMPILE_TEST)

# firmware stuff depends DW_DMAC_CORE; since there is no depends-on from
# the reverse selection, each machine driver needs to select
# SND_SOC_INTEL_SST_FIRMWARE carefully depending on DW_DMAC_CORE
config SND_SOC_INTEL_SST_FIRMWARE
	tristate

config SND_SOC_INTEL_SST_ACPI
	tristate

@@ -48,14 +53,31 @@ config SND_SOC_INTEL_BAYTRAIL
config SND_SOC_INTEL_HASWELL_MACH
	tristate "ASoC Audio DSP support for Intel Haswell Lynxpoint"
	depends on X86_INTEL_LPSS && I2C && I2C_DESIGNWARE_PLATFORM
	depends on DW_DMAC_CORE=y
	depends on DW_DMAC_CORE
	select SND_SOC_INTEL_SST
	select SND_SOC_INTEL_SST_FIRMWARE
	select SND_SOC_INTEL_HASWELL
	select SND_SOC_RT5640
	help
	  This adds support for the Lynxpoint Audio DSP on Intel(R) Haswell
	  Ultrabook platforms.
	  Say Y if you have such a device
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
	tristate "ASoC Audio driver for Broxton with DA7219 and MAX98357A in I2S Mode"
	depends on X86 && ACPI && I2C
	select SND_SOC_INTEL_SST
	select SND_SOC_INTEL_SKYLAKE
	select SND_SOC_DA7219
	select SND_SOC_MAX98357A
	select SND_SOC_DMIC
	select SND_SOC_HDAC_HDMI
	select SND_HDA_DSP_LOADER
	help
	   This adds support for ASoC machine driver for Broxton-P platforms
	   with DA7219 + MAX98357A I2S audio codec.
	   Say Y if you have such a device.
	   If unsure select "N".

config SND_SOC_INTEL_BXT_RT298_MACH
@@ -70,26 +92,28 @@ config SND_SOC_INTEL_BXT_RT298_MACH
	help
	   This adds support for ASoC machine driver for Broxton platforms
	   with RT286 I2S audio codec.
	   Say Y if you have such a device
	   Say Y if you have such a device.
	   If unsure select "N".

config SND_SOC_INTEL_BYT_RT5640_MACH
	tristate "ASoC Audio driver for Intel Baytrail with RT5640 codec"
	depends on X86_INTEL_LPSS && I2C
	depends on DW_DMAC_CORE=y && (SND_SST_IPC_ACPI = n)
	depends on DW_DMAC_CORE && (SND_SST_IPC_ACPI = n)
	select SND_SOC_INTEL_SST
	select SND_SOC_INTEL_SST_FIRMWARE
	select SND_SOC_INTEL_BAYTRAIL
	select SND_SOC_RT5640
	help
	  This adds audio driver for Intel Baytrail platform based boards
	  with the RT5640 audio codec. This driver is deprecated, use
	  SND_SOC_INTEL_BYTCR_RT5640_MACH instead for better functionality
	  SND_SOC_INTEL_BYTCR_RT5640_MACH instead for better functionality.

config SND_SOC_INTEL_BYT_MAX98090_MACH
	tristate "ASoC Audio driver for Intel Baytrail with MAX98090 codec"
	depends on X86_INTEL_LPSS && I2C
	depends on DW_DMAC_CORE=y && (SND_SST_IPC_ACPI = n)
	depends on DW_DMAC_CORE && (SND_SST_IPC_ACPI = n)
	select SND_SOC_INTEL_SST
	select SND_SOC_INTEL_SST_FIRMWARE
	select SND_SOC_INTEL_BAYTRAIL
	select SND_SOC_MAX98090
	help
@@ -100,19 +124,20 @@ config SND_SOC_INTEL_BROADWELL_MACH
	tristate "ASoC Audio DSP support for Intel Broadwell Wildcatpoint"
	depends on X86_INTEL_LPSS && I2C && DW_DMAC && \
		   I2C_DESIGNWARE_PLATFORM
	depends on DW_DMAC_CORE=y
	depends on DW_DMAC_CORE
	select SND_SOC_INTEL_SST
	select SND_SOC_INTEL_SST_FIRMWARE
	select SND_SOC_INTEL_HASWELL
	select SND_SOC_RT286
	help
	  This adds support for the Wilcatpoint Audio DSP on Intel(R) Broadwell
	  Ultrabook platforms.
	  Say Y if you have such a device
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_INTEL_BYTCR_RT5640_MACH
        tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5640 codec"
	depends on X86 && I2C
	depends on X86 && I2C && ACPI
	select SND_SOC_RT5640
	select SND_SST_MFLD_PLATFORM
	select SND_SST_IPC_ACPI
@@ -120,12 +145,12 @@ config SND_SOC_INTEL_BYTCR_RT5640_MACH
	help
          This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
          platforms with RT5640 audio codec.
          Say Y if you have such a device
          Say Y if you have such a device.
          If unsure select "N".

config SND_SOC_INTEL_BYTCR_RT5651_MACH
        tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5651 codec"
	depends on X86 && I2C
	depends on X86 && I2C && ACPI
	select SND_SOC_RT5651
	select SND_SST_MFLD_PLATFORM
	select SND_SST_IPC_ACPI
@@ -133,12 +158,12 @@ config SND_SOC_INTEL_BYTCR_RT5651_MACH
	help
          This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
          platforms with RT5651 audio codec.
          Say Y if you have such a device
          Say Y if you have such a device.
          If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_RT5672_MACH
        tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5672 codec"
        depends on X86_INTEL_LPSS && I2C
        depends on X86_INTEL_LPSS && I2C && ACPI
        select SND_SOC_RT5670
        select SND_SST_MFLD_PLATFORM
        select SND_SST_IPC_ACPI
@@ -146,12 +171,12 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH
        help
          This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
          platforms with RT5672 audio codec.
          Say Y if you have such a device
          Say Y if you have such a device.
          If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_RT5645_MACH
	tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec"
	depends on X86_INTEL_LPSS && I2C
	depends on X86_INTEL_LPSS && I2C && ACPI
	select SND_SOC_RT5645
	select SND_SST_MFLD_PLATFORM
	select SND_SST_IPC_ACPI
@@ -163,7 +188,7 @@ config SND_SOC_INTEL_CHT_BSW_RT5645_MACH

config SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH
	tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with MAX98090 & TI codec"
	depends on X86_INTEL_LPSS && I2C
	depends on X86_INTEL_LPSS && I2C && ACPI
	select SND_SOC_MAX98090
	select SND_SOC_TS3A227E
	select SND_SST_MFLD_PLATFORM
@@ -192,7 +217,7 @@ config SND_SOC_INTEL_SKL_RT286_MACH
	help
	   This adds support for ASoC machine driver for Skylake platforms
	   with RT286 I2S audio codec.
	   Say Y if you have such a device
	   Say Y if you have such a device.
	   If unsure select "N".

config SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH
@@ -207,7 +232,7 @@ config SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH
	help
	  This adds support for ASoC Onboard Codec I2S machine driver. This will
	  create an alsa sound card for NAU88L25 + SSM4567.
	  Say Y if you have such a device
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH
@@ -222,5 +247,5 @@ config SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH
	help
	  This adds support for ASoC Onboard Codec I2S machine driver. This will
	  create an alsa sound card for NAU88L25 + MAX98357A.
	  Say Y if you have such a device
	  Say Y if you have such a device.
	  If unsure select "N".
+43 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include <linux/firmware.h>
#include <linux/pm_runtime.h>
#include <linux/pm_qos.h>
#include <linux/dmi.h>
#include <linux/acpi.h>
#include <asm/platform_sst_audio.h>
#include <sound/core.h>
@@ -237,6 +238,9 @@ static int sst_acpi_probe(struct platform_device *pdev)
		dev_err(dev, "No matching machine driver found\n");
		return -ENODEV;
	}
	if (mach->machine_quirk)
		mach = mach->machine_quirk(mach);

	pdata = mach->pdata;

	ret = kstrtouint(id->id, 16, &dev_id);
@@ -320,6 +324,44 @@ static int sst_acpi_remove(struct platform_device *pdev)
	return 0;
}

static unsigned long cht_machine_id;

#define CHT_SURFACE_MACH 1

static int cht_surface_quirk_cb(const struct dmi_system_id *id)
{
	cht_machine_id = CHT_SURFACE_MACH;
	return 1;
}


static const struct dmi_system_id cht_table[] = {
	{
		.callback = cht_surface_quirk_cb,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
			DMI_MATCH(DMI_PRODUCT_NAME, "Surface 3"),
		},
	},
};


static struct sst_acpi_mach cht_surface_mach = {
	"10EC5640", "cht-bsw-rt5645", "intel/fw_sst_22a8.bin", "cht-bsw", NULL,
								&chv_platform_data };

static struct sst_acpi_mach *cht_quirk(void *arg)
{
	struct sst_acpi_mach *mach = arg;

	dmi_check_system(cht_table);

	if (cht_machine_id == CHT_SURFACE_MACH)
		return &cht_surface_mach;
	else
		return mach;
}

static struct sst_acpi_mach sst_acpi_bytcr[] = {
	{"10EC5640", "bytcr_rt5640", "intel/fw_sst_0f28.bin", "bytcr_rt5640", NULL,
						&byt_rvp_platform_data },
@@ -343,7 +385,7 @@ static struct sst_acpi_mach sst_acpi_chv[] = {
	{"193C9890", "cht-bsw-max98090", "intel/fw_sst_22a8.bin", "cht-bsw", NULL,
						&chv_platform_data },
	/* some CHT-T platforms rely on RT5640, use Baytrail machine driver */
	{"10EC5640", "bytcr_rt5640", "intel/fw_sst_22a8.bin", "bytcr_rt5640", NULL,
	{"10EC5640", "bytcr_rt5640", "intel/fw_sst_22a8.bin", "bytcr_rt5640", cht_quirk,
						&chv_platform_data },

	{},
+2 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ snd-soc-sst-haswell-objs := haswell.o
snd-soc-sst-byt-rt5640-mach-objs := byt-rt5640.o
snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o
snd-soc-sst-broadwell-objs := broadwell.o
snd-soc-sst-bxt-da7219_max98357a-objs := bxt_da7219_max98357a.o
snd-soc-sst-bxt-rt298-objs := bxt_rt298.o
snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
snd-soc-sst-bytcr-rt5651-objs := bytcr_rt5651.o
@@ -15,6 +16,7 @@ snd-soc-skl_nau88l25_ssm4567-objs := skl_nau88l25_ssm4567.o
obj-$(CONFIG_SND_SOC_INTEL_HASWELL_MACH) += snd-soc-sst-haswell.o
obj-$(CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH) += snd-soc-sst-byt-rt5640-mach.o
obj-$(CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH) += snd-soc-sst-byt-max98090-mach.o
obj-$(CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH) += snd-soc-sst-bxt-da7219_max98357a.o
obj-$(CONFIG_SND_SOC_INTEL_BXT_RT298_MACH) += snd-soc-sst-bxt-rt298.o
obj-$(CONFIG_SND_SOC_INTEL_BROADWELL_MACH) += snd-soc-sst-broadwell.o
obj-$(CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH) += snd-soc-sst-bytcr-rt5640.o
Loading