[alsa-devel] [RFC PATCH 4/8] ASoC: Intel: move all ACPI match tables to common module

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Tue Sep 26 21:13:23 CEST 2017


On 9/25/17 11:23 PM, Vinod Koul wrote:
> On Fri, Sep 08, 2017 at 03:56:58PM -0500, Pierre-Louis Bossart wrote:
>> First step of cleaning, move all tables to soc-acpi-intel-match module
>>
>> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
>> ---
>>   include/sound/soc-acpi-intel-match.h          |  32 +++
>>   sound/soc/intel/Kconfig                       |  24 +-
>>   sound/soc/intel/Makefile                      |   2 +-
>>   sound/soc/intel/atom/sst/sst_acpi.c           | 311 ++-----------------------
>>   sound/soc/intel/common/Makefile               |   2 +
>>   sound/soc/intel/common/soc-acpi-intel-match.c | 323 ++++++++++++++++++++++++++
>>   sound/soc/intel/common/sst-acpi.c             |  44 +---
>>   7 files changed, 395 insertions(+), 343 deletions(-)
>>   create mode 100644 include/sound/soc-acpi-intel-match.h
>>   create mode 100644 sound/soc/intel/common/soc-acpi-intel-match.c
>>
>> diff --git a/include/sound/soc-acpi-intel-match.h b/include/sound/soc-acpi-intel-match.h
>> new file mode 100644
>> index 0000000..1a9191c
>> --- /dev/null
>> +++ b/include/sound/soc-acpi-intel-match.h
>> @@ -0,0 +1,32 @@
>> +
>> +/*
>> + * Copyright (C) 2017, Intel Corporation. All rights reserved.
>> + *
>> + * This program is free software; you can redistribute it and/or
>> + * modify it under the terms of the GNU General Public License version
>> + * 2 as published by the Free Software Foundation.
>> + *
>> + * This program is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> + * GNU General Public License for more details.
>> + *
>> + */
>> +
>> +#ifndef __LINUX_SND_SOC_ACPI_INTEL_MATCH_H
>> +#define __LINUX_SND_SOC_ACPI_INTEL_MATCH_H
> 
> do we need LINUX on this one, it already too long :)

I checked and all include/sound/soc* files have this LINUX_SND_SOC 
prefix. I don't mind removing it but then someone will object it's not 
consistent.

> 
>> +
>> +#include <linux/stddef.h>
>> +#include <linux/acpi.h>
>> +
>> +/*
>> + * these tables are not constants, some fields can be used for
>> + * pdata or machine ops
>> + */
>> +extern struct snd_soc_acpi_mach snd_soc_acpi_intel_haswell_machines[];
>> +extern struct snd_soc_acpi_mach snd_soc_acpi_intel_broadwell_machines[];
>> +extern struct snd_soc_acpi_mach snd_soc_acpi_intel_baytrail_legacy_machines[];
>> +extern struct snd_soc_acpi_mach snd_soc_acpi_intel_baytrail_machines[];
>> +extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cherrytrail_machines[];
> 
> so the header is just for externs, not a pretty thing, can we avoid these
> somehow. Do they need to be in common file, why not keep then in respective
> byt/hsw file.

Because they will be shared between drivers, that's the whole point.
I can't put a common table in either of sound/soc/sof or 
sound/soc/intel/atom. I didn't find a better solution than a module with 
just tables + matching functions in it.

> 
> 
>> +config SND_SOC_INTEL_COMMON
>> +	tristate
>> +
>>   config SND_SOC_INTEL_SST
>>   	tristate
>> +	select SND_SOC_INTEL_COMMON
>>   	select SND_SOC_INTEL_SST_ACPI if ACPI
>> -	select SND_SOC_INTEL_SST_MATCH if ACPI
>> +	select SND_SOC_ACPI_INTEL_MATCH if ACPI
>>   
>> -config SND_SOC_INTEL_SST_MATCH
>> +config SND_SOC_ACPI_INTEL_MATCH
>>   	tristate
>>   	select SND_SOC_ACPI if ACPI
>>   
>> @@ -145,7 +149,7 @@ config SND_SOC_INTEL_BYTCR_RT5640_MACH
>>   	select SND_SOC_RT5640
>>   	select SND_SST_ATOM_HIFI2_PLATFORM
>>   	select SND_SST_IPC_ACPI
>> -	select SND_SOC_INTEL_SST_MATCH if ACPI
>> +	select SND_SOC_ACPI_INTEL_MATCH if ACPI
> 
> why do you need this change, SND_SOC_INTEL_SST selects
> SND_SOC_ACPI_INTEL_MATCH, so we should select top symbol which is
> SND_SOC_INTEL_SST

The idea is also to share machine drivers between SOF and closed-source 
based platform drivers, so if we keep the semantic of INTEL_SST as is 
then it needs to go away from the machine parts.


More information about the Alsa-devel mailing list