Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: pxa_camera: fix smatch warning

drivers/media/platform/pxa_camera.c:2400 pxa_camera_probe() error: we previously assumed 'pcdev->pdata' could be null (see line 2397)

First check if platform data is provided, then check if DT data is provided,
and if neither is provided just return with -ENODEV.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

authored by

Hans Verkuil and committed by
Mauro Carvalho Chehab
db89a47f d75e77ed

+5 -3
+5 -3
drivers/media/platform/pxa_camera.c
··· 2394 2394 pcdev->res = res; 2395 2395 2396 2396 pcdev->pdata = pdev->dev.platform_data; 2397 - if (pdev->dev.of_node && !pcdev->pdata) { 2398 - err = pxa_camera_pdata_from_dt(&pdev->dev, pcdev, &pcdev->asd); 2399 - } else { 2397 + if (pcdev->pdata) { 2400 2398 pcdev->platform_flags = pcdev->pdata->flags; 2401 2399 pcdev->mclk = pcdev->pdata->mclk_10khz * 10000; 2402 2400 pcdev->asd.match_type = V4L2_ASYNC_MATCH_I2C; 2403 2401 pcdev->asd.match.i2c.adapter_id = 2404 2402 pcdev->pdata->sensor_i2c_adapter_id; 2405 2403 pcdev->asd.match.i2c.address = pcdev->pdata->sensor_i2c_address; 2404 + } else if (pdev->dev.of_node) { 2405 + err = pxa_camera_pdata_from_dt(&pdev->dev, pcdev, &pcdev->asd); 2406 + } else { 2407 + return -ENODEV; 2406 2408 } 2407 2409 if (err < 0) 2408 2410 return err;