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:
@ -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);
|
||||
|
||||
@ -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,
|
||||
|
||||
Reference in New Issue
Block a user