* [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
* [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
* [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
* [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
* [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
* [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
* 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
* 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 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
* 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
* 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
* 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
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.