[alsa-devel] [PATCH 22/35] ASoC: Intel: Haswell: Define separate ACPI loader
Cezary Rojewski
cezary.rojewski at intel.com
Sat Aug 24 11:59:47 CEST 2019
On 2019-08-23 21:35, Pierre-Louis Bossart wrote:
>
>
> On 8/22/19 2:04 PM, Cezary Rojewski wrote:
>> With common acpi code exposed, separate Haswell specific code from other
>> legacy platforms. To reduce diff delta, it's still loaded with separate
>> module called: hsw-acpi. This may be address later, once heavy hitters
>> are gone.
>>
>> Signed-off-by: Cezary Rojewski <cezary.rojewski at intel.com>
>> ---
>> sound/soc/intel/Kconfig | 6 ++-
>> sound/soc/intel/common/sst-acpi.c | 32 ----------------
>> sound/soc/intel/haswell/Makefile | 2 +
>> sound/soc/intel/haswell/acpi.c | 63 +++++++++++++++++++++++++++++++
>> 4 files changed, 70 insertions(+), 33 deletions(-)
>> create mode 100644 sound/soc/intel/haswell/acpi.c
>>
>> diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
>> index a3ec17fd63cd..9191773d203c 100644
>> --- a/sound/soc/intel/Kconfig
>> +++ b/sound/soc/intel/Kconfig
>> @@ -31,6 +31,10 @@ config SND_SST_IPC_ACPI
>> # This option controls the ACPI-based IPC for HiFi2 platforms
>> # (Baytrail, Cherrytrail)
>> +config SND_SOC_INTEL_HASWELL_ACPI
>> + tristate
>> + # This option controls the ACPI-based on HSW/BDW platforms
>
> missing noun.
> ACPI-based probe?
>
Thanks for spotting this out, indeed it's missing.
>> +
>> config SND_SOC_INTEL_SST_ACPI
>> tristate
>> # This option controls ACPI-based probing on
>> @@ -52,7 +56,7 @@ config SND_SOC_INTEL_HASWELL
>> depends on SND_DMA_SGBUF
>> depends on DMADEVICES && ACPI
>> select SND_SOC_INTEL_SST
>> - select SND_SOC_INTEL_SST_ACPI
>> + select SND_SOC_INTEL_HASWELL_ACPI
>> select SND_SOC_INTEL_SST_FIRMWARE
>> select SND_SOC_ACPI_INTEL_MATCH
>> help
>> diff --git a/sound/soc/intel/common/sst-acpi.c
>> b/sound/soc/intel/common/sst-acpi.c
>> index 42f9b02f2ea3..7d2f04ff0479 100644
>> --- a/sound/soc/intel/common/sst-acpi.c
>> +++ b/sound/soc/intel/common/sst-acpi.c
>> @@ -15,10 +15,6 @@
>> #include <sound/soc-acpi.h>
>> #include <sound/soc-acpi-intel-match.h>
>> -#define SST_LPT_DSP_DMA_ADDR_OFFSET 0x0F0000
>> -#define SST_WPT_DSP_DMA_ADDR_OFFSET 0x0FE000
>> -#define SST_LPT_DSP_DMA_SIZE (1024 - 1)
>> -
>> struct sst_acpi_priv {
>> struct platform_device *pdev_mach;
>> struct platform_device *pdev_pcm;
>> @@ -156,32 +152,6 @@ int sst_acpi_remove(struct platform_device *pdev)
>> }
>> EXPORT_SYMBOL_GPL(sst_acpi_remove);
>> -static struct sst_acpi_desc sst_acpi_haswell_desc = {
>> - .drv_name = "haswell-pcm-audio",
>> - .machines = snd_soc_acpi_intel_haswell_machines,
>> - .resindex_lpe_base = 0,
>> - .resindex_pcicfg_base = 1,
>> - .resindex_fw_base = -1,
>> - .irqindex_host_ipc = 0,
>> - .sst_id = SST_DEV_ID_LYNX_POINT,
>> - .dma_engine = SST_DMA_TYPE_DW,
>> - .resindex_dma_base = SST_LPT_DSP_DMA_ADDR_OFFSET,
>> - .dma_size = SST_LPT_DSP_DMA_SIZE,
>> -};
>> -
>> -static struct sst_acpi_desc sst_acpi_broadwell_desc = {
>> - .drv_name = "haswell-pcm-audio",
>> - .machines = snd_soc_acpi_intel_broadwell_machines,
>> - .resindex_lpe_base = 0,
>> - .resindex_pcicfg_base = 1,
>> - .resindex_fw_base = -1,
>> - .irqindex_host_ipc = 0,
>> - .sst_id = SST_DEV_ID_WILDCAT_POINT,
>> - .dma_engine = SST_DMA_TYPE_DW,
>> - .resindex_dma_base = SST_WPT_DSP_DMA_ADDR_OFFSET,
>> - .dma_size = SST_LPT_DSP_DMA_SIZE,
>> -};
>> -
>> #if !IS_ENABLED(CONFIG_SND_SST_IPC_ACPI)
>> static struct sst_acpi_desc sst_acpi_baytrail_desc = {
>> .drv_name = "baytrail-pcm-audio",
>> @@ -196,8 +166,6 @@ static struct sst_acpi_desc sst_acpi_baytrail_desc
>> = {
>> #endif
>> static const struct acpi_device_id sst_acpi_match[] = {
>> - { "INT33C8", (unsigned long)&sst_acpi_haswell_desc },
>> - { "INT3438", (unsigned long)&sst_acpi_broadwell_desc },
>> #if !IS_ENABLED(CONFIG_SND_SST_IPC_ACPI)
>> { "80860F28", (unsigned long)&sst_acpi_baytrail_desc },
>> #endif
>> diff --git a/sound/soc/intel/haswell/Makefile
>> b/sound/soc/intel/haswell/Makefile
>> index ad2341aea8ae..0af852d0577b 100644
>> --- a/sound/soc/intel/haswell/Makefile
>> +++ b/sound/soc/intel/haswell/Makefile
>> @@ -1,5 +1,7 @@
>> # SPDX-License-Identifier: GPL-2.0-only
>> snd-soc-sst-haswell-pcm-objs := \
>> sst-haswell-ipc.o sst-haswell-pcm.o sst-haswell-dsp.o
>> +snd-soc-hsw-acpi-objs := acpi.o
>> obj-$(CONFIG_SND_SOC_INTEL_HASWELL) += snd-soc-sst-haswell-pcm.o
>> +obj-$(CONFIG_SND_SOC_INTEL_HASWELL_ACPI) += snd-soc-hsw-acpi.o
>> diff --git a/sound/soc/intel/haswell/acpi.c
>> b/sound/soc/intel/haswell/acpi.c
>> new file mode 100644
>> index 000000000000..7bd8b03851c4
>> --- /dev/null
>> +++ b/sound/soc/intel/haswell/acpi.c
>> @@ -0,0 +1,63 @@
>> +// SPDX-License-Identifier: GPL-2.0-only
>> +/*
>> + * Intel HSW loader on ACPI systems
>> + *
>> + * Copyright (C) 2019, Intel Corporation. All rights reserved.
>> + */
>> +
>> +#include <linux/acpi.h>
>> +#include <linux/platform_device.h>
>> +#include <sound/soc-acpi.h>
>> +#include <sound/soc-acpi-intel-match.h>
>> +#include "../common/sst-dsp.h"
>> +
>> +#define SST_LPT_DSP_DMA_ADDR_OFFSET 0x0F0000
>> +#define SST_WPT_DSP_DMA_ADDR_OFFSET 0x0FE000
>> +#define SST_LPT_DSP_DMA_SIZE (1024 - 1)
>> +
>> +static struct sst_acpi_desc hsw_acpi_desc = {
>> + .drv_name = "haswell-pcm-audio",
>> + .machines = snd_soc_acpi_intel_haswell_machines,
>> + .resindex_lpe_base = 0,
>> + .resindex_pcicfg_base = 1,
>> + .resindex_fw_base = -1,
>> + .irqindex_host_ipc = 0,
>> + .sst_id = SST_DEV_ID_LYNX_POINT,
>> + .dma_engine = SST_DMA_TYPE_DW,
>> + .resindex_dma_base = SST_LPT_DSP_DMA_ADDR_OFFSET,
>> + .dma_size = SST_LPT_DSP_DMA_SIZE,
>> +};
>> +
>> +static struct sst_acpi_desc bdw_acpi_desc = {
>> + .drv_name = "haswell-pcm-audio",
>> + .machines = snd_soc_acpi_intel_broadwell_machines,
>> + .resindex_lpe_base = 0,
>> + .resindex_pcicfg_base = 1,
>> + .resindex_fw_base = -1,
>> + .irqindex_host_ipc = 0,
>> + .sst_id = SST_DEV_ID_WILDCAT_POINT,
>> + .dma_engine = SST_DMA_TYPE_DW,
>> + .resindex_dma_base = SST_WPT_DSP_DMA_ADDR_OFFSET,
>> + .dma_size = SST_LPT_DSP_DMA_SIZE,
>> +};
>> +
>> +static const struct acpi_device_id hsw_acpi_ids[] = {
>> + { "INT33C8", (unsigned long)&hsw_acpi_desc },
>> + { "INT3438", (unsigned long)&bdw_acpi_desc },
>> + { }
>> +};
>> +MODULE_DEVICE_TABLE(acpi, hsw_acpi_ids);
>> +
>> +static struct platform_driver hsw_acpi_driver = {
>> + .probe = sst_acpi_probe,
>> + .remove = sst_acpi_remove,
>> + .driver = {
>> + .name = "hsw-acpi",
>> + .acpi_match_table = ACPI_PTR(hsw_acpi_ids),
>> + },
>> +};
>> +module_platform_driver(hsw_acpi_driver);
>> +
>> +MODULE_AUTHOR("Cezary Rojewski <cezary.rojewski at intel.com>");
>> +MODULE_DESCRIPTION("Intel HSW loader on ACPI systems");
>> +MODULE_LICENSE("GPL v2");
>>
More information about the Alsa-devel
mailing list