Hi Laurent, On Thu, Apr 20, 2023 at 05:49:17PM +0300, Laurent Pinchart wrote: ... > > +common driver which does PCI configuration, firmware loading and parsing, > > +firmware authentication, DMA mapping and IPU-MMU (internal Memory mapping Unit) > > +configuration. intel_ipu6_isys implements V4L2, Media Controller and V4L2 > > +sub-device interfaces. The IPU6 ISYS driver supports camera sensors connected > > +to the IPU6 ISYS through V4L2 sub-device sensor drivers. > > Will the intel_ipu6 driver also serve a future intel_ipu6_psys driver, > or is it specific to the ISYS ? intel-ipu6 contains common parts required by both ISYS and PSYS drivers. > > > + > > +Input system driver > > +=================== > > + > > +Input System driver mainly configure CSI2 DPHY, construct the firmware stream > > s/^Input/The Input/ > s/configure/configures the/ > s/construct/constructs/ > > > +configuration and send commands to firmware and get response from hardware and > > s/send/sends/ > s/get response/gets responses/ > > > +firmware and then return buffers to user. > > s/return/returns/ > > So control of the ISYS goes through the firmware, the driver doesn't > access the hardware directly ? Must of the low-level hardware control takes place through firmware, the ISYS driver uses direct register access mainly for the communication with the ISYS firmware and PHY configuration. > > > +The ISYS is represented as several V4L2 sub-devices - 'Intel IPU6 CSI2 $port', > > +which provide V4L2 subdev interfaces to the user space, there are also several > > +video nodes for each CSI-2 stream capture - 'Intel IPU6 ISYS capture $num' which > > +provide interface to user to set formats, queue buffers and streaming. > > + > > +.. kernel-figure:: ipu6_isys_graph.svg > > + :alt: ipu6 isys media graph > > I see in the figure 6 CSI-2 receivers and 4 video nodes. Are those CSI-2 > receivers independent of each other, or do they share SoCs pins ? For > instance, I'm thinking about a use case where you would have 4 data > lanes and 2 clock lanes, and support capturing from 2x 2-lanes sensors > with 2 CSI-2 RX, or 1x 4-lanes sensor with 1 CSI-2 RX. More generally, > can you document the input options of the ISYS ? For DT-based systems > I'd expect this information to be in the DT bindings, here it needs to > be documented separately. This is a to-do item (as noted on the cover page). The number of video nodes is also going to change with streams support. > > On the video device node side, are there 4 independent hardware DMA > engines that can be dynamically connected to the different CSI-2 > receivers, or is that what the current firmware version provide, with > the hardware able to capture more than 4 streams with firmware > modifications ? > > > + > > +Capturing frames by IPU6 ISYS > > +------------------------------------ > > + > > +IPU6 ISYS is used to capture frames from the camera sensors connected to the > > +CSI2 port. The supported input formats of ISYS are listed in table below: > > s/port/ports/ > > > + > > +.. tabularcolumns:: |p{0.8cm}|p{4.0cm}|p{4.0cm}| > > + > > +.. flat-table:: > > + :header-rows: 1 > > + > > + * - IPU6 ISYS supported input formats > > + > > + * - RGB565, RGB888 > > + > > + * - UYVY8, YUYV8 > > Unless I'm mistaken, CSI-2 doesn't have separate UYVY and YUYV formats. > Am I missing something ? > > > + > > + * - RAW8, RAW10, RAW12 > > Is embedded data capture supported ? More generically, can we capture > different data types and/or virtual channels from the same CSI-2 input ? Yes but not quite yet (streams support is pending). > > What's the maximum resolution supported by the ISYS ? Are the DMA > engines independent, or would the maximum resolution be different if you > capture from a single camera sensor or multiple camera sensors at the > same time ? My understanding is they're independent, i.e. the maximum resolution isn't affected by what else is happening in the device. -- Regards, Sakari Ailus