[PATCH 1/3] ASoC: Intel: Move soc_intel_is_foo() helpers to a generic header
Andy Shevchenko
andy.shevchenko at gmail.com
Mon Oct 18 17:00:39 CEST 2021
On Mon, Oct 18, 2021 at 5:33 PM Hans de Goede <hdegoede at redhat.com> wrote:
>
> The soc_intel_is_foo() helpers from
> sound/soc/intel/common/soc-intel-quirks.h are useful outside of the
> sound subsystem too.
>
> Move these to include/linux/platform_data/x86/soc.h, so that
> other code can use them too.
A nit-pick below which may be ignored.
> Suggested-by: Andy Shevchenko <andy.shevchenko at gmail.com>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
> include/linux/platform_data/x86/soc.h | 65 +++++++++++++++++++++++
> sound/soc/intel/common/soc-intel-quirks.h | 51 ++----------------
> 2 files changed, 68 insertions(+), 48 deletions(-)
> create mode 100644 include/linux/platform_data/x86/soc.h
>
> diff --git a/include/linux/platform_data/x86/soc.h b/include/linux/platform_data/x86/soc.h
> new file mode 100644
> index 000000000000..8d710834e87a
> --- /dev/null
> +++ b/include/linux/platform_data/x86/soc.h
> @@ -0,0 +1,65 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * soc.h - helpers for Intel SoC model detection
No need of having the filename in the file itself, it even might add a
churn in the future in case of renaming.
> + *
> + * Copyright (c) 2019, Intel Corporation.
> + */
> +
> +#ifndef __PLATFORM_DATA_X86_SOC_H
> +#define __PLATFORM_DATA_X86_SOC_H
> +
> +#if IS_ENABLED(CONFIG_X86)
> +
> +#include <asm/cpu_device_id.h>
> +#include <asm/intel-family.h>
> +
> +#define SOC_INTEL_IS_CPU(soc, type) \
> +static inline bool soc_intel_is_##soc(void) \
> +{ \
> + static const struct x86_cpu_id soc##_cpu_ids[] = { \
> + X86_MATCH_INTEL_FAM6_MODEL(type, NULL), \
> + {} \
> + }; \
> + const struct x86_cpu_id *id; \
> + \
> + id = x86_match_cpu(soc##_cpu_ids); \
> + if (id) \
> + return true; \
> + return false; \
> +}
> +
> +SOC_INTEL_IS_CPU(byt, ATOM_SILVERMONT);
> +SOC_INTEL_IS_CPU(cht, ATOM_AIRMONT);
> +SOC_INTEL_IS_CPU(apl, ATOM_GOLDMONT);
> +SOC_INTEL_IS_CPU(glk, ATOM_GOLDMONT_PLUS);
> +SOC_INTEL_IS_CPU(cml, KABYLAKE_L);
> +
> +#else /* IS_ENABLED(CONFIG_X86) */
> +
> +static inline bool soc_intel_is_byt(void)
> +{
> + return false;
> +}
> +
> +static inline bool soc_intel_is_cht(void)
> +{
> + return false;
> +}
> +
> +static inline bool soc_intel_is_apl(void)
> +{
> + return false;
> +}
> +
> +static inline bool soc_intel_is_glk(void)
> +{
> + return false;
> +}
> +
> +static inline bool soc_intel_is_cml(void)
> +{
> + return false;
> +}
> +#endif /* IS_ENABLED(CONFIG_X86) */
> +
> +#endif /* __PLATFORM_DATA_X86_SOC_H */
> diff --git a/sound/soc/intel/common/soc-intel-quirks.h b/sound/soc/intel/common/soc-intel-quirks.h
> index a93987ab7f4d..de4e550c5b34 100644
> --- a/sound/soc/intel/common/soc-intel-quirks.h
> +++ b/sound/soc/intel/common/soc-intel-quirks.h
> @@ -9,34 +9,13 @@
> #ifndef _SND_SOC_INTEL_QUIRKS_H
> #define _SND_SOC_INTEL_QUIRKS_H
>
> +#include <linux/platform_data/x86/soc.h>
> +
> #if IS_ENABLED(CONFIG_X86)
>
> #include <linux/dmi.h>
> -#include <asm/cpu_device_id.h>
> -#include <asm/intel-family.h>
> #include <asm/iosf_mbi.h>
>
> -#define SOC_INTEL_IS_CPU(soc, type) \
> -static inline bool soc_intel_is_##soc(void) \
> -{ \
> - static const struct x86_cpu_id soc##_cpu_ids[] = { \
> - X86_MATCH_INTEL_FAM6_MODEL(type, NULL), \
> - {} \
> - }; \
> - const struct x86_cpu_id *id; \
> - \
> - id = x86_match_cpu(soc##_cpu_ids); \
> - if (id) \
> - return true; \
> - return false; \
> -}
> -
> -SOC_INTEL_IS_CPU(byt, ATOM_SILVERMONT);
> -SOC_INTEL_IS_CPU(cht, ATOM_AIRMONT);
> -SOC_INTEL_IS_CPU(apl, ATOM_GOLDMONT);
> -SOC_INTEL_IS_CPU(glk, ATOM_GOLDMONT_PLUS);
> -SOC_INTEL_IS_CPU(cml, KABYLAKE_L);
> -
> static inline bool soc_intel_is_byt_cr(struct platform_device *pdev)
> {
> /*
> @@ -114,30 +93,6 @@ static inline bool soc_intel_is_byt_cr(struct platform_device *pdev)
> return false;
> }
>
> -static inline bool soc_intel_is_byt(void)
> -{
> - return false;
> -}
> -
> -static inline bool soc_intel_is_cht(void)
> -{
> - return false;
> -}
> -
> -static inline bool soc_intel_is_apl(void)
> -{
> - return false;
> -}
> -
> -static inline bool soc_intel_is_glk(void)
> -{
> - return false;
> -}
> -
> -static inline bool soc_intel_is_cml(void)
> -{
> - return false;
> -}
> #endif
>
> - #endif /* _SND_SOC_INTEL_QUIRKS_H */
> +#endif /* _SND_SOC_INTEL_QUIRKS_H */
> --
> 2.31.1
>
--
With Best Regards,
Andy Shevchenko
More information about the Alsa-devel
mailing list