Re: [PATCH v2] ALSA: hda: intel-dsp-config: Add SND_INTEL_BYT_PREFER_SOF Kconfig option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I still had an old v2-0001-...patch file lying around while doing:

git send-email v2-00*.patch

Sorry, please ignore.

Regards,

Hans


On 2/15/21 8:07 PM, Hans de Goede wrote:
> The kernel has 2 drivers for the Low Power Engine audio-block on
> Bay- and Cherry-Trail SoCs. The old SST driver and the new SOF
> driver. If both drivers are enabled then the kernel will default
> to using the old SST driver, unless told otherwise through the
> snd_intel_dspcfg.dsp_driver module-parameter.
> 
> Add a boolean SND_INTEL_BYT_PREFER_SOF Kconfig option, which when set to Y
> will make the kernel default to the new SOF driver instead.
> The option defaults to n, preserving the current behavior.
> 
> Making this configurable will help distributions such as Fedora:
> https://fedoraproject.org/w/index.php?title=Changes/SofDefaultForIntelLpe
> to test using SOF on BYT/CHT during the transition phase where we
> have both drivers (eventually the old driver and this option will
> be removed).
> 
> Note that this drops the acpi_config_table[] containing 2 entries per ACPI
> hardware-id if both drivers are enabled. snd_intel_acpi_dsp_find_config()
> will always return the first hit, so we only need a single entry with the
> flags value set depending on the Kconfig settings.
> 
> Suggested-by: Takashi Iwai <tiwai@xxxxxxx>
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> ---
> Changes in v2:
> - Rework following Takashi's suggestions
> ---
>  sound/hda/Kconfig            | 14 ++++++++++++++
>  sound/hda/intel-dsp-config.c | 29 ++++++++++++-----------------
>  2 files changed, 26 insertions(+), 17 deletions(-)
> 
> diff --git a/sound/hda/Kconfig b/sound/hda/Kconfig
> index 3bc9224d5e4f..9ed5cfa3c18c 100644
> --- a/sound/hda/Kconfig
> +++ b/sound/hda/Kconfig
> @@ -46,3 +46,17 @@ config SND_INTEL_DSP_CONFIG
>  	select SND_INTEL_NHLT if ACPI
>  	# this config should be selected only for Intel DSP platforms.
>  	# A fallback is provided so that the code compiles in all cases.
> +
> +config SND_INTEL_BYT_PREFER_SOF
> +	bool "Prefer SOF driver over SST on BY/CHT platforms"
> +	depends on SND_SST_ATOM_HIFI2_PLATFORM_ACPI && SND_SOC_SOF_BAYTRAIL
> +	default n
> +	help
> +	  The kernel has 2 drivers for the Low Power Engine audio-block on
> +	  Bay- and Cherry-Trail SoCs. The old SST driver and the new SOF
> +	  driver. If both drivers are enabled then the kernel will default
> +	  to using the old SST driver, unless told otherwise through the
> +	  snd_intel_dspcfg.dsp_driver module-parameter.
> +
> +	  Set this option to Y to make the kernel default to the new SOF
> +	  driver instead.
> diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
> index c45686172517..68bb977c6a37 100644
> --- a/sound/hda/intel-dsp-config.c
> +++ b/sound/hda/intel-dsp-config.c
> @@ -452,35 +452,30 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
>  }
>  EXPORT_SYMBOL_GPL(snd_intel_dsp_driver_probe);
>  
> +/* Should we default to SOF or SST for BYT/CHT ? */
> +#if IS_ENABLED(CONFIG_SND_INTEL_BYT_PREFER_SOF) || \
> +    !IS_ENABLED(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI)
> +#define FLAG_SST_OR_SOF_BYT	FLAG_SOF
> +#else
> +#define FLAG_SST_OR_SOF_BYT	FLAG_SST
> +#endif
> +
>  /*
>   * configuration table
>   * - the order of similar ACPI ID entries is important!
>   * - the first successful match will win
>   */
>  static const struct config_entry acpi_config_table[] = {
> +#if IS_ENABLED(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI) || \
> +    IS_ENABLED(CONFIG_SND_SOC_SOF_BAYTRAIL)
>  /* BayTrail */
> -#if IS_ENABLED(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI)
> -	{
> -		.flags = FLAG_SST,
> -		.acpi_hid = "80860F28",
> -	},
> -#endif
> -#if IS_ENABLED(CONFIG_SND_SOC_SOF_BAYTRAIL)
>  	{
> -		.flags = FLAG_SOF,
> +		.flags = FLAG_SST_OR_SOF_BYT,
>  		.acpi_hid = "80860F28",
>  	},
> -#endif
>  /* CherryTrail */
> -#if IS_ENABLED(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI)
> -	{
> -		.flags = FLAG_SST,
> -		.acpi_hid = "808622A8",
> -	},
> -#endif
> -#if IS_ENABLED(CONFIG_SND_SOC_SOF_BAYTRAIL)
>  	{
> -		.flags = FLAG_SOF,
> +		.flags = FLAG_SST_OR_SOF_BYT,
>  		.acpi_hid = "808622A8",
>  	},
>  #endif
> 




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux