NULL pointer dereference in imx-mipi-csis driver when starting stream

Frieder Schrempf frieder.schrempf at kontron.de
Wed Feb 15 03:53:56 PST 2023


On 14.02.23 17:47, Frieder Schrempf wrote:
> Hi everyone,
> 
> after solving the previous devicetree and driver issues with the media
> pipeline on i.MX8MM using a RPi v2.1 camera module (imx219) as sensor, I
> now try to get an image from the sensor and run into the next problem.
> 
> Below you can find the commands I use and the output I'm getting. Maybe
> someone can see straight away what's wrong or at least can make a guess
> before I start diving into the code. ;)
> 
> By the way: This happens on v6.1.11 and 6.2-rc8.

So it looks like there are several problems (again):

First I missed to enable the link between the imx219 and the imx-mipi-csis:

media-ctl -l "'imx219 1-0010':0 -> 'csis-32e30000.mipi-csi':0[1]"

And the imx-mipi-csis driver is missing a check for the missing source
link which caused the exception. I currently have this applied and will
send this as formal patch later:

--- a/drivers/media/platform/nxp/imx-mipi-csis.c
+++ b/drivers/media/platform/nxp/imx-mipi-csis.c
@@ -596,6 +596,11 @@ static int mipi_csis_calculate_params(struct
mipi_csis_device *csis,
        s64 link_freq;
        u32 lane_rate;

+       if (!csis->src_sd) {
+               dev_err(csis->dev, "Missing source link\n");
+               return -EINVAL;
+       }
+
        /* Calculate the line rate from the pixel rate. */
        link_freq = v4l2_get_link_freq(csis->src_sd->ctrl_handler,
                                       csis_fmt->width,

Now with this resolved, I get:

v4l2-ctl -d /dev/video0
--set-fmt-video=width=640,height=480,pixelformat=RG10 --stream-mmap
[  574.758110] imx7-csi 32e20000.csi: pipeline start failed with -32
                VIDIOC_STREAMON returned -1 (Broken pipe)

So still not there, but a bit closer ;)
Probably I'm doing something wrong when setting up the format, etc.



More information about the linux-arm-kernel mailing list