2018-02-07 17:38:32

by Hugues Fruchet

[permalink] [raw]
Subject: [PATCH v1 0/3] STM32 DCMI redundant code & trace cleanup

Remove some redundant code and fix/enhance some
error trace points.

Hugues Fruchet (3):
media: stm32-dcmi: remove redundant capture enable
media: stm32-dcmi: remove redundant clear of interrupt flags
media: stm32-dcmi: improve error trace points

drivers/media/platform/stm32/stm32-dcmi.c | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)

--
1.9.1



2018-02-07 17:38:14

by Hugues Fruchet

[permalink] [raw]
Subject: [PATCH v1 3/3] media: stm32-dcmi: improve error trace points

Fix some missing "\n".
Trace error returned by subdev streamon/streamoff.
Remove extra "0x" unneeded with %pad formatter.

Signed-off-by: Hugues Fruchet <[email protected]>
---
drivers/media/platform/stm32/stm32-dcmi.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c
index dfab867..2fd8bed 100644
--- a/drivers/media/platform/stm32/stm32-dcmi.c
+++ b/drivers/media/platform/stm32/stm32-dcmi.c
@@ -234,7 +234,7 @@ static void dcmi_dma_callback(void *param)
/* Restart a new DMA transfer with next buffer */
if (dcmi->state == RUNNING) {
if (list_empty(&dcmi->buffers)) {
- dev_err(dcmi->dev, "%s: No more buffer queued, cannot capture buffer",
+ dev_err(dcmi->dev, "%s: No more buffer queued, cannot capture buffer\n",
__func__);
dcmi->errors_count++;
dcmi->active = NULL;
@@ -249,7 +249,7 @@ static void dcmi_dma_callback(void *param)
list_del_init(&dcmi->active->list);

if (dcmi_start_capture(dcmi)) {
- dev_err(dcmi->dev, "%s: Cannot restart capture on DMA complete",
+ dev_err(dcmi->dev, "%s: Cannot restart capture on DMA complete\n",
__func__);

spin_unlock(&dcmi->irqlock);
@@ -478,7 +478,7 @@ static int dcmi_buf_prepare(struct vb2_buffer *vb)

vb2_set_plane_payload(&buf->vb.vb2_buf, 0, buf->size);

- dev_dbg(dcmi->dev, "buffer[%d] phy=0x%pad size=%zu\n",
+ dev_dbg(dcmi->dev, "buffer[%d] phy=%pad size=%zu\n",
vb->index, &buf->paddr, buf->size);
}

@@ -524,7 +524,7 @@ static int dcmi_start_streaming(struct vb2_queue *vq, unsigned int count)

ret = clk_enable(dcmi->mclk);
if (ret) {
- dev_err(dcmi->dev, "%s: Failed to start streaming, cannot enable clock",
+ dev_err(dcmi->dev, "%s: Failed to start streaming, cannot enable clock\n",
__func__);
goto err_release_buffers;
}
@@ -600,7 +600,7 @@ static int dcmi_start_streaming(struct vb2_queue *vq, unsigned int count)

ret = dcmi_start_capture(dcmi);
if (ret) {
- dev_err(dcmi->dev, "%s: Start streaming failed, cannot start capture",
+ dev_err(dcmi->dev, "%s: Start streaming failed, cannot start capture\n",
__func__);

spin_unlock_irq(&dcmi->irqlock);
@@ -651,7 +651,8 @@ static void dcmi_stop_streaming(struct vb2_queue *vq)
/* Disable stream on the sub device */
ret = v4l2_subdev_call(dcmi->entity.subdev, video, s_stream, 0);
if (ret && ret != -ENOIOCTLCMD)
- dev_err(dcmi->dev, "stream off failed in subdev\n");
+ dev_err(dcmi->dev, "%s: Failed to stop streaming, subdev streamoff error (%d)\n",
+ __func__, ret);

dcmi->state = STOPPING;

@@ -667,7 +668,8 @@ static void dcmi_stop_streaming(struct vb2_queue *vq)
reg_clear(dcmi->regs, DCMI_CR, CR_ENABLE);

if (!timeout) {
- dev_err(dcmi->dev, "Timeout during stop streaming\n");
+ dev_err(dcmi->dev, "%s: Timeout during stop streaming\n",
+ __func__);
dcmi->state = STOPPED;
}

--
1.9.1


2018-02-07 17:38:17

by Hugues Fruchet

[permalink] [raw]
Subject: [PATCH v1 1/3] media: stm32-dcmi: remove redundant capture enable

Remove redundant capture enable already done
in dcmi_start_capture().

Signed-off-by: Hugues Fruchet <[email protected]>
---
drivers/media/platform/stm32/stm32-dcmi.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c
index 9460b30..abc79d8 100644
--- a/drivers/media/platform/stm32/stm32-dcmi.c
+++ b/drivers/media/platform/stm32/stm32-dcmi.c
@@ -255,9 +255,6 @@ static void dcmi_dma_callback(void *param)
spin_unlock(&dcmi->irqlock);
return;
}
-
- /* Enable capture */
- reg_set(dcmi->regs, DCMI_CR, CR_CAPTURE);
}

break;
--
1.9.1


2018-02-07 17:38:19

by Hugues Fruchet

[permalink] [raw]
Subject: [PATCH v1 2/3] media: stm32-dcmi: remove redundant clear of interrupt flags

It is already cleared in dcmi_irq_callback().

Signed-off-by: Hugues Fruchet <[email protected]>
---
drivers/media/platform/stm32/stm32-dcmi.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c
index abc79d8..dfab867 100644
--- a/drivers/media/platform/stm32/stm32-dcmi.c
+++ b/drivers/media/platform/stm32/stm32-dcmi.c
@@ -385,8 +385,6 @@ static irqreturn_t dcmi_irq_thread(int irq, void *arg)
dcmi->errors_count++;
dmaengine_terminate_all(dcmi->dma_chan);

- reg_set(dcmi->regs, DCMI_ICR, IT_FRAME | IT_OVR | IT_ERR);
-
dev_dbg(dcmi->dev, "Restarting capture after DCMI error\n");

if (dcmi_start_capture(dcmi)) {
--
1.9.1