summaryrefslogtreecommitdiff
path: root/drivers/media/radio
diff options
context:
space:
mode:
authorZidan Wang <zidan.wang@freescale.com>2015-07-31 17:02:48 +0800
committerDong Aisheng <aisheng.dong@nxp.com>2019-11-25 15:54:33 +0800
commit9ecdda6d033487b9ce16ef43081d427c486b4ff6 (patch)
tree0813d4525ad733e4c0629f8d3e0c34e4ddc4ff4e /drivers/media/radio
parent5504d2877a6a307fe856444d366332b5d647251d (diff)
MLK-11305 radio-si476x: support set V4L2_CID_AUDIO_MUTE CTRL
By using gstreamer plugin v4l2radio, it will call VIDIOC_S_CTRL with V4L2_CID_AUDIO_MUTE, but return failed. So add V4L2_CID_AUDIO_MUTE CTRL support for radio-si476x. Signed-off-by: Zidan Wang <zidan.wang@freescale.com> (cherry picked from commit c18520adfd6de40dcc0659ddd778b0a2bd383cd4) Signed-off-by: Arulpandiyan Vadivel <arulpandiyan_vadivel@mentor.com>
Diffstat (limited to 'drivers/media/radio')
-rw-r--r--drivers/media/radio/radio-si476x.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/media/radio/radio-si476x.c b/drivers/media/radio/radio-si476x.c
index b203296de977..c2490267f254 100644
--- a/drivers/media/radio/radio-si476x.c
+++ b/drivers/media/radio/radio-si476x.c
@@ -988,6 +988,14 @@ static int si476x_radio_s_ctrl(struct v4l2_ctrl *ctrl)
}
break;
+ case V4L2_CID_AUDIO_MUTE:
+ if (ctrl->val)
+ retval = regmap_write(radio->core->regmap,
+ SI476X_PROP_AUDIO_MUTE, 3);
+ else
+ retval = regmap_write(radio->core->regmap,
+ SI476X_PROP_AUDIO_MUTE, 0);
+ break;
default:
retval = -EINVAL;
break;
@@ -1515,6 +1523,16 @@ static int si476x_radio_probe(struct platform_device *pdev)
goto exit;
}
+ ctrl = v4l2_ctrl_new_std(&radio->ctrl_handler, &si476x_ctrl_ops,
+ V4L2_CID_AUDIO_MUTE,
+ 0, 1, 1, 0);
+ rval = radio->ctrl_handler.error;
+ if (ctrl == NULL && rval) {
+ dev_err(&pdev->dev, "Could not initialize V4L2_CID_AUDIO_MUTE control %d\n",
+ rval);
+ goto exit;
+ }
+
if (si476x_core_has_diversity(radio->core)) {
si476x_ctrls[SI476X_IDX_DIVERSITY_MODE].def =
si476x_phase_diversity_mode_to_idx(radio->core->diversity_mode);