* [bug report] media: atomisp: place all gpio parsing together
@ 2020-07-21 10:49 dan.carpenter
0 siblings, 0 replies; only message in thread
From: dan.carpenter @ 2020-07-21 10:49 UTC (permalink / raw)
To: mchehab+huawei; +Cc: Sakari Ailus
Hello Mauro Carvalho Chehab,
This is a semi-automatic email about new static checker warnings.
The patch 79317baaaea2: "media: atomisp: place all gpio parsing
together" from Jun 21, 2020, leads to the following Smatch complaint:
drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c:830 gmin_v1p8_ctrl()
warn: variable dereferenced before check 'gs' (see line 820)
drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
814 static int gmin_v1p8_ctrl(struct v4l2_subdev *subdev, int on)
815 {
816 struct gmin_subdev *gs = find_gmin_subdev(subdev);
817 int ret;
818 int value;
819
820 if (gs->v1p8_gpio >= 0) {
^^
New dereference.
821 pr_info("atomisp_gmin_platform: 1.8v power on GPIO %d\n",
822 gs->v1p8_gpio);
823 ret = gpio_request(gs->v1p8_gpio, "camera_v1p8_en");
824 if (!ret)
825 ret = gpio_direction_output(gs->v1p8_gpio, 0);
826 if (ret)
827 pr_err("V1P8 GPIO initialization failed\n");
828 }
829
830 if (!gs || gs->v1p8_on == on)
^^
Too late.
831 return 0;
832 gs->v1p8_on = on;
833
834 if (gs->v1p8_gpio >= 0)
835 gpio_set_value(gs->v1p8_gpio, on);
Could we combine this with the first "if (gs->v1p8_gpio >= 0) {"
condition? This code is looking pretty subtle so maybe not.
836
837 if (gs->v1p8_reg) {
838 regulator_set_voltage(gs->v1p8_reg, 1800000, 1800000);
839 if (on)
840 return regulator_enable(gs->v1p8_reg);
841 else
842 return regulator_disable(gs->v1p8_reg);
843 }
844
regards,
dan carpenter
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-07-21 10:52 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-07-21 10:49 [bug report] media: atomisp: place all gpio parsing together dan.carpenter
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.