linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Todor Tomov <todor.tomov@linaro.org>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: mchehab@kernel.org, hans.verkuil@cisco.com,
	s.nawrocki@samsung.com, sakari.ailus@iki.fi,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v4 04/21] doc: media/v4l-drivers: Add Qualcomm Camera Subsystem driver document
Date: Fri, 18 Aug 2017 10:53:58 +0300	[thread overview]
Message-ID: <5d7d59c0-6306-ca14-fabe-d6789f6bfd5d@linaro.org> (raw)
In-Reply-To: <1ee25592-63c7-0da8-c58f-a82e0b5d692f@xs4all.nl>

Hi Hans,

On 18.08.2017 10:45, Hans Verkuil wrote:
> Hi Todor,
> 
> A few small comments below:
> 
> On 08/08/2017 03:30 PM, Todor Tomov wrote:
>> Add a document to describe Qualcomm Camera Subsystem driver.
>>
>> Signed-off-by: Todor Tomov <todor.tomov@linaro.org>
>> ---
>>  Documentation/media/v4l-drivers/qcom_camss.rst | 124 +++++++++++++++++++++++++
>>  1 file changed, 124 insertions(+)
>>  create mode 100644 Documentation/media/v4l-drivers/qcom_camss.rst
>>
>> diff --git a/Documentation/media/v4l-drivers/qcom_camss.rst b/Documentation/media/v4l-drivers/qcom_camss.rst
>> new file mode 100644
>> index 0000000..4707ea7
>> --- /dev/null
>> +++ b/Documentation/media/v4l-drivers/qcom_camss.rst
>> @@ -0,0 +1,124 @@
>> +.. include:: <isonum.txt>
>> +
>> +Qualcomm Camera Subsystem driver
>> +================================
>> +
>> +Introduction
>> +------------
>> +
>> +This file documents the Qualcomm Camera Subsystem driver located under
>> +drivers/media/platform/qcom/camss-8x16.
>> +
>> +The current version of the driver supports the Camera Subsystem found on
>> +Qualcomm MSM8916 and APQ8016 processors.
>> +
>> +The driver implements V4L2, Media controller and V4L2 subdev interfaces.
>> +Camera sensor using V4L2 subdev interface in the kernel is supported.
>> +
>> +The driver is implemented using as a reference the Qualcomm Camera Subsystem
>> +driver for Android as found in Code Aurora [#f1]_.
>> +
>> +
>> +Qualcomm Camera Subsystem hardware
>> +----------------------------------
>> +
>> +The Camera Subsystem hardware found on 8x16 processors and supported by the
>> +driver consists of:
>> +
>> +- 2 CSIPHY modules. They handle the Physical layer of the CSI2 receivers.
>> +  A separate camera sensor can be connected to each of the CSIPHY module;
>> +- 2 CSID (CSI Decoder) modules. They handle the Protocol and Application layer
>> +  of the CSI2 receivers. A CSID can decode data stream from any of the CSIPHY.
>> +  Each CSID also contains a TG (Test Generator) block which can generate
>> +  artificial input data for test purposes;
>> +- ISPIF (ISP Interface) module. Handles the routing of the data streams from
>> +  the CSIDs to the inputs of the VFE;
>> +- VFE (Video Front End) module. Contains a pipeline of image processing hardware
>> +  blocks. The VFE has different input interfaces. The PIX input interface feeds
>> +  the input data to the image processing pipeline. Three RDI input interfaces
>> +  bypass the image processing pipeline. The VFE also contains the AXI bus
>> +  interface which writes the output data to memory.
> 
> Can you explain what PIX and RDI stand for?
> 
> I would also think it is a good idea to add a comment at the top of the various
> subdev sources that say a bit more than just "CSID Module".
> 
> A simple "CSID (CSI Decoder) Module" is enough. Just so the reader knows what
> it is all about.
> 
> Otherwise I don't have any more comments about this series.
> 
> I don't need a v5 for this, if you can just post one patch for this documentation
> and one patch improving the source comments as described above, then that's
> fine with me.

Thank you for the review again.
I'll post two additional patches to add explanations of the abbreviations.

> 
> Regards,
> 
> 	Hans
> 
>> +
>> +
>> +Supported functionality
>> +-----------------------
>> +
>> +The current version of the driver supports:
>> +
>> +- input from camera sensor via CSIPHY;
>> +- generation of test input data by the TG in CSID;
>> +- raw dump of the input data to memory. RDI interface of VFE is supported.
>> +  PIX interface (ISP processing, statistics engines, resize/crop, format
>> +  conversion) is not supported in the current version;
>> +- concurrent and independent usage of two data inputs - could be camera sensors
>> +  and/or TG.
>> +
>> +
>> +Driver Architecture and Design
>> +------------------------------
>> +
>> +The driver implements the V4L2 subdev interface. With the goal to model the
>> +hardware links between the modules and to expose a clean, logical and usable
>> +interface, the driver is split into V4L2 sub-devices as follows:
>> +
>> +- 2 CSIPHY sub-devices - each CSIPHY is represented by a single sub-device;
>> +- 2 CSID sub-devices - each CSID is represented by a single sub-device;
>> +- 2 ISPIF sub-devices - ISPIF is represented by a number of sub-devices equal
>> +  to the number of CSID sub-devices;
>> +- 3 VFE sub-devices - VFE is represented by a number of sub-devices equal to
>> +  the number of RDI input interfaces.
>> +
>> +The considerations to split the driver in this particular way are as follows:
>> +
>> +- representing CSIPHY and CSID modules by a separate sub-device for each module
>> +  allows to model the hardware links between these modules;
>> +- representing VFE by a separate sub-devices for each RDI input interface allows
>> +  to use the three RDI interfaces concurently and independently as this is
>> +  supported by the hardware;
>> +- representing ISPIF by a number of sub-devices equal to the number of CSID
>> +  sub-devices allows to create linear media controller pipelines when using two
>> +  cameras simultaneously. This avoids branches in the pipelines which otherwise
>> +  will require a) userspace and b) media framework (e.g. power on/off
>> +  operations) to  make assumptions about the data flow from a sink pad to a
>> +  source pad on a single media entity.
>> +
>> +Each VFE sub-device is linked to a separate video device node.
>> +
>> +The complete list of the media entities (V4L2 sub-devices and video device
>> +nodes) is as follows:
>> +
>> +- msm_csiphy0
>> +- msm_csiphy1
>> +- msm_csid0
>> +- msm_csid1
>> +- msm_ispif0
>> +- msm_ispif1
>> +- msm_vfe0_rdi0
>> +- msm_vfe0_video0
>> +- msm_vfe0_rdi1
>> +- msm_vfe0_video1
>> +- msm_vfe0_rdi2
>> +- msm_vfe0_video2
>> +
>> +
>> +Implementation
>> +--------------
>> +
>> +Runtime configuration of the hardware (updating settings while streaming) is
>> +not required to implement the currently supported functionality. The complete
>> +configuration on each hardware module is applied on STREAMON ioctl based on
>> +the current active media links, formats and controls set.
>> +
>> +
>> +Documentation
>> +-------------
>> +
>> +APQ8016 Specification:
>> +https://developer.qualcomm.com/download/sd410/snapdragon-410-processor-device-specification.pdf
>> +Referenced 2016-11-24.
>> +
>> +
>> +References
>> +----------
>> +
>> +.. [#f1] https://source.codeaurora.org/quic/la/kernel/msm-3.10/
>>
> 

-- 
Best regards,
Todor Tomov

  reply	other threads:[~2017-08-18  7:54 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-08 13:29 [PATCH v4 00/21] Qualcomm 8x16 Camera Subsystem driver Todor Tomov
2017-08-08 13:29 ` [PATCH v4 01/21] v4l: Add packed Bayer raw12 pixel formats Todor Tomov
2017-08-08 13:29 ` [PATCH v4 02/21] dt-bindings: media: Binding document for Qualcomm Camera subsystem driver Todor Tomov
2017-08-08 13:30 ` [PATCH v4 03/21] MAINTAINERS: Add " Todor Tomov
2017-08-08 13:30 ` [PATCH v4 04/21] doc: media/v4l-drivers: Add Qualcomm Camera Subsystem driver document Todor Tomov
2017-08-18  7:45   ` Hans Verkuil
2017-08-18  7:53     ` Todor Tomov [this message]
2017-08-25 14:10   ` Daniel Mack
2017-08-28  7:10     ` Todor Tomov
2017-08-29 17:02       ` Daniel Mack
2017-10-16 15:01       ` Daniel Mack
2017-10-25 12:07         ` Todor Tomov
2017-10-25 12:18           ` Daniel Mack
2017-08-08 13:30 ` [PATCH v4 05/21] media: camss: Add CSIPHY files Todor Tomov
2017-08-08 13:30 ` [PATCH v4 06/21] media: camss: Add CSID files Todor Tomov
2017-08-08 13:30 ` [PATCH v4 07/21] media: camss: Add ISPIF files Todor Tomov
2017-08-08 13:30 ` [PATCH v4 08/21] media: camss: Add VFE files Todor Tomov
2017-08-08 13:30 ` [PATCH v4 09/21] media: camss: Add files which handle the video device nodes Todor Tomov
2017-08-08 14:44   ` Sakari Ailus
2017-08-08 13:30 ` [PATCH v4 10/21] media: camms: Add core files Todor Tomov
2017-08-08 13:30 ` [PATCH v4 11/21] media: camss: Enable building Todor Tomov
2017-08-08 13:30 ` [PATCH v4 12/21] camss: vfe: Format conversion support using PIX interface Todor Tomov
2017-09-10  9:58   ` Geert Uytterhoeven
2017-09-11  6:56     ` Todor Tomov
2017-09-11  7:45       ` Geert Uytterhoeven
2017-08-08 13:30 ` [PATCH v4 13/21] doc: media/v4l-drivers: Qualcomm Camera Subsystem - PIX Interface Todor Tomov
2017-08-08 13:30 ` [PATCH v4 14/21] camss: vfe: Support for frame padding Todor Tomov
2017-08-08 13:30 ` [PATCH v4 15/21] camss: vfe: Add interface for scaling Todor Tomov
2017-08-08 13:30 ` [PATCH v4 16/21] camss: vfe: Configure scaler module in VFE Todor Tomov
2017-08-08 13:30 ` [PATCH v4 17/21] camss: vfe: Add interface for cropping Todor Tomov
2017-08-08 13:30 ` [PATCH v4 18/21] camss: vfe: Configure crop module in VFE Todor Tomov
2017-08-08 13:30 ` [PATCH v4 19/21] doc: media/v4l-drivers: Qualcomm Camera Subsystem - Scale and crop Todor Tomov
2017-08-08 13:30 ` [PATCH v4 20/21] camss: Use optimal clock frequency rates Todor Tomov
2017-08-08 13:30 ` [PATCH v4 21/21] doc: media/v4l-drivers: Qualcomm Camera Subsystem - Media graph Todor Tomov
2017-08-08 14:53 ` [PATCH v4 00/21] Qualcomm 8x16 Camera Subsystem driver Sakari Ailus

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=5d7d59c0-6306-ca14-fabe-d6789f6bfd5d@linaro.org \
    --to=todor.tomov@linaro.org \
    --cc=hans.verkuil@cisco.com \
    --cc=hverkuil@xs4all.nl \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=s.nawrocki@samsung.com \
    --cc=sakari.ailus@iki.fi \
    /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).