Thread (121 messages) 121 messages, 7 authors, 2021-02-15

Re: [PATCH 00/75] media: imx: Miscellaneous fixes and cleanups for i.MX7

From: Fabio Estevam <festevam@gmail.com>
Date: 2021-01-05 17:46:44

Hi Laurent,

On Tue, Jan 5, 2021 at 12:31 PM Laurent Pinchart
[off-list ref] wrote:
Hello,

This large patch series has been sitting in my tree for way too long. I
haven't posted it yet as I'm running into an issue on my test hardware
that I can't prove is not a regression from this series, but the
pressure has grown and the patches are better on the list for review.

There's really not much to detail in the cover letter as there are
"just" fixes and cleanups I developed while bringing up camera support
for an i.MX7D platform, and later on an i.MX8MM that shares the same
MIPI-CSI2 and CSI IP cores (with some differences).

The issue I've noticed is that the CSI writes two images consecutively
to the same buffer, overwritting memory after the end of the buffer. I
believe this bug to already be present in mainline, but I can't prove it
as my sensor won't work without some of the patches in this series. The
problem could also be sensor-specific.

Rui, would you be able to test this on your i.MX7 hardware to make sure
there's no regression ?
Thanks for your series.

I tested it on a imx6ul-evk board.

There is a build error introduced by patch 74/75. I fixed it like this:
--- a/drivers/staging/media/imx/imx7-mipi-csis.c
+++ b/drivers/staging/media/imx/imx7-mipi-csis.c
@@ -193,6 +193,8 @@
 #define MIPI_CSIS_SDW_RESOL_CH(n)              (0x84 + (n) * 0x10)
 #define MIPI_CSIS_SDW_SYNC_CH(n)               (0x88 + (n) * 0x10)

+/* Debug Control register */
+#define MIPI_CSIS_DBG_CTRL                     0x20
 /* Non-image packet data buffers */
 #define MIPI_CSIS_PKTDATA_ODD                  0x2000
 #define MIPI_CSIS_PKTDATA_EVEN                 0x3000
Then I applied my patch and Rui's to fix the imx6ul regression as per
the other thread we have been discussing, but I was not able to
capture:

# gst-launch-1.0 -v  v4l2src device=/dev/video1 ! v4l2convert ! fbdevsink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps =
video/x-raw, format=(string)BGRx, width=(int)3840, height=(int)2160,
framerate=(fraction)120/1, interlace-mode=(string)progressive,
colorimetr
y=(string)1:1:5:1
/GstPipeline:pipeline0/v4l2convert:v4l2convert0.GstPad:src: caps =
video/x-raw, format=(string)BGRx, width=(int)3840, height=(int)2160,
framerate=(fraction)120/1, interlace-mode=(string)progressive, color
imetry=(string)1:1:5:1
/GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0.GstPad:sink: caps =
video/x-raw, format=(string)BGRx, width=(int)3840, height=(int)2160,
framerate=(fraction)120/1, interlace-mode=(string)progressive, color
imetry=(string)1:1:5:1
/GstPipeline:pipeline0/v4l2convert:v4l2convert0.GstPad:sink: caps =
video/x-raw, format=(string)BGRx, width=(int)3840, height=(int)2160,
framerate=(fraction)120/1, interlace-mode=(string)progressive, colo
rimetry=(string)1:1:5:1
[   32.783736] cma: cma_alloc: alloc failed, req-size: 8100 pages, ret: -12
[   32.791332] imx7-csi 21c4000.csi: dma_alloc_coherent of size 33177600 failed
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed
to allocate required memory.
Additional debug info:
../sys/v4l2/gstv4l2src.c(659): gst_v4l2src_decide_allocation ():
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Buffer pool activation failed
Execution ended after 0:00:00.214658125
Setting pipeline to NULL ...
Freeing pipeline ...

As shown above the dimensions and framerate are incorrectly reported
as: width=(int)3840, height=(int)2160, framerate=(fraction)120/1

Previously it was:

# gst-launch-1.0 -v  v4l2src device=/dev/video1 ! v4l2convert ! fbdevsink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps =
video/x-raw, format=(string)UYVY, width=(int)320, height=(int)240,
framerate=(fraction)30000/1001, interlace-mode=(string)progressive,
colorim
etry=(string)1:4:7:1
/GstPipeline:pipeline0/v4l2convert:v4l2convert0.GstPad:src: caps =
video/x-raw, format=(string)BGRx, width=(int)320, height=(int)240,
framerate=(fraction)30000/1001, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0.GstPad:sink: caps =
video/x-raw, format=(string)BGRx, width=(int)320, height=(int)240,
framerate=(fraction)30000/1001, interlace-mode=(string)progressive
/GstPipeline:pipeline0/v4l2convert:v4l2convert0.GstPad:sink: caps =
video/x-raw, format=(string)UYVY, width=(int)320, height=(int)240,
framerate=(fraction)30000/1001, interlace-mode=(string)progressive, c
olorimetry=(string)1:4:7:1

Thanks
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help