From: Dave Stevenson <dave.stevenson@raspberrypi.org>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Stefan Wahren <wahrenst@gmx.net>, Eric Anholt <eric@anholt.net>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
"moderated list:BROADCOM BCM2835 ARM ARCHITECTURE"
<linux-rpi-kernel@lists.infradead.org>,
linux-arm-kernel@lists.infradead.org, devel@driverdev.osuosl.org,
LMML <linux-media@vger.kernel.org>
Subject: Re: [PATCH 00/31] staging: bcm2835-camera: Improvements
Date: Fri, 28 Jun 2019 11:39:19 +0100 [thread overview]
Message-ID: <CAAoAYcMxqNiHLVB=9PyiU1QmLNkzqBEVabdO35-ZTBB5ijSwxA@mail.gmail.com> (raw)
In-Reply-To: <f4492041-2587-eedb-8ae5-ae610e90fde2@xs4all.nl>
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 <hverkuil@xs4all.nl> 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 : 0x85200005
Video Capture
Video Overlay
Read/Write
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x05200005
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 needed to
> get it out of staging?
I think the main issue is the dependency on vchiq. I'm hoping that the
V4L2 side of this is now relatively clean, but it probably wants a
full review when someone has the time.
> 3) Out of curiosity: is this driver still valid for RPi4?
Yes, it is still valid. The imaging side hasn't changed significantly,
it just runs a bit faster.
Dave
> 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
> >
>
next prev parent reply other threads:[~2019-06-28 10:51 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-27 18:55 [PATCH 00/31] staging: bcm2835-camera: Improvements Stefan Wahren
2019-06-27 18:55 ` [PATCH 01/31] staging: bcm2835-camera: Ensure H264 header bytes get a sensible timestamp Stefan Wahren
2019-06-27 19:55 ` Nicolas Dufresne
2019-06-28 10:10 ` Dave Stevenson
2019-06-28 14:00 ` Nicolas Dufresne
2019-06-28 14:08 ` Hans Verkuil
2019-06-28 14:35 ` Nicolas Dufresne
2019-06-28 7:28 ` Dan Carpenter
2019-06-27 18:55 ` [PATCH 02/31] staging: bcm2835-camera: Check the error for REPEAT_SEQ_HEADER Stefan Wahren
2019-06-27 18:56 ` [PATCH 03/31] staging: bcm2835-camera: Replace spinlock protecting context_map with mutex Stefan Wahren
2019-06-27 18:56 ` [PATCH 04/31] staging: bcm2835-camera: Do not bulk receive from service thread Stefan Wahren
2019-06-27 18:56 ` [PATCH 05/31] staging: bcm2835-camera: Correctly denote key frames in encoded data Stefan Wahren
2019-06-27 18:56 ` [PATCH 06/31] staging: bcm2835-camera: Return early on errors Stefan Wahren
2019-06-28 7:38 ` Dan Carpenter
2019-06-27 18:56 ` [PATCH 07/31] staging: bcm2835-camera: Remove dead email addresses Stefan Wahren
2019-06-27 18:56 ` [PATCH 08/31] staging: bcm2835-camera: Fix comment style violations Stefan Wahren
2019-06-27 18:56 ` [PATCH 09/31] staging: bcm2835-camera: Fix spacing around operators Stefan Wahren
2019-06-27 18:56 ` [PATCH 10/31] staging: bcm2835-camera: Reduce length of enum names Stefan Wahren
2019-06-27 18:56 ` [PATCH 11/31] staging: bcm2835-camera: Fix multiple line dereference errors Stefan Wahren
2019-06-27 18:56 ` [PATCH 12/31] staging: bcm2835-camera: Fix brace style issues Stefan Wahren
2019-06-27 18:56 ` [PATCH 13/31] staging: bcm2835-camera: Fix missing lines between items Stefan Wahren
2019-06-27 18:56 ` [PATCH 14/31] staging: bcm2835-camera: Fix open parenthesis alignment Stefan Wahren
2019-06-27 18:56 ` [PATCH 15/31] staging: bcm2835-camera: Ensure all buffers are returned on disable Stefan Wahren
2019-06-27 18:56 ` [PATCH 16/31] staging: bcm2835-camera: Remove check of the number of buffers supplied Stefan Wahren
2019-06-27 18:56 ` [PATCH 17/31] staging: bcm2835-camera: Handle empty EOS buffers whilst streaming Stefan Wahren
2019-06-27 18:56 ` [PATCH 18/31] staging: bcm2835-camera: Set sequence number correctly Stefan Wahren
2019-06-27 18:56 ` [PATCH 19/31] staging: bcm2835-camera: Ensure timestamps never go backwards Stefan Wahren
2019-06-27 20:01 ` Nicolas Dufresne
2019-06-28 8:06 ` [PATCH 00/31] staging: bcm2835-camera: Improvements Hans Verkuil
2019-06-28 10:39 ` Dave Stevenson [this message]
2019-06-28 10:56 ` Hans Verkuil
2019-06-28 16:57 ` Stefan Wahren
2019-06-28 17:29 ` Dave Stevenson
2019-06-29 10:27 ` Stefan Wahren
2019-06-28 13:13 ` Hans Verkuil
2019-06-28 13:18 ` Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAAoAYcMxqNiHLVB=9PyiU1QmLNkzqBEVabdO35-ZTBB5ijSwxA@mail.gmail.com' \
--to=dave.stevenson@raspberrypi.org \
--cc=devel@driverdev.osuosl.org \
--cc=eric@anholt.net \
--cc=gregkh@linuxfoundation.org \
--cc=hverkuil@xs4all.nl \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rpi-kernel@lists.infradead.org \
--cc=mchehab@kernel.org \
--cc=wahrenst@gmx.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).