mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
audio: auge: fix kcontrol chip info [1/1]
PD#SWPL-14331 Problem: mixer "HDMI ARC Source" crashes when bootup Solution: fix kcontrol chip info Verify: x301 Change-Id: I2f2d66acbbd4092a5cbbe4c108d5ae928f0f0ccc Signed-off-by: Xing Wang <xing.wang@amlogic.com>
This commit is contained in:
@@ -682,8 +682,10 @@ static int arc_get_src(
|
||||
struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
|
||||
struct extn *p_extn = dev_get_drvdata(component->dev);
|
||||
struct extn *p_extn = snd_kcontrol_chip(kcontrol);
|
||||
|
||||
if (!p_extn)
|
||||
return 0;
|
||||
|
||||
ucontrol->value.integer.value[0] = p_extn->arc_src;
|
||||
|
||||
@@ -694,8 +696,10 @@ static int arc_set_src(
|
||||
struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
|
||||
struct extn *p_extn = dev_get_drvdata(component->dev);
|
||||
struct extn *p_extn = snd_kcontrol_chip(kcontrol);
|
||||
|
||||
if (!p_extn)
|
||||
return 0;
|
||||
|
||||
p_extn->arc_src = ucontrol->value.integer.value[0];
|
||||
|
||||
@@ -708,8 +712,10 @@ static int arc_get_enable(
|
||||
struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
|
||||
struct extn *p_extn = dev_get_drvdata(component->dev);
|
||||
struct extn *p_extn = snd_kcontrol_chip(kcontrol);
|
||||
|
||||
if (!p_extn)
|
||||
return 0;
|
||||
|
||||
ucontrol->value.integer.value[0] = p_extn->arc_en;
|
||||
|
||||
@@ -720,8 +726,10 @@ static int arc_set_enable(
|
||||
struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
|
||||
struct extn *p_extn = dev_get_drvdata(component->dev);
|
||||
struct extn *p_extn = snd_kcontrol_chip(kcontrol);
|
||||
|
||||
if (!p_extn)
|
||||
return 0;
|
||||
|
||||
p_extn->arc_en = ucontrol->value.integer.value[0];
|
||||
|
||||
@@ -737,6 +745,9 @@ static int frhdmirx_get_mode(
|
||||
struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
|
||||
struct extn *p_extn = dev_get_drvdata(component->dev);
|
||||
|
||||
if (!p_extn)
|
||||
return 0;
|
||||
|
||||
ucontrol->value.integer.value[0] = p_extn->hdmirx_mode;
|
||||
|
||||
return 0;
|
||||
@@ -749,6 +760,9 @@ static int frhdmirx_set_mode(
|
||||
struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
|
||||
struct extn *p_extn = dev_get_drvdata(component->dev);
|
||||
|
||||
if (!p_extn)
|
||||
return 0;
|
||||
|
||||
p_extn->hdmirx_mode = ucontrol->value.integer.value[0];
|
||||
|
||||
return 0;
|
||||
@@ -820,6 +834,9 @@ static int hdmirx_audio_type_get_enum(
|
||||
struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
|
||||
struct extn *p_extn = dev_get_drvdata(component->dev);
|
||||
|
||||
if (!p_extn)
|
||||
return 0;
|
||||
|
||||
ucontrol->value.enumerated.item[0] =
|
||||
hdmiin_check_audio_type(p_extn);
|
||||
|
||||
@@ -848,7 +865,7 @@ static int extn_create_controls(struct snd_card *card,
|
||||
|
||||
for (i = 0; i < DYNC_KCNTL_CNT; i++) {
|
||||
p_extn->controls[i] =
|
||||
snd_ctl_new1(&extn_arc_controls[i], NULL);
|
||||
snd_ctl_new1(&extn_arc_controls[i], p_extn);
|
||||
err = snd_ctl_add(card, p_extn->controls[i]);
|
||||
if (err < 0)
|
||||
goto __error;
|
||||
@@ -1000,10 +1017,10 @@ static int extn_platform_probe(struct platform_device *pdev)
|
||||
/* Default: PAO mode */
|
||||
p_extn->hdmirx_mode = 1;
|
||||
|
||||
ret = snd_soc_register_component(&pdev->dev,
|
||||
&extn_component,
|
||||
extn_dai,
|
||||
ARRAY_SIZE(extn_dai));
|
||||
ret = devm_snd_soc_register_component(&pdev->dev,
|
||||
&extn_component,
|
||||
extn_dai,
|
||||
ARRAY_SIZE(extn_dai));
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev,
|
||||
"snd_soc_register_component failed\n");
|
||||
|
||||
Reference in New Issue
Block a user