mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 21:20:50 +07:00
ASoC: Add snd_soc_kcontrol_platform() helper function
For platform controls snd_kcontrol_chip() currently returns a pointer to the platform that registered the control. With the upcoming consolidation of platform and CODEC controls this will change. Prepare for this by introducing the snd_soc_kcontrol_platform() helper function that will hide the implementation details of how the platform for a control can be obtained. This will allow us to change this easily in the future. The patch also updates all platforms to use this new helper function. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
ea53bf77d1
commit
f6272ff8a5
@ -1242,6 +1242,20 @@ static inline struct snd_soc_codec *snd_soc_kcontrol_codec(
|
|||||||
return snd_kcontrol_chip(kcontrol);
|
return snd_kcontrol_chip(kcontrol);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* snd_soc_kcontrol_platform() - Returns the platform that registerd the control
|
||||||
|
* @kcontrol: The control for which to get the platform
|
||||||
|
*
|
||||||
|
* Note: This function will only work correctly if the control has been
|
||||||
|
* registered with snd_soc_add_platform_controls() or via table based setup of
|
||||||
|
* a snd_soc_platform_driver. Otherwise the behavior is undefined.
|
||||||
|
*/
|
||||||
|
static inline struct snd_soc_codec *snd_soc_kcontrol_platform(
|
||||||
|
struct snd_kcontrol *kcontrol)
|
||||||
|
{
|
||||||
|
return snd_kcontrol_chip(kcontrol);
|
||||||
|
}
|
||||||
|
|
||||||
int snd_soc_util_init(void);
|
int snd_soc_util_init(void);
|
||||||
void snd_soc_util_exit(void);
|
void snd_soc_util_exit(void);
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ static inline unsigned int hsw_ipc_to_mixer(u32 value)
|
|||||||
static int hsw_stream_volume_put(struct snd_kcontrol *kcontrol,
|
static int hsw_stream_volume_put(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_kcontrol_chip(kcontrol);
|
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
||||||
struct soc_mixer_control *mc =
|
struct soc_mixer_control *mc =
|
||||||
(struct soc_mixer_control *)kcontrol->private_value;
|
(struct soc_mixer_control *)kcontrol->private_value;
|
||||||
struct hsw_priv_data *pdata =
|
struct hsw_priv_data *pdata =
|
||||||
@ -174,7 +174,7 @@ static int hsw_stream_volume_put(struct snd_kcontrol *kcontrol,
|
|||||||
static int hsw_stream_volume_get(struct snd_kcontrol *kcontrol,
|
static int hsw_stream_volume_get(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_kcontrol_chip(kcontrol);
|
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
||||||
struct soc_mixer_control *mc =
|
struct soc_mixer_control *mc =
|
||||||
(struct soc_mixer_control *)kcontrol->private_value;
|
(struct soc_mixer_control *)kcontrol->private_value;
|
||||||
struct hsw_priv_data *pdata =
|
struct hsw_priv_data *pdata =
|
||||||
@ -206,7 +206,7 @@ static int hsw_stream_volume_get(struct snd_kcontrol *kcontrol,
|
|||||||
static int hsw_volume_put(struct snd_kcontrol *kcontrol,
|
static int hsw_volume_put(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_kcontrol_chip(kcontrol);
|
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
||||||
struct hsw_priv_data *pdata = snd_soc_platform_get_drvdata(platform);
|
struct hsw_priv_data *pdata = snd_soc_platform_get_drvdata(platform);
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
u32 volume;
|
u32 volume;
|
||||||
@ -231,7 +231,7 @@ static int hsw_volume_put(struct snd_kcontrol *kcontrol,
|
|||||||
static int hsw_volume_get(struct snd_kcontrol *kcontrol,
|
static int hsw_volume_get(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_kcontrol_chip(kcontrol);
|
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
||||||
struct hsw_priv_data *pdata = snd_soc_platform_get_drvdata(platform);
|
struct hsw_priv_data *pdata = snd_soc_platform_get_drvdata(platform);
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
unsigned int volume = 0;
|
unsigned int volume = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user