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)
This commit is contained in:
Zidan Wang
2015-07-31 17:02:48 +08:00
committed by Jason Liu
parent a4f670ae4d
commit 9689c9120b
2 changed files with 20 additions and 0 deletions

View File

@ -1010,6 +1010,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;
@ -1529,6 +1537,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);

View File

@ -493,6 +493,8 @@ enum si476x_common_receiver_properties {
SI476X_PROP_DIGITAL_IO_OUTPUT_SAMPLE_RATE = 0x0202,
SI476X_PROP_DIGITAL_IO_OUTPUT_FORMAT = 0x0203,
SI476X_PROP_AUDIO_MUTE = 0x0301,
SI476X_PROP_SEEK_BAND_BOTTOM = 0x1100,
SI476X_PROP_SEEK_BAND_TOP = 0x1101,
SI476X_PROP_SEEK_FREQUENCY_SPACING = 0x1102,