Re: [PATCH 00/31] staging: bcm2835-camera: Improvements
Hi Dave, Am 28.06.19 um 19:29 schrieb Dave Stevenson: > Hi Stefan > > Could you try running > v4l2-ctl -v width=640,height=480,pixelformat=YU12 > before running v4l2-compliance? The default format is JPEG, and I just > wonder if there is an issue lurking in the compression side. yes, this is much better: Streaming ioctls: test read/write: OK test blocking wait: OK test MMAP (no poll): OK test MMAP (select): OK test MMAP (epoll): OK test USERPTR (no poll): OK test USERPTR (select): OK test DMABUF (no poll): OK (Not Supported) test DMABUF (select): OK (Not Supported) Total for bm2835 mmal device /dev/video0: 53, Succeeded: 53, Failed: 0, Warnings: 0 > I'll get a Pi3 mainline build going when I get a chance. >
Re: [PATCH 00/31] staging: bcm2835-camera: Improvements
Hi Stefan On Fri, 28 Jun 2019 at 17:57, Stefan Wahren wrote: > > Hi Hans, > > Am 28.06.19 um 10:06 schrieb Hans Verkuil: > > Hi Stefan, > > > > On 6/27/19 8:55 PM, Stefan Wahren wrote: > >> This is an attempt to help Dave Stevenson to get all the fixes and > >> improvements of the bcm2835-camera driver into mainline. > >> > >> Mostly i only polished the commit logs for upstream. > >> > >> The series based on the latest bugfix V2 of staging: bcm2835-camera: Resto= > >> re > >> return behavior of ctrl_set_bitrate(). > > Thank you for working on this. > > > > Three high-level questions: > > > > 1) Can you post the output of 'v4l2-compliance -s' using the latest > > v4l2-compliance > >from https://git.linuxtv.org/v4l-utils.git ? I'm interested to see what > > the > >status is of this driver w.r.t. the compliance tests. > > Before this series (Raspberry Pi 3, Camera 1.3, Linux > 5.2.0-rc3-next-20190607, multi_v7_defconfig): > > v4l2-compliance SHA: b16f9e945d74aa552abdd6f873821cb77faaf13a, 32 bits > > Compliance test for bm2835 mmal device /dev/video0: > > Driver Info: > Driver name : bm2835 mmal > Card type: mmal service 16.1 > Bus info : platform:bcm2835-v4l2 > Driver version : 5.2.0 > Capabilities : 0x8525 > Video Capture > Video Overlay > Read/Write > Streaming > Extended Pix Format > Device Capabilities > Device Caps : 0x0525 > Video Capture > Video Overlay > Read/Write > Streaming > Extended Pix Format > > Required ioctls: > test VIDIOC_QUERYCAP: OK > > Allow for multiple opens: > test second /dev/video0 open: OK > test VIDIOC_QUERYCAP: OK > test VIDIOC_G/S_PRIORITY: OK > test for unlimited opens: OK > > Debug ioctls: > test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported) > test VIDIOC_LOG_STATUS: OK > > Input ioctls: > test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) > test VIDIOC_G/S_FREQUENCY: OK (Not Supported) > test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported) > test VIDIOC_ENUMAUDIO: OK (Not Supported) > test VIDIOC_G/S/ENUMINPUT: OK > test VIDIOC_G/S_AUDIO: OK (Not Supported) > Inputs: 1 Audio Inputs: 0 Tuners: 0 > > Output ioctls: > test VIDIOC_G/S_MODULATOR: OK (Not Supported) > test VIDIOC_G/S_FREQUENCY: OK (Not Supported) > test VIDIOC_ENUMAUDOUT: OK (Not Supported) > test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported) > test VIDIOC_G/S_AUDOUT: OK (Not Supported) > Outputs: 0 Audio Outputs: 0 Modulators: 0 > > Input/Output configuration ioctls: > test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported) > test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported) > test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported) > test VIDIOC_G/S_EDID: OK (Not Supported) > > Control ioctls (Input 0): > test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK > test VIDIOC_QUERYCTRL: OK > test VIDIOC_G/S_CTRL: OK > test VIDIOC_G/S/TRY_EXT_CTRLS: OK > test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK > test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) > Standard Controls: 33 Private Controls: 0 > > Format ioctls (Input 0): > test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK > test VIDIOC_G/S_PARM: OK > test VIDIOC_G_FBUF: OK > test VIDIOC_G_FMT: OK > test VIDIOC_TRY_FMT: OK > test VIDIOC_S_FMT: OK > test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported) > test Cropping: OK (Not Supported) > test Composing: OK (Not Supported) > test Scaling: OK > > Codec ioctls (Input 0): > test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported) > test VIDIOC_G_ENC_INDEX: OK (Not Supported) > test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported) > > Buffer ioctls (Input 0): > fail: v4l2-test-buffers.cpp(715): q.create_bufs(node, 1, &fmt) > != EINVAL > test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: FAIL > test VIDIOC_EXPBUF: OK (Not Supported) > test Requests: OK (Not Supported) > > Test input 0: > > Streaming ioctls: > test read/write: OK > fail: v4l2-test-buffers.cpp(2145): node->streamon(q.g_type()) > fail: v4l2-test-buffers.cpp(2224): testBlockingDQBuf(node, q) > test blocking wait: FAIL > fail: v4l2-test-buffers.cpp(1294): q.create_bufs(node, 1, &fmt) > != EINVAL > test MMAP (no poll): FAIL > fail: v4l2-test-buffers.cpp(1294): q.create_bufs(node, 1, &fmt) > != EINVAL > test MMAP (select): FAIL > fail: v4l2-test-buffers.cpp(1294): q.create_bufs(node, 1, &fmt) > != EINVAL > test MMAP (epoll): FAIL > > After this series: > > v4l2-compliance SHA: b16f9e945d74aa552abdd6f873821cb77faaf13a, 32 bits > > Compliance test for bm2835 mmal device /dev/video0: > > Driver Info: > Driver name : bm2835 mmal > Card type: mmal service 16.1 > Bus info : platform:bcm2835-v4l2 > Driver version : 5.2.0 > Capabilities : 0x8525 > Video C
Re: [PATCH 00/31] staging: bcm2835-camera: Improvements
Hi Hans, Am 28.06.19 um 10:06 schrieb Hans Verkuil: > Hi Stefan, > > On 6/27/19 8:55 PM, Stefan Wahren wrote: >> This is an attempt to help Dave Stevenson to get all the fixes and >> improvements of the bcm2835-camera driver into mainline. >> >> Mostly i only polished the commit logs for upstream. >> >> The series based on the latest bugfix V2 of staging: bcm2835-camera: Resto= >> re >> return behavior of ctrl_set_bitrate(). > Thank you for working on this. > > Three high-level questions: > > 1) Can you post the output of 'v4l2-compliance -s' using the latest > v4l2-compliance >from https://git.linuxtv.org/v4l-utils.git ? I'm interested to see what > the >status is of this driver w.r.t. the compliance tests. Before this series (Raspberry Pi 3, Camera 1.3, Linux 5.2.0-rc3-next-20190607, multi_v7_defconfig): v4l2-compliance SHA: b16f9e945d74aa552abdd6f873821cb77faaf13a, 32 bits Compliance test for bm2835 mmal device /dev/video0: Driver Info: Driver name : bm2835 mmal Card type : mmal service 16.1 Bus info : platform:bcm2835-v4l2 Driver version : 5.2.0 Capabilities : 0x8525 Video Capture Video Overlay Read/Write Streaming Extended Pix Format Device Capabilities Device Caps : 0x0525 Video Capture Video Overlay Read/Write Streaming Extended Pix Format Required ioctls: test VIDIOC_QUERYCAP: OK Allow for multiple opens: test second /dev/video0 open: OK test VIDIOC_QUERYCAP: OK test VIDIOC_G/S_PRIORITY: OK test for unlimited opens: OK Debug ioctls: test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported) test VIDIOC_LOG_STATUS: OK Input ioctls: test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported) test VIDIOC_ENUMAUDIO: OK (Not Supported) test VIDIOC_G/S/ENUMINPUT: OK test VIDIOC_G/S_AUDIO: OK (Not Supported) Inputs: 1 Audio Inputs: 0 Tuners: 0 Output ioctls: test VIDIOC_G/S_MODULATOR: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_ENUMAUDOUT: OK (Not Supported) test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported) test VIDIOC_G/S_AUDOUT: OK (Not Supported) Outputs: 0 Audio Outputs: 0 Modulators: 0 Input/Output configuration ioctls: test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported) test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported) test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported) test VIDIOC_G/S_EDID: OK (Not Supported) Control ioctls (Input 0): test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK test VIDIOC_QUERYCTRL: OK test VIDIOC_G/S_CTRL: OK test VIDIOC_G/S/TRY_EXT_CTRLS: OK test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 33 Private Controls: 0 Format ioctls (Input 0): test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK test VIDIOC_G/S_PARM: OK test VIDIOC_G_FBUF: OK test VIDIOC_G_FMT: OK test VIDIOC_TRY_FMT: OK test VIDIOC_S_FMT: OK test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported) test Cropping: OK (Not Supported) test Composing: OK (Not Supported) test Scaling: OK Codec ioctls (Input 0): test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported) test VIDIOC_G_ENC_INDEX: OK (Not Supported) test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported) Buffer ioctls (Input 0): fail: v4l2-test-buffers.cpp(715): q.create_bufs(node, 1, &fmt) != EINVAL test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: FAIL test VIDIOC_EXPBUF: OK (Not Supported) test Requests: OK (Not Supported) Test input 0: Streaming ioctls: test read/write: OK fail: v4l2-test-buffers.cpp(2145): node->streamon(q.g_type()) fail: v4l2-test-buffers.cpp(2224): testBlockingDQBuf(node, q) test blocking wait: FAIL fail: v4l2-test-buffers.cpp(1294): q.create_bufs(node, 1, &fmt) != EINVAL test MMAP (no poll): FAIL fail: v4l2-test-buffers.cpp(1294): q.create_bufs(node, 1, &fmt) != EINVAL test MMAP (select): FAIL fail: v4l2-test-buffers.cpp(1294): q.create_bufs(node, 1, &fmt) != EINVAL test MMAP (epoll): FAIL After this series: v4l2-compliance SHA: b16f9e945d74aa552abdd6f873821cb77faaf13a, 32 bits Compliance test for bm2835 mmal device /dev/video0: Driver Info: Driver name : bm2835 mmal Card type : mmal service 16.1 Bus info : platform:bcm2835-v4l2 Driver version : 5.2.0 Capabilities : 0x8525 Video Capture Video Overlay Read/Write Streaming Extended Pix Format Device Capabilities Device Caps : 0x0525 Video Capture Video Overlay Read/Write Streaming Extended Pix Format Required ioctls: test VIDIOC_QUERYCAP: OK Allow for multiple opens:
Re: [PATCH 00/31] staging: bcm2835-camera: Improvements
Em Fri, 28 Jun 2019 15:13:03 +0200 Hans Verkuil escreveu: > On 6/27/19 8:55 PM, Stefan Wahren wrote: > > This is an attempt to help Dave Stevenson to get all the fixes and > > improvements of the bcm2835-camera driver into mainline. > > > > Mostly i only polished the commit logs for upstream. > > > > The series based on the latest bugfix V2 of staging: bcm2835-camera: Resto= > > re > > return behavior of ctrl_set_bitrate(). > > > > Dave Stevenson (31): > > staging: bcm2835-camera: Ensure H264 header bytes get a sensible > > timestamp > > staging: bcm2835-camera: Check the error for REPEAT_SEQ_HEADER > > staging: bcm2835-camera: Replace spinlock protecting context_map with > > mutex > > staging: bcm2835-camera: Do not bulk receive from service thread > > staging: bcm2835-camera: Correctly denote key frames in encoded data > > staging: bcm2835-camera: Return early on errors > > staging: bcm2835-camera: Remove dead email addresses > > staging: bcm2835-camera: Fix comment style violations. > > staging: bcm2835-camera: Fix spacing around operators > > staging: bcm2835-camera: Reduce length of enum names > > staging: bcm2835-camera: Fix multiple line dereference errors > > staging: bcm2835-camera: Fix brace style issues. > > staging: bcm2835-camera: Fix missing lines between items > > staging: bcm2835-camera: Fix open parenthesis alignment > > staging: bcm2835-camera: Ensure all buffers are returned on disable > > staging: bcm2835-camera: Remove check of the number of buffers > > supplied > > staging: bcm2835-camera: Handle empty EOS buffers whilst streaming > > staging: bcm2835-camera: Set sequence number correctly > > staging: bcm2835-camera: Ensure timestamps never go backwards. > > staging: bcm2835-camera: Add multiple inclusion protection to headers > > staging: bcm2835-camera: Unify header inclusion defines > > staging: bcm2835-camera: Fix multiple assignments should be avoided > > staging: bcm2835-camera: Fix up mmal-parameters.h > > staging: bcm2835-camera: Use enums for max value in controls > > staging: bcm2835-camera: Correct V4L2_CID_COLORFX_CBCR behaviour > > staging: bcm2835-camera: Remove/amend some obsolete comments > > staging: mmal-vchiq: Avoid use of bool in structures > > staging: bcm2835-camera: Fix stride on RGB3/BGR3 formats > > staging: bcm2835-camera: Add sanity checks for queue_setup/CREATE_BUFS > > staging: bcm2835-camera: Set the field value within ach buffer > > ach -> each > > > staging: bcm2835-camera: Correct ctrl min/max/step/def to 64bit > > > > .../vc04_services/bcm2835-camera/bcm2835-camera.c | 378 = > > - > > .../vc04_services/bcm2835-camera/bcm2835-camera.h | 34 +- > > .../vc04_services/bcm2835-camera/controls.c| 184 +- > > .../vc04_services/bcm2835-camera/mmal-common.h | 12 +- > > .../vc04_services/bcm2835-camera/mmal-encodings.h | 9 +- > > .../vc04_services/bcm2835-camera/mmal-msg-common.h | 9 +- > > .../vc04_services/bcm2835-camera/mmal-msg-format.h | 104 +++--- > > .../vc04_services/bcm2835-camera/mmal-msg-port.h | 133 > > .../vc04_services/bcm2835-camera/mmal-msg.h| 150 > > .../vc04_services/bcm2835-camera/mmal-parameters.h | 286 +--- > > .../vc04_services/bcm2835-camera/mmal-vchiq.c | 159 + > > .../vc04_services/bcm2835-camera/mmal-vchiq.h | 22 +- > > 12 files changed, 826 insertions(+), 654 deletions(-) > > > > =2D- > > 2.7.4 > > > > This series looks good. Others made some comments that should be addressed, > and the H264 changes should, I think, be dealt with in a separate patch > series. > > I guess this should go in via Greg? Works for me. I won't be able to handle this before the merge window, as I'll be on PTO next week. > When you make a v2 (excluding the H264 > changes, and incorporating Dan's comments), then you can add my: > > Acked-by: Hans Verkuil Greg, once the issues get fixed - and if you want to pick this for this merge window, feel fee to pick with my ack: Acked-by: Mauro Carvalho Chehab Otherwise, if too late for this merge window, It is probably better to apply those against the linux-media tree after -rc1. Thanks, Mauro
Re: [PATCH 00/31] staging: bcm2835-camera: Improvements
On 6/27/19 8:55 PM, Stefan Wahren wrote: > This is an attempt to help Dave Stevenson to get all the fixes and > improvements of the bcm2835-camera driver into mainline. > > Mostly i only polished the commit logs for upstream. > > The series based on the latest bugfix V2 of staging: bcm2835-camera: Resto= > re > return behavior of ctrl_set_bitrate(). > > Dave Stevenson (31): > staging: bcm2835-camera: Ensure H264 header bytes get a sensible > timestamp > staging: bcm2835-camera: Check the error for REPEAT_SEQ_HEADER > staging: bcm2835-camera: Replace spinlock protecting context_map with > mutex > staging: bcm2835-camera: Do not bulk receive from service thread > staging: bcm2835-camera: Correctly denote key frames in encoded data > staging: bcm2835-camera: Return early on errors > staging: bcm2835-camera: Remove dead email addresses > staging: bcm2835-camera: Fix comment style violations. > staging: bcm2835-camera: Fix spacing around operators > staging: bcm2835-camera: Reduce length of enum names > staging: bcm2835-camera: Fix multiple line dereference errors > staging: bcm2835-camera: Fix brace style issues. > staging: bcm2835-camera: Fix missing lines between items > staging: bcm2835-camera: Fix open parenthesis alignment > staging: bcm2835-camera: Ensure all buffers are returned on disable > staging: bcm2835-camera: Remove check of the number of buffers > supplied > staging: bcm2835-camera: Handle empty EOS buffers whilst streaming > staging: bcm2835-camera: Set sequence number correctly > staging: bcm2835-camera: Ensure timestamps never go backwards. > staging: bcm2835-camera: Add multiple inclusion protection to headers > staging: bcm2835-camera: Unify header inclusion defines > staging: bcm2835-camera: Fix multiple assignments should be avoided > staging: bcm2835-camera: Fix up mmal-parameters.h > staging: bcm2835-camera: Use enums for max value in controls > staging: bcm2835-camera: Correct V4L2_CID_COLORFX_CBCR behaviour > staging: bcm2835-camera: Remove/amend some obsolete comments > staging: mmal-vchiq: Avoid use of bool in structures > staging: bcm2835-camera: Fix stride on RGB3/BGR3 formats > staging: bcm2835-camera: Add sanity checks for queue_setup/CREATE_BUFS > staging: bcm2835-camera: Set the field value within ach buffer ach -> each > staging: bcm2835-camera: Correct ctrl min/max/step/def to 64bit > > .../vc04_services/bcm2835-camera/bcm2835-camera.c | 378 = > - > .../vc04_services/bcm2835-camera/bcm2835-camera.h | 34 +- > .../vc04_services/bcm2835-camera/controls.c| 184 +- > .../vc04_services/bcm2835-camera/mmal-common.h | 12 +- > .../vc04_services/bcm2835-camera/mmal-encodings.h | 9 +- > .../vc04_services/bcm2835-camera/mmal-msg-common.h | 9 +- > .../vc04_services/bcm2835-camera/mmal-msg-format.h | 104 +++--- > .../vc04_services/bcm2835-camera/mmal-msg-port.h | 133 > .../vc04_services/bcm2835-camera/mmal-msg.h| 150 > .../vc04_services/bcm2835-camera/mmal-parameters.h | 286 +--- > .../vc04_services/bcm2835-camera/mmal-vchiq.c | 159 + > .../vc04_services/bcm2835-camera/mmal-vchiq.h | 22 +- > 12 files changed, 826 insertions(+), 654 deletions(-) > > =2D- > 2.7.4 > This series looks good. Others made some comments that should be addressed, and the H264 changes should, I think, be dealt with in a separate patch series. I guess this should go in via Greg? When you make a v2 (excluding the H264 changes, and incorporating Dan's comments), then you can add my: Acked-by: Hans Verkuil Thanks! Hans
Re: [PATCH 00/31] staging: bcm2835-camera: Improvements
On 6/28/19 12:39 PM, Dave Stevenson wrote: > Hi Stefan > > Firstly a huge thank you for picking this up - it's been on my to-do > list for ages, and just hasn't made it to the top. > > On Fri, 28 Jun 2019 at 09:06, Hans Verkuil wrote: >> >> Hi Stefan, >> >> On 6/27/19 8:55 PM, Stefan Wahren wrote: >>> This is an attempt to help Dave Stevenson to get all the fixes and >>> improvements of the bcm2835-camera driver into mainline. >>> >>> Mostly i only polished the commit logs for upstream. >>> >>> The series based on the latest bugfix V2 of staging: bcm2835-camera: Resto= >>> re >>> return behavior of ctrl_set_bitrate(). >> >> Thank you for working on this. >> >> Three high-level questions: >> >> 1) Can you post the output of 'v4l2-compliance -s' using the latest >> v4l2-compliance >>from https://git.linuxtv.org/v4l-utils.git ? I'm interested to see what >> the >>status is of this driver w.r.t. the compliance tests. > > Hi Hans. > > Running it against the downstream driver (which should be nearly > identical based on this set of patches), 4.19, on a Pi4 I get > pi@raspberrypi:~/v4l-utils/utils/v4l2-compliance $ ./v4l2-compliance -s > v4l2-compliance SHA: b16f9e945d74aa552abdd6f873821cb77faaf13a, 32 bits > > Compliance test for bm2835 mmal device /dev/video0: > > Driver Info: > Driver name : bm2835 mmal > Card type: mmal service 16.1 > Bus info : platform:bcm2835-v4l2 > Driver version : 4.19.56 > Capabilities : 0x8525 > Video Capture > Video Overlay > Read/Write > Streaming > Extended Pix Format > Device Capabilities > Device Caps : 0x0525 > Video Capture > Video Overlay > Read/Write > Streaming > Extended Pix Format > > Required ioctls: > test VIDIOC_QUERYCAP: OK > > Allow for multiple opens: > test second /dev/video0 open: OK > test VIDIOC_QUERYCAP: OK > test VIDIOC_G/S_PRIORITY: OK > test for unlimited opens: OK > > Debug ioctls: > test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported) > test VIDIOC_LOG_STATUS: OK > > Input ioctls: > test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) > test VIDIOC_G/S_FREQUENCY: OK (Not Supported) > test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported) > test VIDIOC_ENUMAUDIO: OK (Not Supported) > test VIDIOC_G/S/ENUMINPUT: OK > test VIDIOC_G/S_AUDIO: OK (Not Supported) > Inputs: 1 Audio Inputs: 0 Tuners: 0 > > Output ioctls: > test VIDIOC_G/S_MODULATOR: OK (Not Supported) > test VIDIOC_G/S_FREQUENCY: OK (Not Supported) > test VIDIOC_ENUMAUDOUT: OK (Not Supported) > test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported) > test VIDIOC_G/S_AUDOUT: OK (Not Supported) > Outputs: 0 Audio Outputs: 0 Modulators: 0 > > Input/Output configuration ioctls: > test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported) > test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported) > test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported) > test VIDIOC_G/S_EDID: OK (Not Supported) > > Control ioctls (Input 0): > test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK > test VIDIOC_QUERYCTRL: OK > test VIDIOC_G/S_CTRL: OK > test VIDIOC_G/S/TRY_EXT_CTRLS: OK > test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK > test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) > Standard Controls: 33 Private Controls: 0 > > Format ioctls (Input 0): > test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK > test VIDIOC_G/S_PARM: OK > test VIDIOC_G_FBUF: OK > test VIDIOC_G_FMT: OK > test VIDIOC_TRY_FMT: OK > test VIDIOC_S_FMT: OK > test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported) > test Cropping: OK (Not Supported) > test Composing: OK (Not Supported) > test Scaling: OK > > Codec ioctls (Input 0): > test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported) > test VIDIOC_G_ENC_INDEX: OK (Not Supported) > test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported) > > Buffer ioctls (Input 0): > test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK > test VIDIOC_EXPBUF: OK (Not Supported) > test Requests: OK (Not Supported) > > Test input 0: > > Streaming ioctls: > test read/write: OK > test blocking wait: OK > warn: v4l2-test-buffers.cpp(1429): Can free buffers even > if still mmap()ed > test MMAP (no poll): OK > warn: v4l2-test-buffers.cpp(1429): Can free buffers even > if still mmap()ed > test MMAP (select): OK > warn: v4l2-test-buffers.cpp(1429): Can free buffers even > if still mmap()ed > test MMAP (epoll): OK > test USERPTR (no poll): OK > test USERPTR (select): OK > test DMABUF (no poll): OK (Not Supported) > test DMABUF (select): OK (Not Supported) > > Total for bm2835 mmal device /dev/video0: 53, Succeeded: 53, Failed: > 0, Warnings: 3 > > The warnings are because downstream we have an early version of > "media: vb2: Allow reqbufs(0) with "in use" MMAP buff
Re: [PATCH 00/31] staging: bcm2835-camera: Improvements
Hi Stefan Firstly a huge thank you for picking this up - it's been on my to-do list for ages, and just hasn't made it to the top. On Fri, 28 Jun 2019 at 09:06, Hans Verkuil wrote: > > Hi Stefan, > > On 6/27/19 8:55 PM, Stefan Wahren wrote: > > This is an attempt to help Dave Stevenson to get all the fixes and > > improvements of the bcm2835-camera driver into mainline. > > > > Mostly i only polished the commit logs for upstream. > > > > The series based on the latest bugfix V2 of staging: bcm2835-camera: Resto= > > re > > return behavior of ctrl_set_bitrate(). > > Thank you for working on this. > > Three high-level questions: > > 1) Can you post the output of 'v4l2-compliance -s' using the latest > v4l2-compliance >from https://git.linuxtv.org/v4l-utils.git ? I'm interested to see what > the >status is of this driver w.r.t. the compliance tests. Hi Hans. Running it against the downstream driver (which should be nearly identical based on this set of patches), 4.19, on a Pi4 I get pi@raspberrypi:~/v4l-utils/utils/v4l2-compliance $ ./v4l2-compliance -s v4l2-compliance SHA: b16f9e945d74aa552abdd6f873821cb77faaf13a, 32 bits Compliance test for bm2835 mmal device /dev/video0: Driver Info: Driver name : bm2835 mmal Card type: mmal service 16.1 Bus info : platform:bcm2835-v4l2 Driver version : 4.19.56 Capabilities : 0x8525 Video Capture Video Overlay Read/Write Streaming Extended Pix Format Device Capabilities Device Caps : 0x0525 Video Capture Video Overlay Read/Write Streaming Extended Pix Format Required ioctls: test VIDIOC_QUERYCAP: OK Allow for multiple opens: test second /dev/video0 open: OK test VIDIOC_QUERYCAP: OK test VIDIOC_G/S_PRIORITY: OK test for unlimited opens: OK Debug ioctls: test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported) test VIDIOC_LOG_STATUS: OK Input ioctls: test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported) test VIDIOC_ENUMAUDIO: OK (Not Supported) test VIDIOC_G/S/ENUMINPUT: OK test VIDIOC_G/S_AUDIO: OK (Not Supported) Inputs: 1 Audio Inputs: 0 Tuners: 0 Output ioctls: test VIDIOC_G/S_MODULATOR: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_ENUMAUDOUT: OK (Not Supported) test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported) test VIDIOC_G/S_AUDOUT: OK (Not Supported) Outputs: 0 Audio Outputs: 0 Modulators: 0 Input/Output configuration ioctls: test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported) test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported) test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported) test VIDIOC_G/S_EDID: OK (Not Supported) Control ioctls (Input 0): test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK test VIDIOC_QUERYCTRL: OK test VIDIOC_G/S_CTRL: OK test VIDIOC_G/S/TRY_EXT_CTRLS: OK test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 33 Private Controls: 0 Format ioctls (Input 0): test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK test VIDIOC_G/S_PARM: OK test VIDIOC_G_FBUF: OK test VIDIOC_G_FMT: OK test VIDIOC_TRY_FMT: OK test VIDIOC_S_FMT: OK test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported) test Cropping: OK (Not Supported) test Composing: OK (Not Supported) test Scaling: OK Codec ioctls (Input 0): test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported) test VIDIOC_G_ENC_INDEX: OK (Not Supported) test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported) Buffer ioctls (Input 0): test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK test VIDIOC_EXPBUF: OK (Not Supported) test Requests: OK (Not Supported) Test input 0: Streaming ioctls: test read/write: OK test blocking wait: OK warn: v4l2-test-buffers.cpp(1429): Can free buffers even if still mmap()ed test MMAP (no poll): OK warn: v4l2-test-buffers.cpp(1429): Can free buffers even if still mmap()ed test MMAP (select): OK warn: v4l2-test-buffers.cpp(1429): Can free buffers even if still mmap()ed test MMAP (epoll): OK test USERPTR (no poll): OK test USERPTR (select): OK test DMABUF (no poll): OK (Not Supported) test DMABUF (select): OK (Not Supported) Total for bm2835 mmal device /dev/video0: 53, Succeeded: 53, Failed: 0, Warnings: 3 The warnings are because downstream we have an early version of "media: vb2: Allow reqbufs(0) with "in use" MMAP buffers" that doesn't set the flag to userspace. I need to revert that and apply the accepted one (it's not a clean cherrypick though). I do try and run compliance every few months because I'm aware that you frequently add extra tests. > 2) What is the status of this driver from your point of view? What is nee
Re: [PATCH 00/31] staging: bcm2835-camera: Improvements
Hi Stefan, On 6/27/19 8:55 PM, Stefan Wahren wrote: > This is an attempt to help Dave Stevenson to get all the fixes and > improvements of the bcm2835-camera driver into mainline. > > Mostly i only polished the commit logs for upstream. > > The series based on the latest bugfix V2 of staging: bcm2835-camera: Resto= > re > return behavior of ctrl_set_bitrate(). Thank you for working on this. Three high-level questions: 1) Can you post the output of 'v4l2-compliance -s' using the latest v4l2-compliance from https://git.linuxtv.org/v4l-utils.git ? I'm interested to see what the status is of this driver w.r.t. the compliance tests. 2) What is the status of this driver from your point of view? What is needed to get it out of staging? 3) Out of curiosity: is this driver still valid for RPi4? Regards, Hans > > Dave Stevenson (31): > staging: bcm2835-camera: Ensure H264 header bytes get a sensible > timestamp > staging: bcm2835-camera: Check the error for REPEAT_SEQ_HEADER > staging: bcm2835-camera: Replace spinlock protecting context_map with > mutex > staging: bcm2835-camera: Do not bulk receive from service thread > staging: bcm2835-camera: Correctly denote key frames in encoded data > staging: bcm2835-camera: Return early on errors > staging: bcm2835-camera: Remove dead email addresses > staging: bcm2835-camera: Fix comment style violations. > staging: bcm2835-camera: Fix spacing around operators > staging: bcm2835-camera: Reduce length of enum names > staging: bcm2835-camera: Fix multiple line dereference errors > staging: bcm2835-camera: Fix brace style issues. > staging: bcm2835-camera: Fix missing lines between items > staging: bcm2835-camera: Fix open parenthesis alignment > staging: bcm2835-camera: Ensure all buffers are returned on disable > staging: bcm2835-camera: Remove check of the number of buffers > supplied > staging: bcm2835-camera: Handle empty EOS buffers whilst streaming > staging: bcm2835-camera: Set sequence number correctly > staging: bcm2835-camera: Ensure timestamps never go backwards. > staging: bcm2835-camera: Add multiple inclusion protection to headers > staging: bcm2835-camera: Unify header inclusion defines > staging: bcm2835-camera: Fix multiple assignments should be avoided > staging: bcm2835-camera: Fix up mmal-parameters.h > staging: bcm2835-camera: Use enums for max value in controls > staging: bcm2835-camera: Correct V4L2_CID_COLORFX_CBCR behaviour > staging: bcm2835-camera: Remove/amend some obsolete comments > staging: mmal-vchiq: Avoid use of bool in structures > staging: bcm2835-camera: Fix stride on RGB3/BGR3 formats > staging: bcm2835-camera: Add sanity checks for queue_setup/CREATE_BUFS > staging: bcm2835-camera: Set the field value within ach buffer > staging: bcm2835-camera: Correct ctrl min/max/step/def to 64bit > > .../vc04_services/bcm2835-camera/bcm2835-camera.c | 378 = > - > .../vc04_services/bcm2835-camera/bcm2835-camera.h | 34 +- > .../vc04_services/bcm2835-camera/controls.c| 184 +- > .../vc04_services/bcm2835-camera/mmal-common.h | 12 +- > .../vc04_services/bcm2835-camera/mmal-encodings.h | 9 +- > .../vc04_services/bcm2835-camera/mmal-msg-common.h | 9 +- > .../vc04_services/bcm2835-camera/mmal-msg-format.h | 104 +++--- > .../vc04_services/bcm2835-camera/mmal-msg-port.h | 133 > .../vc04_services/bcm2835-camera/mmal-msg.h| 150 > .../vc04_services/bcm2835-camera/mmal-parameters.h | 286 +--- > .../vc04_services/bcm2835-camera/mmal-vchiq.c | 159 + > .../vc04_services/bcm2835-camera/mmal-vchiq.h | 22 +- > 12 files changed, 826 insertions(+), 654 deletions(-) > > =2D- > 2.7.4 >