Unverified Commit 8d89cf6f authored by Srinivas Kandagatla's avatar Srinivas Kandagatla Committed by Mark Brown
Browse files

ASoC: qcom: cleanup and fix dependency of QCOM_COMMON



SND_SOC_QCOM_COMMON depends on SOUNDWIRE for some symbols but this
is not explicitly specified using Kconfig depends. On the other hand
SND_SOC_QCOM_COMMON is also directly selected by the sound card
Kconfigs, this could result in various combinations and some symbols
ending up in modules and soundcard that uses those symbols as in-build
driver.

Fix these issues by explicitly specifying the dependencies of
SND_SOC_QCOM_COMMON and also use imply a to select SND_SOC_QCOM_COMMON
so that the symbol is selected based on its dependencies.

Also remove dummy stubs in common.c around CONFIG_SOUNDWIRE

Fixes: 3bd975f3 ("ASoC: qcom: sm8250: move some code to common")
Reported-by: default avatarkernel test robot <lkp@intel.com>
Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20221124140351.407506-1-srinivas.kandagatla@linaro.org


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 1bf5ee97
Loading
Loading
Loading
Loading
+9 −7
Original line number Original line Diff line number Diff line
@@ -2,6 +2,7 @@
menuconfig SND_SOC_QCOM
menuconfig SND_SOC_QCOM
	tristate "ASoC support for QCOM platforms"
	tristate "ASoC support for QCOM platforms"
	depends on ARCH_QCOM || COMPILE_TEST
	depends on ARCH_QCOM || COMPILE_TEST
	imply SND_SOC_QCOM_COMMON
	help
	help
	  Say Y or M if you want to add support to use audio devices
	  Say Y or M if you want to add support to use audio devices
	  in Qualcomm Technologies SOC-based platforms.
	  in Qualcomm Technologies SOC-based platforms.
@@ -59,13 +60,14 @@ config SND_SOC_STORM
config SND_SOC_APQ8016_SBC
config SND_SOC_APQ8016_SBC
	tristate "SoC Audio support for APQ8016 SBC platforms"
	tristate "SoC Audio support for APQ8016 SBC platforms"
	select SND_SOC_LPASS_APQ8016
	select SND_SOC_LPASS_APQ8016
	select SND_SOC_QCOM_COMMON
	depends on SND_SOC_QCOM_COMMON
	help
	help
	  Support for Qualcomm Technologies LPASS audio block in
	  Support for Qualcomm Technologies LPASS audio block in
	  APQ8016 SOC-based systems.
	  APQ8016 SOC-based systems.
	  Say Y if you want to use audio devices on MI2S.
	  Say Y if you want to use audio devices on MI2S.


config SND_SOC_QCOM_COMMON
config SND_SOC_QCOM_COMMON
	depends on SOUNDWIRE
	tristate
	tristate


config SND_SOC_QDSP6_COMMON
config SND_SOC_QDSP6_COMMON
@@ -142,7 +144,7 @@ config SND_SOC_MSM8996
	depends on QCOM_APR
	depends on QCOM_APR
	depends on COMMON_CLK
	depends on COMMON_CLK
	select SND_SOC_QDSP6
	select SND_SOC_QDSP6
	select SND_SOC_QCOM_COMMON
	depends on SND_SOC_QCOM_COMMON
	help
	help
	  Support for Qualcomm Technologies LPASS audio block in
	  Support for Qualcomm Technologies LPASS audio block in
	  APQ8096 SoC-based systems.
	  APQ8096 SoC-based systems.
@@ -153,7 +155,7 @@ config SND_SOC_SDM845
	depends on QCOM_APR && I2C && SOUNDWIRE
	depends on QCOM_APR && I2C && SOUNDWIRE
	depends on COMMON_CLK
	depends on COMMON_CLK
	select SND_SOC_QDSP6
	select SND_SOC_QDSP6
	select SND_SOC_QCOM_COMMON
	depends on SND_SOC_QCOM_COMMON
	select SND_SOC_RT5663
	select SND_SOC_RT5663
	select SND_SOC_MAX98927
	select SND_SOC_MAX98927
	imply SND_SOC_CROS_EC_CODEC
	imply SND_SOC_CROS_EC_CODEC
@@ -167,7 +169,7 @@ config SND_SOC_SM8250
	depends on QCOM_APR && SOUNDWIRE
	depends on QCOM_APR && SOUNDWIRE
	depends on COMMON_CLK
	depends on COMMON_CLK
	select SND_SOC_QDSP6
	select SND_SOC_QDSP6
	select SND_SOC_QCOM_COMMON
	depends on SND_SOC_QCOM_COMMON
	help
	help
	  To add support for audio on Qualcomm Technologies Inc.
	  To add support for audio on Qualcomm Technologies Inc.
	  SM8250 SoC-based systems.
	  SM8250 SoC-based systems.
@@ -178,7 +180,7 @@ config SND_SOC_SC8280XP
	depends on QCOM_APR && SOUNDWIRE
	depends on QCOM_APR && SOUNDWIRE
	depends on COMMON_CLK
	depends on COMMON_CLK
	select SND_SOC_QDSP6
	select SND_SOC_QDSP6
	select SND_SOC_QCOM_COMMON
	depends on SND_SOC_QCOM_COMMON
	help
	help
	  To add support for audio on Qualcomm Technologies Inc.
	  To add support for audio on Qualcomm Technologies Inc.
	  SC8280XP SoC-based systems.
	  SC8280XP SoC-based systems.
@@ -188,7 +190,7 @@ config SND_SOC_SC7180
	tristate "SoC Machine driver for SC7180 boards"
	tristate "SoC Machine driver for SC7180 boards"
	depends on I2C && GPIOLIB
	depends on I2C && GPIOLIB
	depends on SOUNDWIRE || SOUNDWIRE=n
	depends on SOUNDWIRE || SOUNDWIRE=n
	select SND_SOC_QCOM_COMMON
	depends on SND_SOC_QCOM_COMMON
	select SND_SOC_LPASS_SC7180
	select SND_SOC_LPASS_SC7180
	select SND_SOC_MAX98357A
	select SND_SOC_MAX98357A
	select SND_SOC_RT5682_I2C
	select SND_SOC_RT5682_I2C
@@ -202,7 +204,7 @@ config SND_SOC_SC7180
config SND_SOC_SC7280
config SND_SOC_SC7280
	tristate "SoC Machine driver for SC7280 boards"
	tristate "SoC Machine driver for SC7280 boards"
	depends on I2C && SOUNDWIRE
	depends on I2C && SOUNDWIRE
	select SND_SOC_QCOM_COMMON
	depends on SND_SOC_QCOM_COMMON
	select SND_SOC_LPASS_SC7280
	select SND_SOC_LPASS_SC7280
	select SND_SOC_MAX98357A
	select SND_SOC_MAX98357A
	select SND_SOC_WCD938X_SDW
	select SND_SOC_WCD938X_SDW
+0 −2
Original line number Original line Diff line number Diff line
@@ -180,7 +180,6 @@ int qcom_snd_parse_of(struct snd_soc_card *card)
}
}
EXPORT_SYMBOL_GPL(qcom_snd_parse_of);
EXPORT_SYMBOL_GPL(qcom_snd_parse_of);


#if IS_ENABLED(CONFIG_SOUNDWIRE)
int qcom_snd_sdw_prepare(struct snd_pcm_substream *substream,
int qcom_snd_sdw_prepare(struct snd_pcm_substream *substream,
			 struct sdw_stream_runtime *sruntime,
			 struct sdw_stream_runtime *sruntime,
			 bool *stream_prepared)
			 bool *stream_prepared)
@@ -294,7 +293,6 @@ int qcom_snd_sdw_hw_free(struct snd_pcm_substream *substream,
	return 0;
	return 0;
}
}
EXPORT_SYMBOL_GPL(qcom_snd_sdw_hw_free);
EXPORT_SYMBOL_GPL(qcom_snd_sdw_hw_free);
#endif


int qcom_snd_wcd_jack_setup(struct snd_soc_pcm_runtime *rtd,
int qcom_snd_wcd_jack_setup(struct snd_soc_pcm_runtime *rtd,
			    struct snd_soc_jack *jack, bool *jack_setup)
			    struct snd_soc_jack *jack, bool *jack_setup)
+0 −23
Original line number Original line Diff line number Diff line
@@ -11,7 +11,6 @@ int qcom_snd_parse_of(struct snd_soc_card *card);
int qcom_snd_wcd_jack_setup(struct snd_soc_pcm_runtime *rtd,
int qcom_snd_wcd_jack_setup(struct snd_soc_pcm_runtime *rtd,
			    struct snd_soc_jack *jack, bool *jack_setup);
			    struct snd_soc_jack *jack, bool *jack_setup);


#if IS_ENABLED(CONFIG_SOUNDWIRE)
int qcom_snd_sdw_prepare(struct snd_pcm_substream *substream,
int qcom_snd_sdw_prepare(struct snd_pcm_substream *substream,
			 struct sdw_stream_runtime *runtime,
			 struct sdw_stream_runtime *runtime,
			 bool *stream_prepared);
			 bool *stream_prepared);
@@ -21,26 +20,4 @@ int qcom_snd_sdw_hw_params(struct snd_pcm_substream *substream,
int qcom_snd_sdw_hw_free(struct snd_pcm_substream *substream,
int qcom_snd_sdw_hw_free(struct snd_pcm_substream *substream,
			 struct sdw_stream_runtime *sruntime,
			 struct sdw_stream_runtime *sruntime,
			 bool *stream_prepared);
			 bool *stream_prepared);
#else
static inline int qcom_snd_sdw_prepare(struct snd_pcm_substream *substream,
				       struct sdw_stream_runtime *runtime,
				       bool *stream_prepared)
{
	return -ENOTSUPP;
}

static inline int qcom_snd_sdw_hw_params(struct snd_pcm_substream *substream,
					 struct snd_pcm_hw_params *params,
					 struct sdw_stream_runtime **psruntime)
{
	return -ENOTSUPP;
}

static inline int qcom_snd_sdw_hw_free(struct snd_pcm_substream *substream,
				       struct sdw_stream_runtime *sruntime,
				       bool *stream_prepared)
{
	return -ENOTSUPP;
}
#endif
#endif
#endif