media: vivid: fix incorrect capabilities for radio
authorHans Verkuil <hverkuil@xs4all.nl>
Thu, 1 Feb 2018 07:36:33 +0000 (02:36 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 May 2018 14:17:58 +0000 (16:17 +0200)
[ Upstream commit 65243386f41d38460bfd4375d231a7c0346d0401 ]

The vivid driver has two custom controls that change the behavior of RDS.
Depending on the control setting the V4L2_CAP_READWRITE capability is toggled.
However, after an earlier commit the capability was no longer set correctly.
This is now fixed.

Fixes: 9765a32cd8 ("vivid: set device_caps in video_device")

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/platform/vivid/vivid-ctrls.c

index 34731f7..8ca9343 100644 (file)
@@ -1191,6 +1191,7 @@ static int vivid_radio_rx_s_ctrl(struct v4l2_ctrl *ctrl)
                v4l2_ctrl_activate(dev->radio_rx_rds_ta, dev->radio_rx_rds_controls);
                v4l2_ctrl_activate(dev->radio_rx_rds_tp, dev->radio_rx_rds_controls);
                v4l2_ctrl_activate(dev->radio_rx_rds_ms, dev->radio_rx_rds_controls);
+               dev->radio_rx_dev.device_caps = dev->radio_rx_caps;
                break;
        case V4L2_CID_RDS_RECEPTION:
                dev->radio_rx_rds_enabled = ctrl->val;
@@ -1265,6 +1266,7 @@ static int vivid_radio_tx_s_ctrl(struct v4l2_ctrl *ctrl)
                dev->radio_tx_caps &= ~V4L2_CAP_READWRITE;
                if (!dev->radio_tx_rds_controls)
                        dev->radio_tx_caps |= V4L2_CAP_READWRITE;
+               dev->radio_tx_dev.device_caps = dev->radio_tx_caps;
                break;
        case V4L2_CID_RDS_TX_PTY:
                if (dev->radio_rx_rds_controls)