[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