Hi Sakari, Laurent On Mon, May 27, 2024 at 06:44:25AM GMT, Sakari Ailus wrote: > Hi Laurent, > > On Mon, May 27, 2024 at 04:19:11AM +0300, Laurent Pinchart wrote: > > > One API-based solution could be moving the IOCTL interface to MC device > > > node only. This wouldn't be a small change so I'm not proposing doing that > > > now. > > > > I think we could also use the request API. It is a bit more cumbersome > > to use from a userspace point of view, but this driver is meant to be > > used from libcamera, so we can isolate applications from the extra > > burden. > > > > We will need to add support for formats in the request API (or rather > > for requests in the format ioctls). > > > > From a kernel point of view, the helpers used by the codec drivers may > > not be suitable for ISP drivers, but I don't think it would be very > > difficult to implement other helpers is needed, isolating the ISP driver > > from the complexity of the request API. > > > > This doesn't preclude developing a better userspace API with ioctls on > > the MC device node only at a later point. If the above-mentioned kernel > > helpers are done right, transitioning to a new userspace API will have > > minimal impact on drivers. > > This is indeed the third feasible option. I agree. The work on the > framework side might not be that much either. > For the time being, I would like to move forward and merge the version of the driver with a single enabled context. As you can see the driver multiples the contexts by creating two groups The number of groups is defined by /* * We want to support 2 independent instances allowing 2 simultaneous users * of the ISP-BE (of course they share hardware, platform resources and mutex). * Each such instance comprises a group of device nodes representing input * and output queues, and a media controller device node to describe them. */ #define PISPBE_NUM_NODE_GROUPS 2 Can I simply set this to 1 or should the driver be reworked to remove the group concept completely (it will be quite some rework). You can guess what my preference is, and considering we want to experiment with a different API the group part will possibily need to be reintroduced. Also if we simply set PISPBE_NUM_NODE_GROUPS=1, the downstream RPi kernel will solely need to have 1 patch that restores the value to 2 to be able to use the mainline kernel driver instead of keeping their multi-context downstream version in use until multi-context is finalized in mainline. > -- > Regards, > > Sakari Ailus