media: rkisp1: Reject sensors without pixel rate control at bound time
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tue, 14 Jun 2022 19:10:44 +0000 (20:10 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 17 Jul 2022 11:02:48 +0000 (12:02 +0100)
The rkisp1 driver requires the sensor to implement the pixel rate
control. Trying to operate without it will cause an error when starting
streaming. Catch the issue earlier, at bound time.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Dafna Hirschfeld <dafna@fastmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c

index 39ae350740623f25b052606a7d74cb9472f87bbf..7fc617d51f447a4eebfc334b9aeacb2c973092c4 100644 (file)
@@ -190,6 +190,12 @@ static int rkisp1_subdev_notifier_bound(struct v4l2_async_notifier *notifier,
 
        s_asd->pixel_rate_ctrl = v4l2_ctrl_find(sd->ctrl_handler,
                                                V4L2_CID_PIXEL_RATE);
+       if (!s_asd->pixel_rate_ctrl) {
+               dev_err(rkisp1->dev, "No pixel rate control in subdev %s\n",
+                       sd->name);
+               return -EINVAL;
+       }
+
        s_asd->sd = sd;
        s_asd->dphy = devm_phy_get(rkisp1->dev, "dphy");
        if (IS_ERR(s_asd->dphy)) {
index 689885ac2e84a34a3be2c5842351d5bc42a8fd69..56781b53dd83fde4037ff919593e33b9f199c325 100644 (file)
@@ -823,11 +823,6 @@ static int rkisp1_mipi_csi2_start(struct rkisp1_isp *isp,
        struct phy_configure_opts_mipi_dphy *cfg = &opts.mipi_dphy;
        s64 pixel_clock;
 
-       if (!sensor->pixel_rate_ctrl) {
-               dev_warn(rkisp1->dev, "No pixel rate control in sensor subdev\n");
-               return -EPIPE;
-       }
-
        pixel_clock = v4l2_ctrl_g_ctrl_int64(sensor->pixel_rate_ctrl);
        if (!pixel_clock) {
                dev_err(rkisp1->dev, "Invalid pixel rate value\n");