Message ID | 1523435622-4329-1-git-send-email-baijiaju1990@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Jia-Ju, Thank you for the patch. On Wednesday, 11 April 2018 11:33:42 EEST Jia-Ju Bai wrote: > adv7511_probe() is never called in atomic context. > This function is only set as ".probe" in struct i2c_driver. > > Despite never getting called from atomic context, adv7511_probe() > calls mdelay() to busily wait. > This is not necessary and can be replaced with usleep_range() to > avoid busy waiting. > > This is found by a static analysis tool named DCNS written by myself. > And I also manually check it. Nice work ! Is the tool open-source ? > Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> > --- > drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c index b2431ae..2cf7fa1 > 100644 > --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c > @@ -1054,7 +1054,7 @@ static int adv7511_probe(struct i2c_client *i2c, const > struct i2c_device_id *id) } > > if (adv7511->gpio_pd) { > - mdelay(5); > + usleep_range(5000, 6000); > gpiod_set_value_cansleep(adv7511->gpio_pd, 0); > } The patch looks good to me. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
On Friday 27 April 2018 03:46 AM, Laurent Pinchart wrote: > Hi Jia-Ju, > > Thank you for the patch. > > On Wednesday, 11 April 2018 11:33:42 EEST Jia-Ju Bai wrote: >> adv7511_probe() is never called in atomic context. >> This function is only set as ".probe" in struct i2c_driver. >> >> Despite never getting called from atomic context, adv7511_probe() >> calls mdelay() to busily wait. >> This is not necessary and can be replaced with usleep_range() to >> avoid busy waiting. >> >> This is found by a static analysis tool named DCNS written by myself. >> And I also manually check it. > > Nice work ! Is the tool open-source ? > >> Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> >> --- >> drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c >> b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c index b2431ae..2cf7fa1 >> 100644 >> --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c >> +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c >> @@ -1054,7 +1054,7 @@ static int adv7511_probe(struct i2c_client *i2c, const >> struct i2c_device_id *id) } >> >> if (adv7511->gpio_pd) { >> - mdelay(5); >> + usleep_range(5000, 6000); >> gpiod_set_value_cansleep(adv7511->gpio_pd, 0); >> } > > The patch looks good to me. > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> queued to drm-misc-next Thanks, Archit
diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c index b2431ae..2cf7fa1 100644 --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c @@ -1054,7 +1054,7 @@ static int adv7511_probe(struct i2c_client *i2c, const struct i2c_device_id *id) } if (adv7511->gpio_pd) { - mdelay(5); + usleep_range(5000, 6000); gpiod_set_value_cansleep(adv7511->gpio_pd, 0); }
adv7511_probe() is never called in atomic context. This function is only set as ".probe" in struct i2c_driver. Despite never getting called from atomic context, adv7511_probe() calls mdelay() to busily wait. This is not necessary and can be replaced with usleep_range() to avoid busy waiting. This is found by a static analysis tool named DCNS written by myself. And I also manually check it. Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> --- drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)