* [PATCH 0/8] Fix various smatch warnings/errors @ 2019-11-03 11:23 Hans Verkuil 2019-11-03 11:23 ` [PATCH 1/8] am437x: fix smatch warning Hans Verkuil ` (8 more replies) 0 siblings, 9 replies; 16+ messages in thread From: Hans Verkuil @ 2019-11-03 11:23 UTC (permalink / raw) To: linux-media Various fixes for smatch warnings/errors. There are still two remaining for vivid, but those two are a bit more complicated. Regards, Hans Hans Verkuil (8): am437x: fix smatch warning smiapp: smiapp_start_streaming(): replace return by goto mtk-vpu: fix two smatch warnings rc/ite-cir: fix smatch warning em28xx: fix two smatch warnings ti-vpe: fix smatch error ov6650: fix smatch warning mantis: fix two smatch errors drivers/media/i2c/ov6650.c | 2 +- drivers/media/i2c/smiapp/smiapp-core.c | 4 ++-- drivers/media/pci/mantis/hopper_cards.c | 4 +--- drivers/media/pci/mantis/mantis_cards.c | 4 +--- drivers/media/platform/am437x/am437x-vpfe.c | 1 - drivers/media/platform/mtk-vpu/mtk_vpu.c | 4 ++-- drivers/media/platform/ti-vpe/vpdma.c | 2 +- drivers/media/rc/ite-cir.c | 2 +- drivers/media/usb/em28xx/em28xx-i2c.c | 4 ++-- 9 files changed, 11 insertions(+), 16 deletions(-) -- 2.23.0 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/8] am437x: fix smatch warning 2019-11-03 11:23 [PATCH 0/8] Fix various smatch warnings/errors Hans Verkuil @ 2019-11-03 11:23 ` Hans Verkuil 2019-11-04 17:40 ` Benoit Parrot 2019-11-03 11:23 ` [PATCH 2/8] smiapp: smiapp_start_streaming(): replace return by goto Hans Verkuil ` (7 subsequent siblings) 8 siblings, 1 reply; 16+ messages in thread From: Hans Verkuil @ 2019-11-03 11:23 UTC (permalink / raw) To: linux-media; +Cc: Hans Verkuil, Benoit Parrot Fixes this warning: drivers/media/platform/am437x/am437x-vpfe.c:288 vpfe_ccdc_validate_param() warn: unsigned 'ccdcparam->alaw.gamma_wd' is never less than zero. by dropping the gamma_wd < VPFE_CCDC_GAMMA_BITS_15_6 check since VPFE_CCDC_GAMMA_BITS_15_6 is 0. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Cc: Benoit Parrot <bparrot@ti.com> --- drivers/media/platform/am437x/am437x-vpfe.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/media/platform/am437x/am437x-vpfe.c b/drivers/media/platform/am437x/am437x-vpfe.c index 447610b67db4..09104304bd06 100644 --- a/drivers/media/platform/am437x/am437x-vpfe.c +++ b/drivers/media/platform/am437x/am437x-vpfe.c @@ -285,7 +285,6 @@ vpfe_ccdc_validate_param(struct vpfe_ccdc *ccdc, max_data = ccdc_data_size_max_bit(ccdcparam->data_sz); if (ccdcparam->alaw.gamma_wd > VPFE_CCDC_GAMMA_BITS_09_0 || - ccdcparam->alaw.gamma_wd < VPFE_CCDC_GAMMA_BITS_15_6 || max_gamma > max_data) { vpfe_dbg(1, vpfe, "Invalid data line select\n"); return -EINVAL; -- 2.23.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 1/8] am437x: fix smatch warning 2019-11-03 11:23 ` [PATCH 1/8] am437x: fix smatch warning Hans Verkuil @ 2019-11-04 17:40 ` Benoit Parrot 0 siblings, 0 replies; 16+ messages in thread From: Benoit Parrot @ 2019-11-04 17:40 UTC (permalink / raw) To: Hans Verkuil; +Cc: linux-media Hans Verkuil <hverkuil-cisco@xs4all.nl> wrote on Sun [2019-Nov-03 12:23:31 +0100]: > Fixes this warning: > > drivers/media/platform/am437x/am437x-vpfe.c:288 vpfe_ccdc_validate_param() warn: unsigned 'ccdcparam->alaw.gamma_wd' is never less than zero. > > by dropping the gamma_wd < VPFE_CCDC_GAMMA_BITS_15_6 check > since VPFE_CCDC_GAMMA_BITS_15_6 is 0. > > Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> > Cc: Benoit Parrot <bparrot@ti.com> > --- > drivers/media/platform/am437x/am437x-vpfe.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/media/platform/am437x/am437x-vpfe.c b/drivers/media/platform/am437x/am437x-vpfe.c > index 447610b67db4..09104304bd06 100644 > --- a/drivers/media/platform/am437x/am437x-vpfe.c > +++ b/drivers/media/platform/am437x/am437x-vpfe.c > @@ -285,7 +285,6 @@ vpfe_ccdc_validate_param(struct vpfe_ccdc *ccdc, > max_data = ccdc_data_size_max_bit(ccdcparam->data_sz); > > if (ccdcparam->alaw.gamma_wd > VPFE_CCDC_GAMMA_BITS_09_0 || > - ccdcparam->alaw.gamma_wd < VPFE_CCDC_GAMMA_BITS_15_6 || > max_gamma > max_data) { Reviewed-by: Benoit Parrot <bparrot@ti.com> > vpfe_dbg(1, vpfe, "Invalid data line select\n"); > return -EINVAL; > -- > 2.23.0 > ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 2/8] smiapp: smiapp_start_streaming(): replace return by goto 2019-11-03 11:23 [PATCH 0/8] Fix various smatch warnings/errors Hans Verkuil 2019-11-03 11:23 ` [PATCH 1/8] am437x: fix smatch warning Hans Verkuil @ 2019-11-03 11:23 ` Hans Verkuil 2019-11-04 8:12 ` Sakari Ailus 2019-11-03 11:23 ` [PATCH 3/8] mtk-vpu: fix two smatch warnings Hans Verkuil ` (6 subsequent siblings) 8 siblings, 1 reply; 16+ messages in thread From: Hans Verkuil @ 2019-11-03 11:23 UTC (permalink / raw) To: linux-media; +Cc: Hans Verkuil, Sakari Ailus There were still two returns in smiapp_start_streaming() that should have been a goto to ensure mutex_unload was called before returning. This fixes this smatch warning: drivers/media/i2c/smiapp/smiapp-core.c:1483 smiapp_start_streaming() warn: inconsistent returns 'mutex:&sensor->mutex'. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Cc: Sakari Ailus <sakari.ailus@linux.intel.com> --- drivers/media/i2c/smiapp/smiapp-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/smiapp/smiapp-core.c b/drivers/media/i2c/smiapp/smiapp-core.c index 77dfce7c3be9..84f9771b5fed 100644 --- a/drivers/media/i2c/smiapp/smiapp-core.c +++ b/drivers/media/i2c/smiapp/smiapp-core.c @@ -1362,13 +1362,13 @@ static int smiapp_start_streaming(struct smiapp_sensor *sensor) rval = smiapp_write( sensor, SMIAPP_REG_U8_BINNING_TYPE, binning_type); if (rval < 0) - return rval; + goto out; binning_mode = 1; } rval = smiapp_write(sensor, SMIAPP_REG_U8_BINNING_MODE, binning_mode); if (rval < 0) - return rval; + goto out; /* Set up PLL */ rval = smiapp_pll_configure(sensor); -- 2.23.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 2/8] smiapp: smiapp_start_streaming(): replace return by goto 2019-11-03 11:23 ` [PATCH 2/8] smiapp: smiapp_start_streaming(): replace return by goto Hans Verkuil @ 2019-11-04 8:12 ` Sakari Ailus 2019-11-04 8:17 ` Hans Verkuil 0 siblings, 1 reply; 16+ messages in thread From: Sakari Ailus @ 2019-11-04 8:12 UTC (permalink / raw) To: Hans Verkuil; +Cc: linux-media Hi Hans, On Sun, Nov 03, 2019 at 12:23:32PM +0100, Hans Verkuil wrote: > There were still two returns in smiapp_start_streaming() that should > have been a goto to ensure mutex_unload was called before returning. > > This fixes this smatch warning: > > drivers/media/i2c/smiapp/smiapp-core.c:1483 smiapp_start_streaming() warn: inconsistent returns 'mutex:&sensor->mutex'. > > Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> > Cc: Sakari Ailus <sakari.ailus@linux.intel.com> Thanks for the patch. Dan Carpenter submitted one with equivalent content, and it's in my pull request to Mauro: <URL:https://patchwork.linuxtv.org/patch/59698/> -- Regards, Sakari Ailus sakari.ailus@linux.intel.com ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/8] smiapp: smiapp_start_streaming(): replace return by goto 2019-11-04 8:12 ` Sakari Ailus @ 2019-11-04 8:17 ` Hans Verkuil 0 siblings, 0 replies; 16+ messages in thread From: Hans Verkuil @ 2019-11-04 8:17 UTC (permalink / raw) To: Sakari Ailus; +Cc: linux-media On 11/4/19 9:12 AM, Sakari Ailus wrote: > Hi Hans, > > On Sun, Nov 03, 2019 at 12:23:32PM +0100, Hans Verkuil wrote: >> There were still two returns in smiapp_start_streaming() that should >> have been a goto to ensure mutex_unload was called before returning. >> >> This fixes this smatch warning: >> >> drivers/media/i2c/smiapp/smiapp-core.c:1483 smiapp_start_streaming() warn: inconsistent returns 'mutex:&sensor->mutex'. >> >> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> >> Cc: Sakari Ailus <sakari.ailus@linux.intel.com> > > Thanks for the patch. > > Dan Carpenter submitted one with equivalent content, and it's in my pull > request to Mauro: > > <URL:https://patchwork.linuxtv.org/patch/59698/> > Thanks for the info, I've dropped this patch from my series. Regards, Hans ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 3/8] mtk-vpu: fix two smatch warnings 2019-11-03 11:23 [PATCH 0/8] Fix various smatch warnings/errors Hans Verkuil 2019-11-03 11:23 ` [PATCH 1/8] am437x: fix smatch warning Hans Verkuil 2019-11-03 11:23 ` [PATCH 2/8] smiapp: smiapp_start_streaming(): replace return by goto Hans Verkuil @ 2019-11-03 11:23 ` Hans Verkuil 2019-11-03 11:23 ` [PATCH 4/8] rc/ite-cir: fix smatch warning Hans Verkuil ` (5 subsequent siblings) 8 siblings, 0 replies; 16+ messages in thread From: Hans Verkuil @ 2019-11-03 11:23 UTC (permalink / raw) To: linux-media; +Cc: Hans Verkuil Drop the "id >= 0" test in two conditions to fix these warnings: drivers/media/platform/mtk-vpu/mtk_vpu.c:276 vpu_ipi_register() warn: always true condition '(id >= 0) => (0-u32max >= 0)' drivers/media/platform/mtk-vpu/mtk_vpu.c:401 vpu_wdt_reg_handler() warn: always true condition '(id >= 0) => (0-u32max >= 0)' Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> --- drivers/media/platform/mtk-vpu/mtk_vpu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/mtk-vpu/mtk_vpu.c b/drivers/media/platform/mtk-vpu/mtk_vpu.c index cc2ff40d060d..a768707abb94 100644 --- a/drivers/media/platform/mtk-vpu/mtk_vpu.c +++ b/drivers/media/platform/mtk-vpu/mtk_vpu.c @@ -273,7 +273,7 @@ int vpu_ipi_register(struct platform_device *pdev, return -EPROBE_DEFER; } - if (id >= 0 && id < IPI_MAX && handler) { + if (id < IPI_MAX && handler) { ipi_desc = vpu->ipi_desc; ipi_desc[id].name = name; ipi_desc[id].handler = handler; @@ -398,7 +398,7 @@ int vpu_wdt_reg_handler(struct platform_device *pdev, handler = vpu->wdt.handler; - if (id >= 0 && id < VPU_RST_MAX && wdt_reset) { + if (id < VPU_RST_MAX && wdt_reset) { dev_dbg(vpu->dev, "wdt register id %d\n", id); mutex_lock(&vpu->vpu_mutex); handler[id].reset_func = wdt_reset; -- 2.23.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 4/8] rc/ite-cir: fix smatch warning 2019-11-03 11:23 [PATCH 0/8] Fix various smatch warnings/errors Hans Verkuil ` (2 preceding siblings ...) 2019-11-03 11:23 ` [PATCH 3/8] mtk-vpu: fix two smatch warnings Hans Verkuil @ 2019-11-03 11:23 ` Hans Verkuil 2019-11-03 22:02 ` Sean Young 2019-11-03 11:23 ` [PATCH 5/8] em28xx: fix two smatch warnings Hans Verkuil ` (4 subsequent siblings) 8 siblings, 1 reply; 16+ messages in thread From: Hans Verkuil @ 2019-11-03 11:23 UTC (permalink / raw) To: linux-media; +Cc: Hans Verkuil, Sean Young Use sizeof instead of ARRAY_SIZE to fix this smatch warning: drivers/media/rc/ite-cir.c:385 ite_tx_ir() warn: calling memset(x, y, ARRAY_SIZE()); Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Cc: Sean Young <sean@mess.org> --- drivers/media/rc/ite-cir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c index 3ab6cec0dc3b..07667c04c1d2 100644 --- a/drivers/media/rc/ite-cir.c +++ b/drivers/media/rc/ite-cir.c @@ -382,7 +382,7 @@ static int ite_tx_ir(struct rc_dev *rcdev, unsigned *txbuf, unsigned n) ite_dbg("%s called", __func__); /* clear the array just in case */ - memset(last_sent, 0, ARRAY_SIZE(last_sent)); + memset(last_sent, 0, sizeof(last_sent)); spin_lock_irqsave(&dev->lock, flags); -- 2.23.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 4/8] rc/ite-cir: fix smatch warning 2019-11-03 11:23 ` [PATCH 4/8] rc/ite-cir: fix smatch warning Hans Verkuil @ 2019-11-03 22:02 ` Sean Young 0 siblings, 0 replies; 16+ messages in thread From: Sean Young @ 2019-11-03 22:02 UTC (permalink / raw) To: Hans Verkuil; +Cc: linux-media On Sun, Nov 03, 2019 at 12:23:34PM +0100, Hans Verkuil wrote: > Use sizeof instead of ARRAY_SIZE to fix this smatch warning: > > drivers/media/rc/ite-cir.c:385 ite_tx_ir() warn: calling memset(x, y, ARRAY_SIZE()); > > Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> > Cc: Sean Young <sean@mess.org> Acked-by: Sean Young <sean@mess.org> Thanks, Sean > --- > drivers/media/rc/ite-cir.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c > index 3ab6cec0dc3b..07667c04c1d2 100644 > --- a/drivers/media/rc/ite-cir.c > +++ b/drivers/media/rc/ite-cir.c > @@ -382,7 +382,7 @@ static int ite_tx_ir(struct rc_dev *rcdev, unsigned *txbuf, unsigned n) > ite_dbg("%s called", __func__); > > /* clear the array just in case */ > - memset(last_sent, 0, ARRAY_SIZE(last_sent)); > + memset(last_sent, 0, sizeof(last_sent)); > > spin_lock_irqsave(&dev->lock, flags); > > -- > 2.23.0 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 5/8] em28xx: fix two smatch warnings 2019-11-03 11:23 [PATCH 0/8] Fix various smatch warnings/errors Hans Verkuil ` (3 preceding siblings ...) 2019-11-03 11:23 ` [PATCH 4/8] rc/ite-cir: fix smatch warning Hans Verkuil @ 2019-11-03 11:23 ` Hans Verkuil 2019-11-03 11:23 ` [PATCH 6/8] ti-vpe: fix smatch error Hans Verkuil ` (3 subsequent siblings) 8 siblings, 0 replies; 16+ messages in thread From: Hans Verkuil @ 2019-11-03 11:23 UTC (permalink / raw) To: linux-media; +Cc: Hans Verkuil Use sizeof instead of ARRAY_SIZE to fix this smatch warning: drivers/media/usb/em28xx/em28xx-i2c.c:952 em28xx_do_i2c_scan() warn: calling memset(x, y, ARRAY_SIZE()); Do the same for the em28xx_hash_mem() call in the same function. smatch didn't pick that up, but there too it should use sizeof instead of ARRAY_SIZE. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> --- drivers/media/usb/em28xx/em28xx-i2c.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/usb/em28xx/em28xx-i2c.c b/drivers/media/usb/em28xx/em28xx-i2c.c index a3155ec196cc..592b98b3643a 100644 --- a/drivers/media/usb/em28xx/em28xx-i2c.c +++ b/drivers/media/usb/em28xx/em28xx-i2c.c @@ -949,7 +949,7 @@ void em28xx_do_i2c_scan(struct em28xx *dev, unsigned int bus) unsigned char buf; int i, rc; - memset(i2c_devicelist, 0, ARRAY_SIZE(i2c_devicelist)); + memset(i2c_devicelist, 0, sizeof(i2c_devicelist)); for (i = 0; i < ARRAY_SIZE(i2c_devs); i++) { dev->i2c_client[bus].addr = i; @@ -964,7 +964,7 @@ void em28xx_do_i2c_scan(struct em28xx *dev, unsigned int bus) if (bus == dev->def_i2c_bus) dev->i2c_hash = em28xx_hash_mem(i2c_devicelist, - ARRAY_SIZE(i2c_devicelist), 32); + sizeof(i2c_devicelist), 32); } /* -- 2.23.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 6/8] ti-vpe: fix smatch error 2019-11-03 11:23 [PATCH 0/8] Fix various smatch warnings/errors Hans Verkuil ` (4 preceding siblings ...) 2019-11-03 11:23 ` [PATCH 5/8] em28xx: fix two smatch warnings Hans Verkuil @ 2019-11-03 11:23 ` Hans Verkuil 2019-11-04 17:40 ` Benoit Parrot 2019-11-03 11:23 ` [PATCH 7/8] ov6650: fix smatch warning Hans Verkuil ` (2 subsequent siblings) 8 siblings, 1 reply; 16+ messages in thread From: Hans Verkuil @ 2019-11-03 11:23 UTC (permalink / raw) To: linux-media; +Cc: Hans Verkuil, Benoit Parrot This patch fixes this error: drivers/media/platform/ti-vpe/vpdma.c:767 dump_dtd() error: '%pad' expects argument of type 'dma_addr_t*', argument 2 has type 'uint*' dtd->start_addr is a u32, so no need for %pad. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Cc: Benoit Parrot <bparrot@ti.com> --- drivers/media/platform/ti-vpe/vpdma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/ti-vpe/vpdma.c b/drivers/media/platform/ti-vpe/vpdma.c index 817d287c8138..2e5148ae7a0f 100644 --- a/drivers/media/platform/ti-vpe/vpdma.c +++ b/drivers/media/platform/ti-vpe/vpdma.c @@ -764,7 +764,7 @@ static void dump_dtd(struct vpdma_dtd *dtd) pr_debug("word1: line_length = %d, xfer_height = %d\n", dtd_get_line_length(dtd), dtd_get_xfer_height(dtd)); - pr_debug("word2: start_addr = %pad\n", &dtd->start_addr); + pr_debug("word2: start_addr = %x\n", dtd->start_addr); pr_debug("word3: pkt_type = %d, mode = %d, dir = %d, chan = %d, pri = %d, next_chan = %d\n", dtd_get_pkt_type(dtd), -- 2.23.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 6/8] ti-vpe: fix smatch error 2019-11-03 11:23 ` [PATCH 6/8] ti-vpe: fix smatch error Hans Verkuil @ 2019-11-04 17:40 ` Benoit Parrot 0 siblings, 0 replies; 16+ messages in thread From: Benoit Parrot @ 2019-11-04 17:40 UTC (permalink / raw) To: Hans Verkuil; +Cc: linux-media Hans Verkuil <hverkuil-cisco@xs4all.nl> wrote on Sun [2019-Nov-03 12:23:36 +0100]: > This patch fixes this error: > > drivers/media/platform/ti-vpe/vpdma.c:767 dump_dtd() error: '%pad' expects argument of type 'dma_addr_t*', argument 2 has type 'uint*' > > dtd->start_addr is a u32, so no need for %pad. > > Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> > Cc: Benoit Parrot <bparrot@ti.com> > --- > drivers/media/platform/ti-vpe/vpdma.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/platform/ti-vpe/vpdma.c b/drivers/media/platform/ti-vpe/vpdma.c > index 817d287c8138..2e5148ae7a0f 100644 > --- a/drivers/media/platform/ti-vpe/vpdma.c > +++ b/drivers/media/platform/ti-vpe/vpdma.c > @@ -764,7 +764,7 @@ static void dump_dtd(struct vpdma_dtd *dtd) > pr_debug("word1: line_length = %d, xfer_height = %d\n", > dtd_get_line_length(dtd), dtd_get_xfer_height(dtd)); > > - pr_debug("word2: start_addr = %pad\n", &dtd->start_addr); > + pr_debug("word2: start_addr = %x\n", dtd->start_addr); Reviewed-by: Benoit Parrot <bparrot@ti.com> > > pr_debug("word3: pkt_type = %d, mode = %d, dir = %d, chan = %d, pri = %d, next_chan = %d\n", > dtd_get_pkt_type(dtd), > -- > 2.23.0 > ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 7/8] ov6650: fix smatch warning 2019-11-03 11:23 [PATCH 0/8] Fix various smatch warnings/errors Hans Verkuil ` (5 preceding siblings ...) 2019-11-03 11:23 ` [PATCH 6/8] ti-vpe: fix smatch error Hans Verkuil @ 2019-11-03 11:23 ` Hans Verkuil 2019-11-04 8:13 ` Sakari Ailus 2019-11-03 11:23 ` [PATCH 8/8] mantis: fix two smatch errors Hans Verkuil 2019-11-03 14:01 ` [PATCH 9/8] vivid: add vivid_create_queue() helper Hans Verkuil 8 siblings, 1 reply; 16+ messages in thread From: Hans Verkuil @ 2019-11-03 11:23 UTC (permalink / raw) To: linux-media; +Cc: Hans Verkuil, Sakari Ailus Initialize ret to 0 to fix this smatch error: drivers/media/i2c/ov6650.c:853 ov6650_video_probe() error: uninitialized symbol 'ret'. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Cc: Sakari Ailus <sakari.ailus@linux.intel.com> --- drivers/media/i2c/ov6650.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/i2c/ov6650.c b/drivers/media/i2c/ov6650.c index 3c8f50f8619f..91906b94f978 100644 --- a/drivers/media/i2c/ov6650.c +++ b/drivers/media/i2c/ov6650.c @@ -819,7 +819,7 @@ static int ov6650_video_probe(struct v4l2_subdev *sd) const struct ov6650_xclk *xclk = NULL; unsigned long rate; u8 pidh, pidl, midh, midl; - int i, ret; + int i, ret = 0; priv->clk = v4l2_clk_get(&client->dev, NULL); if (IS_ERR(priv->clk)) { -- 2.23.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 7/8] ov6650: fix smatch warning 2019-11-03 11:23 ` [PATCH 7/8] ov6650: fix smatch warning Hans Verkuil @ 2019-11-04 8:13 ` Sakari Ailus 0 siblings, 0 replies; 16+ messages in thread From: Sakari Ailus @ 2019-11-04 8:13 UTC (permalink / raw) To: Hans Verkuil; +Cc: linux-media On Sun, Nov 03, 2019 at 12:23:37PM +0100, Hans Verkuil wrote: > Initialize ret to 0 to fix this smatch error: > > drivers/media/i2c/ov6650.c:853 ov6650_video_probe() error: uninitialized symbol 'ret'. > > Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> > Cc: Sakari Ailus <sakari.ailus@linux.intel.com> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> -- Sakari Ailus sakari.ailus@linux.intel.com ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 8/8] mantis: fix two smatch errors 2019-11-03 11:23 [PATCH 0/8] Fix various smatch warnings/errors Hans Verkuil ` (6 preceding siblings ...) 2019-11-03 11:23 ` [PATCH 7/8] ov6650: fix smatch warning Hans Verkuil @ 2019-11-03 11:23 ` Hans Verkuil 2019-11-03 14:01 ` [PATCH 9/8] vivid: add vivid_create_queue() helper Hans Verkuil 8 siblings, 0 replies; 16+ messages in thread From: Hans Verkuil @ 2019-11-03 11:23 UTC (permalink / raw) To: linux-media; +Cc: Hans Verkuil Drop two dprintk's that relied on a non-NULL mantis pointer when it was in fact a NULL pointer. Fixes: drivers/media/pci/mantis/mantis_cards.c:73 mantis_irq_handler() error: we previously assumed 'mantis' could be null (see line 72) drivers/media/pci/mantis/hopper_cards.c:64 hopper_irq_handler() error: we previously assumed 'mantis' could be null (see line 63) Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> --- drivers/media/pci/mantis/hopper_cards.c | 4 +--- drivers/media/pci/mantis/mantis_cards.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/media/pci/mantis/hopper_cards.c b/drivers/media/pci/mantis/hopper_cards.c index 67aebe759232..c0bd5d7e148b 100644 --- a/drivers/media/pci/mantis/hopper_cards.c +++ b/drivers/media/pci/mantis/hopper_cards.c @@ -60,10 +60,8 @@ static irqreturn_t hopper_irq_handler(int irq, void *dev_id) struct mantis_ca *ca; mantis = (struct mantis_pci *) dev_id; - if (unlikely(!mantis)) { - dprintk(MANTIS_ERROR, 1, "Mantis == NULL"); + if (unlikely(!mantis)) return IRQ_NONE; - } ca = mantis->mantis_ca; stat = mmread(MANTIS_INT_STAT); diff --git a/drivers/media/pci/mantis/mantis_cards.c b/drivers/media/pci/mantis/mantis_cards.c index deadd0b92233..906e4500d87d 100644 --- a/drivers/media/pci/mantis/mantis_cards.c +++ b/drivers/media/pci/mantis/mantis_cards.c @@ -69,10 +69,8 @@ static irqreturn_t mantis_irq_handler(int irq, void *dev_id) struct mantis_ca *ca; mantis = (struct mantis_pci *) dev_id; - if (unlikely(mantis == NULL)) { - dprintk(MANTIS_ERROR, 1, "Mantis == NULL"); + if (unlikely(!mantis)) return IRQ_NONE; - } ca = mantis->mantis_ca; stat = mmread(MANTIS_INT_STAT); -- 2.23.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 9/8] vivid: add vivid_create_queue() helper 2019-11-03 11:23 [PATCH 0/8] Fix various smatch warnings/errors Hans Verkuil ` (7 preceding siblings ...) 2019-11-03 11:23 ` [PATCH 8/8] mantis: fix two smatch errors Hans Verkuil @ 2019-11-03 14:01 ` Hans Verkuil 8 siblings, 0 replies; 16+ messages in thread From: Hans Verkuil @ 2019-11-03 14:01 UTC (permalink / raw) To: linux-media Refactor some of the vivid_create_instance code by using a new vivid_create_queue() helper function. Also add some sanity checks for the node_types vs input/output_types module options. This patch resolves these two smatch parse errors: drivers/media/platform/vivid/vivid-core.c:1679 vivid_create_instance() parse error: OOM: 3002600Kb sm_state_count = 6160113 drivers/media/platform/vivid/vivid-core.c: /home/hans/work/build/media-git/drivers/media/platform/vivid/vivid-core.c:1679 vivid_create_instance() parse error: __split_smt: function too hairy. Giving up after 33 seconds Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> --- drivers/media/platform/vivid/vivid-cec.c | 7 +- drivers/media/platform/vivid/vivid-core.c | 257 ++++++++++------------ drivers/media/platform/vivid/vivid-core.h | 1 + 3 files changed, 116 insertions(+), 149 deletions(-) diff --git a/drivers/media/platform/vivid/vivid-cec.c b/drivers/media/platform/vivid/vivid-cec.c index 4d822dbed972..4d2413e87730 100644 --- a/drivers/media/platform/vivid/vivid-cec.c +++ b/drivers/media/platform/vivid/vivid-cec.c @@ -276,12 +276,11 @@ struct cec_adapter *vivid_cec_alloc_adap(struct vivid_dev *dev, unsigned int idx, bool is_source) { - char name[sizeof(dev->vid_out_dev.name) + 2]; u32 caps = CEC_CAP_DEFAULTS | CEC_CAP_MONITOR_ALL | CEC_CAP_MONITOR_PIN; + char name[32]; - snprintf(name, sizeof(name), "%s%d", - is_source ? dev->vid_out_dev.name : dev->vid_cap_dev.name, - idx); + snprintf(name, sizeof(name), "vivid-%03d-vid-%s%d", + dev->inst, is_source ? "out" : "cap", idx); return cec_allocate_adapter(&vivid_cec_adap_ops, dev, name, caps, 1); } diff --git a/drivers/media/platform/vivid/vivid-core.c b/drivers/media/platform/vivid/vivid-core.c index dadfc59c92c5..4d4d6dd01784 100644 --- a/drivers/media/platform/vivid/vivid-core.c +++ b/drivers/media/platform/vivid/vivid-core.c @@ -677,14 +677,44 @@ static const struct media_device_ops vivid_media_ops = { }; #endif +static int vivid_create_queue(struct vivid_dev *dev, + struct vb2_queue *q, + u32 buf_type, + unsigned int min_buffers_needed, + const struct vb2_ops *ops) +{ + if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE && dev->multiplanar) + buf_type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; + else if (buf_type == V4L2_BUF_TYPE_VIDEO_OUTPUT && dev->multiplanar) + buf_type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; + else if (buf_type == V4L2_BUF_TYPE_VBI_CAPTURE && !dev->has_raw_vbi_cap) + buf_type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; + else if (buf_type == V4L2_BUF_TYPE_VBI_OUTPUT && !dev->has_raw_vbi_out) + buf_type = V4L2_BUF_TYPE_SLICED_VBI_OUTPUT; + + q->type = buf_type; + q->io_modes = VB2_MMAP | VB2_DMABUF; + q->io_modes |= V4L2_TYPE_IS_OUTPUT(buf_type) ? VB2_WRITE : VB2_READ; + if (allocators[dev->inst] != 1) + q->io_modes |= VB2_USERPTR; + q->drv_priv = dev; + q->buf_struct_size = sizeof(struct vivid_buffer); + q->ops = ops; + q->mem_ops = allocators[dev->inst] == 1 ? &vb2_dma_contig_memops : + &vb2_vmalloc_memops; + q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; + q->min_buffers_needed = min_buffers_needed; + q->lock = &dev->mutex; + q->dev = dev->v4l2_dev.dev; + q->supports_requests = true; + + return vb2_queue_init(q); +} + static int vivid_create_instance(struct platform_device *pdev, int inst) { static const struct v4l2_dv_timings def_dv_timings = V4L2_DV_BT_CEA_1280X720P60; - static const struct vb2_mem_ops * const vivid_mem_ops[2] = { - &vb2_vmalloc_memops, - &vb2_dma_contig_memops, - }; unsigned in_type_counter[4] = { 0, 0, 0, 0 }; unsigned out_type_counter[4] = { 0, 0, 0, 0 }; int ccs_cap = ccs_cap_mode[inst]; @@ -693,9 +723,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) bool has_modulator; struct vivid_dev *dev; struct video_device *vfd; - struct vb2_queue *q; unsigned node_type = node_types[inst]; - unsigned int allocator = allocators[inst]; v4l2_std_id tvnorms_cap = 0, tvnorms_out = 0; int ret; int i; @@ -790,6 +818,25 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) dev->has_vbi_cap = dev->has_raw_vbi_cap | dev->has_sliced_vbi_cap; } + /* do we create a meta capture device */ + dev->has_meta_cap = node_type & 0x20000; + + /* sanity checks */ + if ((in_type_counter[WEBCAM] || in_type_counter[HDMI]) && + !dev->has_vid_cap && !dev->has_meta_cap) { + v4l2_warn(&dev->v4l2_dev, + "Webcam or HDMI input without video or metadata nodes\n"); + kfree(dev); + return -EINVAL; + } + if ((in_type_counter[TV] || in_type_counter[SVID]) && + !dev->has_vid_cap && !dev->has_vbi_cap && !dev->has_meta_cap) { + v4l2_warn(&dev->v4l2_dev, + "TV or S-Video input without video, VBI or metadata nodes\n"); + kfree(dev); + return -EINVAL; + } + /* do we create a video output device? */ dev->has_vid_out = node_type & 0x0100; @@ -800,6 +847,24 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) dev->has_vbi_out = dev->has_raw_vbi_out | dev->has_sliced_vbi_out; } + /* do we create a metadata output device */ + dev->has_meta_out = node_type & 0x40000; + + /* sanity checks */ + if (out_type_counter[SVID] && + !dev->has_vid_out && !dev->has_vbi_out && !dev->has_meta_out) { + v4l2_warn(&dev->v4l2_dev, + "S-Video output without video, VBI or metadata nodes\n"); + kfree(dev); + return -EINVAL; + } + if (out_type_counter[HDMI] && !dev->has_vid_out && !dev->has_meta_out) { + v4l2_warn(&dev->v4l2_dev, + "HDMI output without video or metadata nodes\n"); + kfree(dev); + return -EINVAL; + } + /* do we create a radio receiver device? */ dev->has_radio_rx = node_type & 0x0010; @@ -809,6 +874,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) /* do we create a software defined radio capture device? */ dev->has_sdr_cap = node_type & 0x0020; + /* do we have a TV tuner? */ + dev->has_tv_tuner = in_type_counter[TV]; + /* do we have a tuner? */ has_tuner = ((dev->has_vid_cap || dev->has_vbi_cap) && in_type_counter[TV]) || dev->has_radio_rx || dev->has_sdr_cap; @@ -850,12 +918,6 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) dev->has_scaler_out ? 'Y' : 'N'); } - /* do we create a meta capture device */ - dev->has_meta_cap = node_type & 0x20000; - - /* do we create a metadata output device */ - dev->has_meta_out = node_type & 0x40000; - /* end detecting feature set */ if (dev->has_vid_cap) { @@ -866,7 +928,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) dev->vid_cap_caps |= V4L2_CAP_STREAMING | V4L2_CAP_READWRITE; if (dev->has_audio_inputs) dev->vid_cap_caps |= V4L2_CAP_AUDIO; - if (in_type_counter[TV]) + if (dev->has_tv_tuner) dev->vid_cap_caps |= V4L2_CAP_TUNER; } if (dev->has_vid_out) { @@ -887,7 +949,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) dev->vbi_cap_caps |= V4L2_CAP_STREAMING | V4L2_CAP_READWRITE; if (dev->has_audio_inputs) dev->vbi_cap_caps |= V4L2_CAP_AUDIO; - if (in_type_counter[TV]) + if (dev->has_tv_tuner) dev->vbi_cap_caps |= V4L2_CAP_TUNER; } if (dev->has_vbi_out) { @@ -919,7 +981,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) V4L2_CAP_STREAMING | V4L2_CAP_READWRITE; if (dev->has_audio_inputs) dev->meta_cap_caps |= V4L2_CAP_AUDIO; - if (in_type_counter[TV]) + if (dev->has_tv_tuner) dev->meta_cap_caps |= V4L2_CAP_TUNER; } /* set up the capabilities of meta output device */ @@ -1162,181 +1224,82 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) goto unreg_dev; } - if (allocator == 1) + if (allocators[inst] == 1) dma_coerce_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); - else if (allocator >= ARRAY_SIZE(vivid_mem_ops)) - allocator = 0; /* start creating the vb2 queues */ if (dev->has_vid_cap) { - snprintf(dev->vid_cap_dev.name, sizeof(dev->vid_cap_dev.name), - "vivid-%03d-vid-cap", inst); /* initialize vid_cap queue */ - q = &dev->vb_vid_cap_q; - q->type = dev->multiplanar ? V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE : - V4L2_BUF_TYPE_VIDEO_CAPTURE; - q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_READ; - if (!allocator) - q->io_modes |= VB2_USERPTR; - q->drv_priv = dev; - q->buf_struct_size = sizeof(struct vivid_buffer); - q->ops = &vivid_vid_cap_qops; - q->mem_ops = vivid_mem_ops[allocator]; - q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; - q->min_buffers_needed = 2; - q->lock = &dev->mutex; - q->dev = dev->v4l2_dev.dev; - q->supports_requests = true; - - ret = vb2_queue_init(q); + ret = vivid_create_queue(dev, &dev->vb_vid_cap_q, + V4L2_BUF_TYPE_VIDEO_CAPTURE, 2, + &vivid_vid_cap_qops); if (ret) goto unreg_dev; } if (dev->has_vid_out) { - snprintf(dev->vid_out_dev.name, sizeof(dev->vid_out_dev.name), - "vivid-%03d-vid-out", inst); /* initialize vid_out queue */ - q = &dev->vb_vid_out_q; - q->type = dev->multiplanar ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE : - V4L2_BUF_TYPE_VIDEO_OUTPUT; - q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_WRITE; - if (!allocator) - q->io_modes |= VB2_USERPTR; - q->drv_priv = dev; - q->buf_struct_size = sizeof(struct vivid_buffer); - q->ops = &vivid_vid_out_qops; - q->mem_ops = vivid_mem_ops[allocator]; - q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; - q->min_buffers_needed = 2; - q->lock = &dev->mutex; - q->dev = dev->v4l2_dev.dev; - q->supports_requests = true; - - ret = vb2_queue_init(q); + ret = vivid_create_queue(dev, &dev->vb_vid_out_q, + V4L2_BUF_TYPE_VIDEO_OUTPUT, 2, + &vivid_vid_out_qops); if (ret) goto unreg_dev; } if (dev->has_vbi_cap) { /* initialize vbi_cap queue */ - q = &dev->vb_vbi_cap_q; - q->type = dev->has_raw_vbi_cap ? V4L2_BUF_TYPE_VBI_CAPTURE : - V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; - q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_READ; - if (!allocator) - q->io_modes |= VB2_USERPTR; - q->drv_priv = dev; - q->buf_struct_size = sizeof(struct vivid_buffer); - q->ops = &vivid_vbi_cap_qops; - q->mem_ops = vivid_mem_ops[allocator]; - q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; - q->min_buffers_needed = 2; - q->lock = &dev->mutex; - q->dev = dev->v4l2_dev.dev; - q->supports_requests = true; - - ret = vb2_queue_init(q); + ret = vivid_create_queue(dev, &dev->vb_vbi_cap_q, + V4L2_BUF_TYPE_VBI_CAPTURE, 2, + &vivid_vbi_cap_qops); if (ret) goto unreg_dev; } if (dev->has_vbi_out) { /* initialize vbi_out queue */ - q = &dev->vb_vbi_out_q; - q->type = dev->has_raw_vbi_out ? V4L2_BUF_TYPE_VBI_OUTPUT : - V4L2_BUF_TYPE_SLICED_VBI_OUTPUT; - q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_WRITE; - if (!allocator) - q->io_modes |= VB2_USERPTR; - q->drv_priv = dev; - q->buf_struct_size = sizeof(struct vivid_buffer); - q->ops = &vivid_vbi_out_qops; - q->mem_ops = vivid_mem_ops[allocator]; - q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; - q->min_buffers_needed = 2; - q->lock = &dev->mutex; - q->dev = dev->v4l2_dev.dev; - q->supports_requests = true; - - ret = vb2_queue_init(q); + ret = vivid_create_queue(dev, &dev->vb_vbi_out_q, + V4L2_BUF_TYPE_VBI_OUTPUT, 2, + &vivid_vbi_out_qops); if (ret) goto unreg_dev; } if (dev->has_sdr_cap) { /* initialize sdr_cap queue */ - q = &dev->vb_sdr_cap_q; - q->type = V4L2_BUF_TYPE_SDR_CAPTURE; - q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_READ; - if (!allocator) - q->io_modes |= VB2_USERPTR; - q->drv_priv = dev; - q->buf_struct_size = sizeof(struct vivid_buffer); - q->ops = &vivid_sdr_cap_qops; - q->mem_ops = vivid_mem_ops[allocator]; - q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; - q->min_buffers_needed = 8; - q->lock = &dev->mutex; - q->dev = dev->v4l2_dev.dev; - q->supports_requests = true; - - ret = vb2_queue_init(q); + ret = vivid_create_queue(dev, &dev->vb_sdr_cap_q, + V4L2_BUF_TYPE_SDR_CAPTURE, 8, + &vivid_sdr_cap_qops); if (ret) goto unreg_dev; } - if (dev->has_fb) { - /* Create framebuffer for testing capture/output overlay */ - ret = vivid_fb_init(dev); - if (ret) - goto unreg_dev; - v4l2_info(&dev->v4l2_dev, "Framebuffer device registered as fb%d\n", - dev->fb_info.node); - } - if (dev->has_meta_cap) { /* initialize meta_cap queue */ - q = &dev->vb_meta_cap_q; - q->type = V4L2_BUF_TYPE_META_CAPTURE; - q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_READ; - if (!allocator) - q->io_modes |= VB2_USERPTR; - q->drv_priv = dev; - q->buf_struct_size = sizeof(struct vivid_buffer); - q->ops = &vivid_meta_cap_qops; - q->mem_ops = vivid_mem_ops[allocator]; - q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; - q->min_buffers_needed = 2; - q->lock = &dev->mutex; - q->dev = dev->v4l2_dev.dev; - q->supports_requests = true; - ret = vb2_queue_init(q); + ret = vivid_create_queue(dev, &dev->vb_meta_cap_q, + V4L2_BUF_TYPE_META_CAPTURE, 2, + &vivid_meta_cap_qops); if (ret) goto unreg_dev; } if (dev->has_meta_out) { /* initialize meta_out queue */ - q = &dev->vb_meta_out_q; - q->type = V4L2_BUF_TYPE_META_OUTPUT; - q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_WRITE; - if (!allocator) - q->io_modes |= VB2_USERPTR; - q->drv_priv = dev; - q->buf_struct_size = sizeof(struct vivid_buffer); - q->ops = &vivid_meta_out_qops; - q->mem_ops = vivid_mem_ops[allocator]; - q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; - q->min_buffers_needed = 1; - q->lock = &dev->mutex; - q->dev = dev->v4l2_dev.dev; - q->supports_requests = true; - ret = vb2_queue_init(q); + ret = vivid_create_queue(dev, &dev->vb_meta_out_q, + V4L2_BUF_TYPE_META_OUTPUT, 1, + &vivid_meta_out_qops); if (ret) goto unreg_dev; } + if (dev->has_fb) { + /* Create framebuffer for testing capture/output overlay */ + ret = vivid_fb_init(dev); + if (ret) + goto unreg_dev; + v4l2_info(&dev->v4l2_dev, "Framebuffer device registered as fb%d\n", + dev->fb_info.node); + } + #ifdef CONFIG_VIDEO_VIVID_CEC if (dev->has_vid_cap && in_type_counter[HDMI]) { struct cec_adapter *adap; @@ -1383,6 +1346,8 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) /* finally start creating the device nodes */ if (dev->has_vid_cap) { vfd = &dev->vid_cap_dev; + snprintf(vfd->name, sizeof(vfd->name), + "vivid-%03d-vid-cap", inst); vfd->fops = &vivid_fops; vfd->ioctl_ops = &vivid_ioctl_ops; vfd->device_caps = dev->vid_cap_caps; @@ -1428,6 +1393,8 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) if (dev->has_vid_out) { vfd = &dev->vid_out_dev; + snprintf(vfd->name, sizeof(vfd->name), + "vivid-%03d-vid-out", inst); vfd->vfl_dir = VFL_DIR_TX; vfd->fops = &vivid_fops; vfd->ioctl_ops = &vivid_ioctl_ops; diff --git a/drivers/media/platform/vivid/vivid-core.h b/drivers/media/platform/vivid/vivid-core.h index d57066ed31f0..59192b67231c 100644 --- a/drivers/media/platform/vivid/vivid-core.h +++ b/drivers/media/platform/vivid/vivid-core.h @@ -200,6 +200,7 @@ struct vivid_dev { bool has_fb; bool has_meta_cap; bool has_meta_out; + bool has_tv_tuner; bool can_loop_video; -- 2.23.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
end of thread, other threads:[~2019-11-04 17:41 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-11-03 11:23 [PATCH 0/8] Fix various smatch warnings/errors Hans Verkuil 2019-11-03 11:23 ` [PATCH 1/8] am437x: fix smatch warning Hans Verkuil 2019-11-04 17:40 ` Benoit Parrot 2019-11-03 11:23 ` [PATCH 2/8] smiapp: smiapp_start_streaming(): replace return by goto Hans Verkuil 2019-11-04 8:12 ` Sakari Ailus 2019-11-04 8:17 ` Hans Verkuil 2019-11-03 11:23 ` [PATCH 3/8] mtk-vpu: fix two smatch warnings Hans Verkuil 2019-11-03 11:23 ` [PATCH 4/8] rc/ite-cir: fix smatch warning Hans Verkuil 2019-11-03 22:02 ` Sean Young 2019-11-03 11:23 ` [PATCH 5/8] em28xx: fix two smatch warnings Hans Verkuil 2019-11-03 11:23 ` [PATCH 6/8] ti-vpe: fix smatch error Hans Verkuil 2019-11-04 17:40 ` Benoit Parrot 2019-11-03 11:23 ` [PATCH 7/8] ov6650: fix smatch warning Hans Verkuil 2019-11-04 8:13 ` Sakari Ailus 2019-11-03 11:23 ` [PATCH 8/8] mantis: fix two smatch errors Hans Verkuil 2019-11-03 14:01 ` [PATCH 9/8] vivid: add vivid_create_queue() helper Hans Verkuil
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.