* [PATCH RFC 0/2] staging: vchiq_arm: Improve documentation @ 2025-05-09 22:11 Stefan Wahren 2025-05-09 22:11 ` [PATCH RFC 1/2] staging: vchiq_arm: Improve inline documentation Stefan Wahren 2025-05-09 22:11 ` [PATCH RFC 2/2] staging: vc04_services: Document VCHIQ character device Stefan Wahren 0 siblings, 2 replies; 8+ messages in thread From: Stefan Wahren @ 2025-05-09 22:11 UTC (permalink / raw) To: Florian Fainelli, Greg Kroah-Hartman Cc: Phil Elwell, Dan Carpenter, Laurent Pinchart, linux-arm-kernel, bcm-kernel-feedback-list, kernel-list, linux-staging, Stefan Wahren This series addresses the TODO about vc04_services documentation. The first patch provides some inline documentation and the second document the IOCTL of the VCHIQ character device. Phil Elwell (2): staging: vchiq_arm: Improve inline documentation staging: vc04_services: Document VCHIQ character device .../vc04_services/Documentation/vchiq-cdev | 87 +++++++++++++++++++ .../interface/vchiq_arm/vchiq_arm.c | 8 +- .../interface/vchiq_arm/vchiq_core.h | 56 +++++++++++- 3 files changed, 147 insertions(+), 4 deletions(-) create mode 100644 drivers/staging/vc04_services/Documentation/vchiq-cdev -- 2.34.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH RFC 1/2] staging: vchiq_arm: Improve inline documentation 2025-05-09 22:11 [PATCH RFC 0/2] staging: vchiq_arm: Improve documentation Stefan Wahren @ 2025-05-09 22:11 ` Stefan Wahren 2025-05-09 22:11 ` [PATCH RFC 2/2] staging: vc04_services: Document VCHIQ character device Stefan Wahren 1 sibling, 0 replies; 8+ messages in thread From: Stefan Wahren @ 2025-05-09 22:11 UTC (permalink / raw) To: Florian Fainelli, Greg Kroah-Hartman Cc: Phil Elwell, Dan Carpenter, Laurent Pinchart, linux-arm-kernel, bcm-kernel-feedback-list, kernel-list, linux-staging, Stefan Wahren From: Phil Elwell <phil@raspberrypi.com> Add more comments to the VCHIQ driver, which provides some high-level descriptions how things work. Link: https://github.com/raspberrypi/linux/pull/6801 Signed-off-by: Phil Elwell <phil@raspberrypi.com> [wahrenst@gmx.net: Rewrite commit log] Signed-off-by: Stefan Wahren <wahrenst@gmx.net> --- .../interface/vchiq_arm/vchiq_arm.c | 8 ++- .../interface/vchiq_arm/vchiq_core.h | 56 ++++++++++++++++++- 2 files changed, 60 insertions(+), 4 deletions(-) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c index 5dbf8d53db09..40c540ead66b 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -73,7 +73,13 @@ static const struct vchiq_platform_info bcm2836_info = { }; struct vchiq_arm_state { - /* Keepalive-related data */ + /* + * Keepalive-related data + * + * The keepalive mechanism was retro-fitted to VCHIQ to allow active + * services to prevent the system from suspending. + * This feature is not used on Raspberry Pi devices. + */ struct task_struct *ka_thread; struct completion ka_evt; atomic_t ka_use_count; diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h index 3b5c0618e567..3dd95e5e6557 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h @@ -171,6 +171,21 @@ struct vchiq_slot_info { short release_count; }; +/* + * VCHIQ is a reliable connection-oriented datagram protocol. + * + * A VCHIQ service is equivalent to a TCP connection, except: + * + FOURCCs are used for the rendezvous, and port numbers are assigned at the + * time the connection is established. + * + There is less of a distinction between server and client sockets, the only + * difference being which end makes the first move. + * + For a multi-client server, the server creates new "listening" services as + * the existing one becomes connected - there is no need to specify the + * maximum number of clients up front. + * + Data transfer is reliable but packetized (messages have defined ends). + * + Messages can be either short (capable of fitting in a slot) and in-band, + * or copied between external buffers (bulk transfers). + */ struct vchiq_service { struct vchiq_service_base base; unsigned int handle; @@ -286,6 +301,23 @@ struct vchiq_shared_state { int debug[DEBUG_MAX]; }; +/* + * vchiq_slot_zero describes the memory shared between the ARM host and the + * VideoCore VPU. The "master" and "slave" states are owned by the respective + * sides but visible to the other; the slots are shared, and the remaining + * fields are read-only. + * + * In the configuration used by this implementation, the memory is allocated + * by the host, the VPU is the master (the side which controls the DMA for bulk + * transfers), and the host is the slave. + * + * The ownership of slots changes with use: + * + When empty they are owned by the sender. + * + When partially filled they are shared with the receiver. + * + When completely full they are owned by the receiver. + * + When the receiver has finished processing the contents, they are recycled + * back to the sender. + */ struct vchiq_slot_zero { int magic; short version; @@ -300,6 +332,10 @@ struct vchiq_slot_zero { struct vchiq_slot_info slots[VCHIQ_MAX_SLOTS]; }; +/* + * This is the private runtime state used by each side. The same structure was + * originally used by both sides, but implementations have since diverged. + */ struct vchiq_state { struct device *dev; int id; @@ -321,13 +357,27 @@ struct vchiq_state { struct mutex mutex; struct vchiq_instance **instance; - /* Processes incoming messages */ + /* Processes all incoming messages which aren't synchronous */ struct task_struct *slot_handler_thread; - /* Processes recycled slots */ + /* + * Slots which have been fully processed and released by the (peer) + * receiver are added to the receiver queue, which is asynchronously + * processed by the recycle thread. + */ struct task_struct *recycle_thread; - /* Processes synchronous messages */ + /* + * Processes incoming synchronous messages + * + * The synchronous message channel is shared between all synchronous + * services, and provides a way for urgent messages to bypass + * potentially long queues of asynchronous messages in the normal slots. + * + * There can be only one outstanding synchronous message in + * each direction, and as a precious shared resource synchronous + * services should be used sparingly. + */ struct task_struct *sync_thread; /* Local implementation of the trigger remote event */ -- 2.34.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH RFC 2/2] staging: vc04_services: Document VCHIQ character device 2025-05-09 22:11 [PATCH RFC 0/2] staging: vchiq_arm: Improve documentation Stefan Wahren 2025-05-09 22:11 ` [PATCH RFC 1/2] staging: vchiq_arm: Improve inline documentation Stefan Wahren @ 2025-05-09 22:11 ` Stefan Wahren 2025-05-16 10:55 ` Stefan Wahren 2025-05-21 11:20 ` Greg Kroah-Hartman 1 sibling, 2 replies; 8+ messages in thread From: Stefan Wahren @ 2025-05-09 22:11 UTC (permalink / raw) To: Florian Fainelli, Greg Kroah-Hartman Cc: Phil Elwell, Dan Carpenter, Laurent Pinchart, linux-arm-kernel, bcm-kernel-feedback-list, kernel-list, linux-staging, Stefan Wahren From: Phil Elwell <phil@raspberrypi.com> Document the IOCTLs for the VCHIQ character device, which provide a userspace interface to access the VideoCore VPU of the Raspberry Pi. Several ARM side libraries make use of it like EGL, MMAL and OpenMAX. Link: https://github.com/raspberrypi/linux/pull/6801 Signed-off-by: Phil Elwell <phil@raspberrypi.com> [wahrenst@gmx.net: Rewrite commit log] Signed-off-by: Stefan Wahren <wahrenst@gmx.net> --- .../vc04_services/Documentation/vchiq-cdev | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 drivers/staging/vc04_services/Documentation/vchiq-cdev diff --git a/drivers/staging/vc04_services/Documentation/vchiq-cdev b/drivers/staging/vc04_services/Documentation/vchiq-cdev new file mode 100644 index 000000000000..99ab2567643e --- /dev/null +++ b/drivers/staging/vc04_services/Documentation/vchiq-cdev @@ -0,0 +1,87 @@ +What: /dev/vchiq +Date: October 2016 +KernelVersion: 4.9 +Contact: kernel-list@raspberrypi.com +Description: + The ioctl interface for the VCHIQ character device. + Following actions are supported: + + * VCHIQ_IOC_CONNECT: + Establish/confirm the link to the VPU peer. + + * VCHIQ_IOC_SHUTDOWN: + Close the link to the VPU peer, removing all services. + + * VCHIQ_IOC_CREATE_SERVICE: + Create a VCHIQ service with the given FOURCC, registering a + callback. If is_open is true, attempt to connect to the same + FOURCC on the peer. If successful, populates the handle field + in the parameter structure, otherwise returns an error. + + * VCHIQ_IOC_REMOVE_SERVICE: + Close and remove the service indicated by the provided + handle. + + * VCHIQ_IOC_QUEUE_MESSAGE: + Adds the given in-band message for the indicated server to + the queue. + + * VCHIQ_IOC_QUEUE_BULK_TRANSMIT: + Adds the given out-of-band bulk message for the indicated + service to the bulk queue. + + * VCHIQ_IOC_QUEUE_BULK_RECEIVE: + Adds the given out-of-band bulk buffer for data from the + indicated service to the bulk queue. + + * VCHIQ_IOC_AWAIT_COMPLETION: + The in-kernel API allows direct callbacks to client code. + Userspace clients rely on the equivalent of an RPC, with the + parameters for each callback marshalled into structures + called completions. This method blocks waiting for + completions to process. + + * VCHIQ_IOC_DEQUEUE_MESSAGE: + Copy the next message for the indicated service, releasing + the space that was occupied. Optionally blocks if no message + is waiting. + + * VCHIQ_IOC_GET_CLIENT_ID: + Retrieve an identifier for the client. This is intended to + allow instances of multiple services to be grouped. For + services provided by Linux the client ID is the pid. VPU + services have a client ID of 1. + + * VCHIQ_IOC_GET_CONFIG: + Returns various properties of the VCHIQ configuration, such + as the maximum message size and version numbers. + + * VCHIQ_IOC_CLOSE_SERVICE: + Cause a service to disconnect from the peer, returning it to + the closed/listening state, i.e. REMOVE_SERVICE but without + destroying the service. + + * VCHIQ_IOC_USE_SERVICE: + * VCHIQ_IOC_RELEASE_SERVICE: + Use to mark the start and end of activity on a service. An + active service is intended to prevent the system from + suspending. N.B. Raspberry Pi devices that run VCHIQ do not + implement suspend/resume. + + * VCHIQ_IOC_SET_SERVICE_OPTION: + Sets a number of per-service options: AUTOCLOSE, SLOT_QUOTA, + MESSAGE_QUOTA, SYNCHRONOUS mode and TRACE. + + * VCHIQ_IOC_DUMP_PHYS_MEM: + No longer implemented. + + * VCHIQ_IOC_LIB_VERSION: + Notify the kernel of the version of the userspace VCHIQ + library being used. Currently used to determine if the + CLOSE_DELIVERED ioctl is used, and therefore whether to + wait for the extra handshake on a close. + + * VCHIQ_IOC_CLOSE_DELIVERED: + Signal that the userspace code has finished processing the + close. This additional handshake avoids a race on service + closure. -- 2.34.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH RFC 2/2] staging: vc04_services: Document VCHIQ character device 2025-05-09 22:11 ` [PATCH RFC 2/2] staging: vc04_services: Document VCHIQ character device Stefan Wahren @ 2025-05-16 10:55 ` Stefan Wahren 2025-05-21 11:20 ` Greg Kroah-Hartman 1 sibling, 0 replies; 8+ messages in thread From: Stefan Wahren @ 2025-05-16 10:55 UTC (permalink / raw) To: Florian Fainelli, Greg Kroah-Hartman, Jonathan Corbet Cc: Phil Elwell, Dan Carpenter, Laurent Pinchart, linux-arm-kernel, bcm-kernel-feedback-list, kernel-list, linux-staging, linux-doc Hi, [add Jonathan & linux-doc] Am 10.05.25 um 00:11 schrieb Stefan Wahren: > From: Phil Elwell <phil@raspberrypi.com> > > Document the IOCTLs for the VCHIQ character device, which provide > a userspace interface to access the VideoCore VPU of the > Raspberry Pi. Several ARM side libraries make use of it like EGL, > MMAL and OpenMAX. > > Link: https://github.com/raspberrypi/linux/pull/6801 > Signed-off-by: Phil Elwell <phil@raspberrypi.com> > [wahrenst@gmx.net: Rewrite commit log] > Signed-off-by: Stefan Wahren <wahrenst@gmx.net> I sent this series as RFC because I don't know if this is the right place and/or form of IOCTL documentation for a staging driver. > --- > .../vc04_services/Documentation/vchiq-cdev | 87 +++++++++++++++++++ > 1 file changed, 87 insertions(+) > create mode 100644 drivers/staging/vc04_services/Documentation/vchiq-cdev > > diff --git a/drivers/staging/vc04_services/Documentation/vchiq-cdev b/drivers/staging/vc04_services/Documentation/vchiq-cdev > new file mode 100644 > index 000000000000..99ab2567643e > --- /dev/null > +++ b/drivers/staging/vc04_services/Documentation/vchiq-cdev > @@ -0,0 +1,87 @@ > +What: /dev/vchiq > +Date: October 2016 > +KernelVersion: 4.9 > +Contact: kernel-list@raspberrypi.com > +Description: > + The ioctl interface for the VCHIQ character device. > + Following actions are supported: > + > + * VCHIQ_IOC_CONNECT: > + Establish/confirm the link to the VPU peer. > + > + * VCHIQ_IOC_SHUTDOWN: > + Close the link to the VPU peer, removing all services. > + > + * VCHIQ_IOC_CREATE_SERVICE: > + Create a VCHIQ service with the given FOURCC, registering a > + callback. If is_open is true, attempt to connect to the same > + FOURCC on the peer. If successful, populates the handle field > + in the parameter structure, otherwise returns an error. > + > + * VCHIQ_IOC_REMOVE_SERVICE: > + Close and remove the service indicated by the provided > + handle. > + > + * VCHIQ_IOC_QUEUE_MESSAGE: > + Adds the given in-band message for the indicated server to > + the queue. > + > + * VCHIQ_IOC_QUEUE_BULK_TRANSMIT: > + Adds the given out-of-band bulk message for the indicated > + service to the bulk queue. > + > + * VCHIQ_IOC_QUEUE_BULK_RECEIVE: > + Adds the given out-of-band bulk buffer for data from the > + indicated service to the bulk queue. > + > + * VCHIQ_IOC_AWAIT_COMPLETION: > + The in-kernel API allows direct callbacks to client code. > + Userspace clients rely on the equivalent of an RPC, with the > + parameters for each callback marshalled into structures > + called completions. This method blocks waiting for > + completions to process. > + > + * VCHIQ_IOC_DEQUEUE_MESSAGE: > + Copy the next message for the indicated service, releasing > + the space that was occupied. Optionally blocks if no message > + is waiting. > + > + * VCHIQ_IOC_GET_CLIENT_ID: > + Retrieve an identifier for the client. This is intended to > + allow instances of multiple services to be grouped. For > + services provided by Linux the client ID is the pid. VPU > + services have a client ID of 1. > + > + * VCHIQ_IOC_GET_CONFIG: > + Returns various properties of the VCHIQ configuration, such > + as the maximum message size and version numbers. > + > + * VCHIQ_IOC_CLOSE_SERVICE: > + Cause a service to disconnect from the peer, returning it to > + the closed/listening state, i.e. REMOVE_SERVICE but without > + destroying the service. > + > + * VCHIQ_IOC_USE_SERVICE: > + * VCHIQ_IOC_RELEASE_SERVICE: > + Use to mark the start and end of activity on a service. An > + active service is intended to prevent the system from > + suspending. N.B. Raspberry Pi devices that run VCHIQ do not > + implement suspend/resume. > + > + * VCHIQ_IOC_SET_SERVICE_OPTION: > + Sets a number of per-service options: AUTOCLOSE, SLOT_QUOTA, > + MESSAGE_QUOTA, SYNCHRONOUS mode and TRACE. > + > + * VCHIQ_IOC_DUMP_PHYS_MEM: > + No longer implemented. > + > + * VCHIQ_IOC_LIB_VERSION: > + Notify the kernel of the version of the userspace VCHIQ > + library being used. Currently used to determine if the > + CLOSE_DELIVERED ioctl is used, and therefore whether to > + wait for the extra handshake on a close. > + > + * VCHIQ_IOC_CLOSE_DELIVERED: > + Signal that the userspace code has finished processing the > + close. This additional handshake avoids a race on service > + closure. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RFC 2/2] staging: vc04_services: Document VCHIQ character device 2025-05-09 22:11 ` [PATCH RFC 2/2] staging: vc04_services: Document VCHIQ character device Stefan Wahren 2025-05-16 10:55 ` Stefan Wahren @ 2025-05-21 11:20 ` Greg Kroah-Hartman 2025-05-21 11:28 ` Laurent Pinchart 1 sibling, 1 reply; 8+ messages in thread From: Greg Kroah-Hartman @ 2025-05-21 11:20 UTC (permalink / raw) To: Stefan Wahren Cc: Florian Fainelli, Phil Elwell, Dan Carpenter, Laurent Pinchart, linux-arm-kernel, bcm-kernel-feedback-list, kernel-list, linux-staging On Sat, May 10, 2025 at 12:11:52AM +0200, Stefan Wahren wrote: > From: Phil Elwell <phil@raspberrypi.com> > > Document the IOCTLs for the VCHIQ character device, which provide > a userspace interface to access the VideoCore VPU of the > Raspberry Pi. Several ARM side libraries make use of it like EGL, > MMAL and OpenMAX. > > Link: https://github.com/raspberrypi/linux/pull/6801 > Signed-off-by: Phil Elwell <phil@raspberrypi.com> > [wahrenst@gmx.net: Rewrite commit log] > Signed-off-by: Stefan Wahren <wahrenst@gmx.net> > --- > .../vc04_services/Documentation/vchiq-cdev | 87 +++++++++++++++++++ > 1 file changed, 87 insertions(+) > create mode 100644 drivers/staging/vc04_services/Documentation/vchiq-cdev > > diff --git a/drivers/staging/vc04_services/Documentation/vchiq-cdev b/drivers/staging/vc04_services/Documentation/vchiq-cdev > new file mode 100644 > index 000000000000..99ab2567643e > --- /dev/null > +++ b/drivers/staging/vc04_services/Documentation/vchiq-cdev > @@ -0,0 +1,87 @@ > +What: /dev/vchiq > +Date: October 2016 > +KernelVersion: 4.9 > +Contact: kernel-list@raspberrypi.com > +Description: > + The ioctl interface for the VCHIQ character device. > + Following actions are supported: > + > + * VCHIQ_IOC_CONNECT: > + Establish/confirm the link to the VPU peer. I understand the need, but this does not document the parameters to the ioctls, so it's not all that useful. How about just a normal documentation file with this all written out? thanks, greg k-h ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RFC 2/2] staging: vc04_services: Document VCHIQ character device 2025-05-21 11:20 ` Greg Kroah-Hartman @ 2025-05-21 11:28 ` Laurent Pinchart 2025-05-21 11:39 ` Stefan Wahren 0 siblings, 1 reply; 8+ messages in thread From: Laurent Pinchart @ 2025-05-21 11:28 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Stefan Wahren, Florian Fainelli, Phil Elwell, Dan Carpenter, linux-arm-kernel, bcm-kernel-feedback-list, kernel-list, linux-staging On Wed, May 21, 2025 at 01:20:54PM +0200, Greg KH wrote: > On Sat, May 10, 2025 at 12:11:52AM +0200, Stefan Wahren wrote: > > From: Phil Elwell <phil@raspberrypi.com> > > > > Document the IOCTLs for the VCHIQ character device, which provide > > a userspace interface to access the VideoCore VPU of the > > Raspberry Pi. Several ARM side libraries make use of it like EGL, > > MMAL and OpenMAX. > > > > Link: https://github.com/raspberrypi/linux/pull/6801 > > Signed-off-by: Phil Elwell <phil@raspberrypi.com> > > [wahrenst@gmx.net: Rewrite commit log] > > Signed-off-by: Stefan Wahren <wahrenst@gmx.net> > > --- > > .../vc04_services/Documentation/vchiq-cdev | 87 +++++++++++++++++++ > > 1 file changed, 87 insertions(+) > > create mode 100644 drivers/staging/vc04_services/Documentation/vchiq-cdev > > > > diff --git a/drivers/staging/vc04_services/Documentation/vchiq-cdev b/drivers/staging/vc04_services/Documentation/vchiq-cdev > > new file mode 100644 > > index 000000000000..99ab2567643e > > --- /dev/null > > +++ b/drivers/staging/vc04_services/Documentation/vchiq-cdev > > @@ -0,0 +1,87 @@ > > +What: /dev/vchiq > > +Date: October 2016 > > +KernelVersion: 4.9 > > +Contact: kernel-list@raspberrypi.com > > +Description: > > + The ioctl interface for the VCHIQ character device. > > + Following actions are supported: > > + > > + * VCHIQ_IOC_CONNECT: > > + Establish/confirm the link to the VPU peer. > > I understand the need, but this does not document the parameters to the > ioctls, so it's not all that useful. How about just a normal > documentation file with this all written out? That would be my preference too, somewhere in Documentation/userspace-api/. -- Regards, Laurent Pinchart ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RFC 2/2] staging: vc04_services: Document VCHIQ character device 2025-05-21 11:28 ` Laurent Pinchart @ 2025-05-21 11:39 ` Stefan Wahren 2025-05-21 11:52 ` Laurent Pinchart 0 siblings, 1 reply; 8+ messages in thread From: Stefan Wahren @ 2025-05-21 11:39 UTC (permalink / raw) To: Laurent Pinchart, Greg Kroah-Hartman Cc: Florian Fainelli, Phil Elwell, Dan Carpenter, linux-arm-kernel, bcm-kernel-feedback-list, kernel-list, linux-staging Hi, Am 21.05.25 um 13:28 schrieb Laurent Pinchart: > On Wed, May 21, 2025 at 01:20:54PM +0200, Greg KH wrote: >> On Sat, May 10, 2025 at 12:11:52AM +0200, Stefan Wahren wrote: >>> From: Phil Elwell <phil@raspberrypi.com> >>> >>> Document the IOCTLs for the VCHIQ character device, which provide >>> a userspace interface to access the VideoCore VPU of the >>> Raspberry Pi. Several ARM side libraries make use of it like EGL, >>> MMAL and OpenMAX. >>> >>> Link: https://github.com/raspberrypi/linux/pull/6801 >>> Signed-off-by: Phil Elwell <phil@raspberrypi.com> >>> [wahrenst@gmx.net: Rewrite commit log] >>> Signed-off-by: Stefan Wahren <wahrenst@gmx.net> >>> --- >>> .../vc04_services/Documentation/vchiq-cdev | 87 +++++++++++++++++++ >>> 1 file changed, 87 insertions(+) >>> create mode 100644 drivers/staging/vc04_services/Documentation/vchiq-cdev >>> >>> diff --git a/drivers/staging/vc04_services/Documentation/vchiq-cdev b/drivers/staging/vc04_services/Documentation/vchiq-cdev >>> new file mode 100644 >>> index 000000000000..99ab2567643e >>> --- /dev/null >>> +++ b/drivers/staging/vc04_services/Documentation/vchiq-cdev >>> @@ -0,0 +1,87 @@ >>> +What: /dev/vchiq >>> +Date: October 2016 >>> +KernelVersion: 4.9 >>> +Contact: kernel-list@raspberrypi.com >>> +Description: >>> + The ioctl interface for the VCHIQ character device. >>> + Following actions are supported: >>> + >>> + * VCHIQ_IOC_CONNECT: >>> + Establish/confirm the link to the VPU peer. >> I understand the need, but this does not document the parameters to the >> ioctls, so it's not all that useful. How about just a normal >> documentation file with this all written out? > That would be my preference too, somewhere in > Documentation/userspace-api/. > could you please point me to a comparable IOCTL documenation to better understand your expectations? ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RFC 2/2] staging: vc04_services: Document VCHIQ character device 2025-05-21 11:39 ` Stefan Wahren @ 2025-05-21 11:52 ` Laurent Pinchart 0 siblings, 0 replies; 8+ messages in thread From: Laurent Pinchart @ 2025-05-21 11:52 UTC (permalink / raw) To: Stefan Wahren Cc: Greg Kroah-Hartman, Florian Fainelli, Phil Elwell, Dan Carpenter, linux-arm-kernel, bcm-kernel-feedback-list, kernel-list, linux-staging On Wed, May 21, 2025 at 01:39:15PM +0200, Stefan Wahren wrote: > Am 21.05.25 um 13:28 schrieb Laurent Pinchart: > > On Wed, May 21, 2025 at 01:20:54PM +0200, Greg KH wrote: > >> On Sat, May 10, 2025 at 12:11:52AM +0200, Stefan Wahren wrote: > >>> From: Phil Elwell <phil@raspberrypi.com> > >>> > >>> Document the IOCTLs for the VCHIQ character device, which provide > >>> a userspace interface to access the VideoCore VPU of the > >>> Raspberry Pi. Several ARM side libraries make use of it like EGL, > >>> MMAL and OpenMAX. > >>> > >>> Link: https://github.com/raspberrypi/linux/pull/6801 > >>> Signed-off-by: Phil Elwell <phil@raspberrypi.com> > >>> [wahrenst@gmx.net: Rewrite commit log] > >>> Signed-off-by: Stefan Wahren <wahrenst@gmx.net> > >>> --- > >>> .../vc04_services/Documentation/vchiq-cdev | 87 +++++++++++++++++++ > >>> 1 file changed, 87 insertions(+) > >>> create mode 100644 drivers/staging/vc04_services/Documentation/vchiq-cdev > >>> > >>> diff --git a/drivers/staging/vc04_services/Documentation/vchiq-cdev b/drivers/staging/vc04_services/Documentation/vchiq-cdev > >>> new file mode 100644 > >>> index 000000000000..99ab2567643e > >>> --- /dev/null > >>> +++ b/drivers/staging/vc04_services/Documentation/vchiq-cdev > >>> @@ -0,0 +1,87 @@ > >>> +What: /dev/vchiq > >>> +Date: October 2016 > >>> +KernelVersion: 4.9 > >>> +Contact: kernel-list@raspberrypi.com > >>> +Description: > >>> + The ioctl interface for the VCHIQ character device. > >>> + Following actions are supported: > >>> + > >>> + * VCHIQ_IOC_CONNECT: > >>> + Establish/confirm the link to the VPU peer. > >> > >> I understand the need, but this does not document the parameters to the > >> ioctls, so it's not all that useful. How about just a normal > >> documentation file with this all written out? > > > > That would be my preference too, somewhere in > > Documentation/userspace-api/. > > could you please point me to a comparable IOCTL documenation to better > understand your expectations? Documentation/userspace-api/gpio/ seems to be a good example. You can split ioctls in different files, see gpio-get-chipinfo-ioctl.rst for instance. If several ioctls are closely related they can also be documented in the same file, see for instance Documentation/userspace-api/media/v4l/vidioc-g-ctrl.rst. -- Regards, Laurent Pinchart ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-05-21 11:52 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-05-09 22:11 [PATCH RFC 0/2] staging: vchiq_arm: Improve documentation Stefan Wahren 2025-05-09 22:11 ` [PATCH RFC 1/2] staging: vchiq_arm: Improve inline documentation Stefan Wahren 2025-05-09 22:11 ` [PATCH RFC 2/2] staging: vc04_services: Document VCHIQ character device Stefan Wahren 2025-05-16 10:55 ` Stefan Wahren 2025-05-21 11:20 ` Greg Kroah-Hartman 2025-05-21 11:28 ` Laurent Pinchart 2025-05-21 11:39 ` Stefan Wahren 2025-05-21 11:52 ` Laurent Pinchart
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox