Hi Sakari, few questions as switching to v4l2 sub-dev framework. > -----Original Message----- > From: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > Sent: Wednesday, February 15, 2023 12:06 AM > > Hi Wentong, > > Thanks for the patchset. > > On Mon, Feb 13, 2023 at 10:23:47AM +0800, Wentong Wu wrote: > > IVSC directly connects to camera sensor on source side, and on output > > side it not only connects ISH via I2C, but also exposes MIPI CSI-2 > > interface to output camera sensor data. IVSC can use the camera sensor > > data to do AI algorithm, and send the results to ISH. On the other > > end, IVSC can share camera sensor to host by routing the raw camera > > sensor data to the exposed MIPI CSI-2 interface. But they can not work > > at the same time, so software APIs are defined to sync the ownership. > > > > This commit defines the interfaces between IVSC and camera sensor > > driver in include/linux/ivsc.h. The camera driver controls ownership > > of the CSI-2 link and sensor with the acquire/release APIs. When > > acquiring camera, lane number and link freq are also required by IVSC > > frame router. > > The more I learn about this system, the more I'm inclined to think this > functionality should be exposed as a V4L2 sub-device. IVSC doesn't really do > anything to the data (as long as it directs it towards the CSI-2 receiver in the > SoC), but it is definitely part of the image pipeline. > > I suppose the intended use cases assume a single instance of IVSC (as well as > MEI) but there can, and often are, be multiple camera sensors in the system. The > decision whether to request pass-through from IVCS can't be done in the camera > sensor driver, and should not be visible to the camera sensor driver. Exposing > IVSC as a V4L2 sub-device makes this trivial to address, as the IVSC driver's V4L2 > sub-device video s_stream() operation gets called before streaming is started. > > The information whether IVSC is found between the camera sensor and the > host's CSI-2 receiver (IPU in this case) should come from system firmware and > accessed most probably by what is called cio2-bridge at the moment. > > The privacy status can be a V4L2 control. This should be a control or event? If control, how user-space handle privacy stuff? For the required link freq and lane number, is v4l2 control the correct way to configure them? If yes, seems there is no CID value for them so that we should custom some CID value(link freqm, lane number, and privacy) for ivsc in linux/v4l2-controls.h, is this acceptable? Thanks, Wentong > > Also cc Hans. > > >