devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrey Konovalov <andrey.konovalov@linaro.org>
To: Robert Foss <robert.foss@linaro.org>,
	agross@kernel.org, bjorn.andersson@linaro.org,
	todor.too@gmail.com, mchehab@kernel.org, robh+dt@kernel.org,
	angelogioacchino.delregno@somainline.org,
	linux-arm-msm@vger.kernel.org, linux-media@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	AngeloGioacchino Del Regno <kholk11@gmail.com>,
	Sakari Ailus <sakari.ailus@iki.fi>
Cc: Rob Herring <robh@kernel.org>, Tomasz Figa <tfiga@chromium.org>,
	Azam Sadiq Pasha Kapatrala Syed <akapatra@quicinc.com>,
	Sarvesh Sridutt <Sarvesh.Sridutt@smartwirelesscompute.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Jonathan Marek <jonathan@marek.ca>
Subject: Re: [PATCH v6 08/22] media: camss: Add missing format identifiers
Date: Tue, 9 Mar 2021 16:56:31 +0300	[thread overview]
Message-ID: <879d57a4-1187-a32c-7902-9ca7e9910c44@linaro.org> (raw)
In-Reply-To: <20210304120326.153966-9-robert.foss@linaro.org>

Hi Robert,

Thank you for your patch!

On 04.03.2021 15:03, Robert Foss wrote:
> The CSI-2 spec defines format identifier for Data Type (DT),
> and how the Decode Format (DF) & Encode Format (EF) are implemented.
> The spec does however not define the DF, EF or Plain Format (PF)
> identifiers, as those are vendor specific.
> 
> Plain formats describe the size of the pixels written by the RDI
> units to memory. PLAIN8 for example has the size 8 bits, and
> PLAIN32 32 bits. The appropriate Plain Format is determined by
> the Decode Format used. The smallest Plain Format that is able
> to contain a pixel of the used Decode Format is the appropriate
> one to use.
> 
> As the vendor specific identifiers differ between hardware
> generations, split them out into separate headers.
> 
> Signed-off-by: Robert Foss <robert.foss@linaro.org>

Reviewed-by: Andrey Konovalov <andrey.konovalov@linaro.org>

Thanks,
Andrey

> ---
> 
> Changes since v5
>   - Andrey: Gen 1 & Gen2 devices have different decode/encode/plain
>             format definitions, list in separate headers
>   - Andrey: Make commit msg more clear about what is in MIPI spec or not
> 
> 
>   .../platform/qcom/camss/camss-csid-gen1.h     | 27 +++++++++++++
>   .../platform/qcom/camss/camss-csid-gen2.h     | 39 +++++++++++++++++++
>   .../media/platform/qcom/camss/camss-csid.c    | 20 ++--------
>   .../media/platform/qcom/camss/camss-csid.h    | 24 ++++++++++++
>   4 files changed, 94 insertions(+), 16 deletions(-)
>   create mode 100644 drivers/media/platform/qcom/camss/camss-csid-gen1.h
>   create mode 100644 drivers/media/platform/qcom/camss/camss-csid-gen2.h
> 
> diff --git a/drivers/media/platform/qcom/camss/camss-csid-gen1.h b/drivers/media/platform/qcom/camss/camss-csid-gen1.h
> new file mode 100644
> index 000000000000..80a2bc6efff6
> --- /dev/null
> +++ b/drivers/media/platform/qcom/camss/camss-csid-gen1.h
> @@ -0,0 +1,27 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * camss-csid-gen1.h
> + *
> + * Qualcomm MSM Camera Subsystem - CSID (CSI Decoder) Module Generation 1
> + *
> + * Copyright (C) 2021 Linaro Ltd.
> + */
> +#ifndef QC_MSM_CAMSS_CSID_GEN1_H
> +#define QC_MSM_CAMSS_CSID_GEN1_H
> +
> +#define DECODE_FORMAT_UNCOMPRESSED_6_BIT	0x0
> +#define DECODE_FORMAT_UNCOMPRESSED_8_BIT	0x1
> +#define DECODE_FORMAT_UNCOMPRESSED_10_BIT	0x2
> +#define DECODE_FORMAT_UNCOMPRESSED_12_BIT	0x3
> +#define DECODE_FORMAT_DPCM_10_6_10		0x4
> +#define DECODE_FORMAT_DPCM_10_8_10		0x5
> +#define DECODE_FORMAT_DPCM_12_6_12		0x6
> +#define DECODE_FORMAT_DPCM_12_8_12		0x7
> +#define DECODE_FORMAT_UNCOMPRESSED_14_BIT	0x8
> +#define DECODE_FORMAT_DPCM_14_8_14		0x9
> +#define DECODE_FORMAT_DPCM_14_10_14		0xa
> +
> +#define PLAIN_FORMAT_PLAIN8	0x0 /* supports DPCM, UNCOMPRESSED_6/8_BIT */
> +#define PLAIN_FORMAT_PLAIN16	0x1 /* supports DPCM, UNCOMPRESSED_10/16_BIT */
> +
> +#endif /* QC_MSM_CAMSS_CSID_GEN1_H */
> diff --git a/drivers/media/platform/qcom/camss/camss-csid-gen2.h b/drivers/media/platform/qcom/camss/camss-csid-gen2.h
> new file mode 100644
> index 000000000000..3a8ad001b3e8
> --- /dev/null
> +++ b/drivers/media/platform/qcom/camss/camss-csid-gen2.h
> @@ -0,0 +1,39 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * camss-csid-gen1.h
> + *
> + * Qualcomm MSM Camera Subsystem - CSID (CSI Decoder) Module Generation 1
> + *
> + * Copyright (C) 2021 Linaro Ltd.
> + */
> +#ifndef QC_MSM_CAMSS_CSID_GEN2_H
> +#define QC_MSM_CAMSS_CSID_GEN2_H
> +
> +#define DECODE_FORMAT_UNCOMPRESSED_6_BIT	0x0
> +#define DECODE_FORMAT_UNCOMPRESSED_8_BIT	0x1
> +#define DECODE_FORMAT_UNCOMPRESSED_10_BIT	0x2
> +#define DECODE_FORMAT_UNCOMPRESSED_12_BIT	0x3
> +#define DECODE_FORMAT_UNCOMPRESSED_14_BIT	0x4
> +#define DECODE_FORMAT_UNCOMPRESSED_16_BIT	0x5
> +#define DECODE_FORMAT_UNCOMPRESSED_20_BIT	0x6
> +#define DECODE_FORMAT_DPCM_10_6_10		0x7
> +#define DECODE_FORMAT_DPCM_10_8_10		0x8
> +#define DECODE_FORMAT_DPCM_12_6_12		0x9
> +#define DECODE_FORMAT_DPCM_12_8_12		0xa
> +#define DECODE_FORMAT_DPCM_14_8_14		0xb
> +#define DECODE_FORMAT_DPCM_14_10_14		0xc
> +#define DECODE_FORMAT_DPCM_12_10_12		0xd
> +#define DECODE_FORMAT_USER_DEFINED		0xe
> +#define DECODE_FORMAT_PAYLOAD_ONLY		0xf
> +
> +#define ENCODE_FORMAT_RAW_8_BIT		0x1
> +#define ENCODE_FORMAT_RAW_10_BIT	0x2
> +#define ENCODE_FORMAT_RAW_12_BIT	0x3
> +#define ENCODE_FORMAT_RAW_14_BIT	0x4
> +#define ENCODE_FORMAT_RAW_16_BIT	0x5
> +
> +#define PLAIN_FORMAT_PLAIN8	0x0 /* supports DPCM, UNCOMPRESSED_6/8_BIT */
> +#define PLAIN_FORMAT_PLAIN16	0x1 /* supports DPCM, UNCOMPRESSED_10/16_BIT */
> +#define PLAIN_FORMAT_PLAIN32	0x2 /* supports UNCOMPRESSED_20_BIT */
> +
> +#endif /* QC_MSM_CAMSS_CSID_GEN2_H */
> diff --git a/drivers/media/platform/qcom/camss/camss-csid.c b/drivers/media/platform/qcom/camss/camss-csid.c
> index be3fe76f3dc3..697b51d6ad38 100644
> --- a/drivers/media/platform/qcom/camss/camss-csid.c
> +++ b/drivers/media/platform/qcom/camss/camss-csid.c
> @@ -22,6 +22,7 @@
>   #include <media/v4l2-subdev.h>
>   
>   #include "camss-csid.h"
> +#include "camss-csid-gen1.h"
>   #include "camss.h"
>   
>   #define MSM_CSID_NAME "msm_csid"
> @@ -37,8 +38,8 @@
>   #define CAMSS_CSID_CID_n_CFG_ISPIF_EN	BIT(0)
>   #define CAMSS_CSID_CID_n_CFG_RDI_EN	BIT(1)
>   #define CAMSS_CSID_CID_n_CFG_DECODE_FORMAT_SHIFT	4
> -#define CAMSS_CSID_CID_n_CFG_PLAIN_FORMAT_8		(0 << 8)
> -#define CAMSS_CSID_CID_n_CFG_PLAIN_FORMAT_16		(1 << 8)
> +#define CAMSS_CSID_CID_n_CFG_PLAIN_FORMAT_8		(PLAIN_FORMAT_PLAIN8 << 8)
> +#define CAMSS_CSID_CID_n_CFG_PLAIN_FORMAT_16		(PLAIN_FORMAT_PLAIN16 << 8)
>   #define CAMSS_CSID_CID_n_CFG_PLAIN_ALIGNMENT_LSB	(0 << 9)
>   #define CAMSS_CSID_CID_n_CFG_PLAIN_ALIGNMENT_MSB	(1 << 9)
>   #define CAMSS_CSID_CID_n_CFG_RDI_MODE_RAW_DUMP		(0 << 10)
> @@ -59,22 +60,9 @@
>   #define CAMSS_CSID_TG_DT_n_CGG_2(v, n)	\
>   			(((v) == CAMSS_8x16 ? 0x0b4 : 0x0bc) + 0xc * (n))
>   
> -#define DATA_TYPE_EMBEDDED_DATA_8BIT	0x12
> -#define DATA_TYPE_YUV422_8BIT		0x1e
> -#define DATA_TYPE_RAW_6BIT		0x28
> -#define DATA_TYPE_RAW_8BIT		0x2a
> -#define DATA_TYPE_RAW_10BIT		0x2b
> -#define DATA_TYPE_RAW_12BIT		0x2c
> -#define DATA_TYPE_RAW_14BIT		0x2d
> -
> -#define DECODE_FORMAT_UNCOMPRESSED_6_BIT	0x0
> -#define DECODE_FORMAT_UNCOMPRESSED_8_BIT	0x1
> -#define DECODE_FORMAT_UNCOMPRESSED_10_BIT	0x2
> -#define DECODE_FORMAT_UNCOMPRESSED_12_BIT	0x3
> -#define DECODE_FORMAT_UNCOMPRESSED_14_BIT	0x8
> -
>   #define CSID_RESET_TIMEOUT_MS 500
>   
> +
>   struct csid_format {
>   	u32 code;
>   	u8 data_type;
> diff --git a/drivers/media/platform/qcom/camss/camss-csid.h b/drivers/media/platform/qcom/camss/camss-csid.h
> index 1824b3745e10..318c19bb26c9 100644
> --- a/drivers/media/platform/qcom/camss/camss-csid.h
> +++ b/drivers/media/platform/qcom/camss/camss-csid.h
> @@ -21,6 +21,30 @@
>   #define MSM_CSID_PAD_SRC 1
>   #define MSM_CSID_PADS_NUM 2
>   
> +#define DATA_TYPE_EMBEDDED_DATA_8BIT	0x12
> +#define DATA_TYPE_YUV420_8BIT		0x18
> +#define DATA_TYPE_YUV420_10BIT		0x19
> +#define DATA_TYPE_YUV420_8BIT_LEGACY	0x1a
> +#define DATA_TYPE_YUV420_8BIT_SHIFTED	0x1c /* Chroma Shifted Pixel Sampling */
> +#define DATA_TYPE_YUV420_10BIT_SHIFTED	0x1d /* Chroma Shifted Pixel Sampling */
> +#define DATA_TYPE_YUV422_8BIT		0x1e
> +#define DATA_TYPE_YUV422_10BIT		0x1f
> +#define DATA_TYPE_RGB444		0x20
> +#define DATA_TYPE_RGB555		0x21
> +#define DATA_TYPE_RGB565		0x22
> +#define DATA_TYPE_RGB666		0x23
> +#define DATA_TYPE_RGB888		0x24
> +#define DATA_TYPE_RAW_24BIT		0x27
> +#define DATA_TYPE_RAW_6BIT		0x28
> +#define DATA_TYPE_RAW_7BIT		0x29
> +#define DATA_TYPE_RAW_8BIT		0x2a
> +#define DATA_TYPE_RAW_10BIT		0x2b
> +#define DATA_TYPE_RAW_12BIT		0x2c
> +#define DATA_TYPE_RAW_14BIT		0x2d
> +#define DATA_TYPE_RAW_16BIT		0x2e
> +#define DATA_TYPE_RAW_20BIT		0x2f
> +
> +
>   enum csid_payload_mode {
>   	CSID_PAYLOAD_MODE_INCREMENTING = 0,
>   	CSID_PAYLOAD_MODE_ALTERNATING_55_AA = 1,
> 

  reply	other threads:[~2021-03-09 13:57 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-04 12:03 [PATCH v6 00/22] Add support for the SDM845 Camera Subsystem Robert Foss
2021-03-04 12:03 ` [PATCH v6 01/22] media: camss: Fix vfe_isr_comp_done() documentation Robert Foss
2021-03-04 12:03 ` [PATCH v6 02/22] media: camss: Fix vfe_isr comment typo Robert Foss
2021-03-04 12:03 ` [PATCH v6 03/22] media: camss: Replace trace_printk() with dev_dbg() Robert Foss
2021-03-04 12:03 ` [PATCH v6 04/22] media: camss: Add CAMSS_845 camss version Robert Foss
2021-03-04 12:03 ` [PATCH v6 05/22] media: camss: Make ISPIF subdevice optional Robert Foss
2021-03-04 12:03 ` [PATCH v6 06/22] media: camss: Refactor VFE HW version support Robert Foss
2021-03-09 14:09   ` Andrey Konovalov
2021-03-04 12:03 ` [PATCH v6 07/22] media: camss: Add support for VFE hardware version Titan 170 Robert Foss
2021-03-09 13:55   ` Andrey Konovalov
2021-03-04 12:03 ` [PATCH v6 08/22] media: camss: Add missing format identifiers Robert Foss
2021-03-09 13:56   ` Andrey Konovalov [this message]
2021-03-04 12:03 ` [PATCH v6 09/22] media: camss: Refactor CSID HW version support Robert Foss
2021-03-04 12:03 ` [PATCH v6 10/22] media: camss: Add support for CSID hardware version Titan 170 Robert Foss
2021-03-09 13:54   ` Andrey Konovalov
2021-03-10 10:12     ` Robert Foss
2021-03-04 12:03 ` [PATCH v6 11/22] media: camss: Add support for CSIPHY " Robert Foss
2021-03-09 13:57   ` Andrey Konovalov
2021-03-04 12:03 ` [PATCH v6 12/22] media: camss: Remove per VFE power domain toggling Robert Foss
2021-03-11 14:43   ` Andrey Konovalov
2021-03-11 14:46     ` Robert Foss
2021-03-04 12:03 ` [PATCH v6 13/22] media: camss: Enable SDM845 Robert Foss
2021-03-04 12:03 ` [PATCH v6 14/22] dt-bindings: media: camss: Add qcom,msm8916-camss binding Robert Foss
2021-03-04 12:03 ` [PATCH v6 15/22] dt-bindings: media: camss: Add qcom,msm8996-camss binding Robert Foss
2021-03-04 12:03 ` [PATCH v6 16/22] dt-bindings: media: camss: Add qcom,sdm660-camss binding Robert Foss
2021-03-04 12:03 ` [PATCH v6 17/22] dt-bindings: media: camss: Add qcom,sdm845-camss binding Robert Foss
2021-03-04 12:03 ` [PATCH v6 18/22] MAINTAINERS: Change CAMSS documentation to use dtschema bindings Robert Foss
2021-03-04 12:03 ` [PATCH v6 19/22] media: dt-bindings: media: Remove qcom,camss documentation Robert Foss
2021-03-04 12:03 ` [PATCH v6 20/22] arm64: dts: sdm845: Add CAMSS ISP node Robert Foss
2021-03-04 12:03 ` [PATCH v6 21/22] arm64: dts: sdm845-db845c: Configure regulators for camss node Robert Foss
2021-03-04 12:03 ` [PATCH v6 22/22] arm64: dts: sdm845-db845c: Enable ov8856 sensor and connect to ISP Robert Foss

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=879d57a4-1187-a32c-7902-9ca7e9910c44@linaro.org \
    --to=andrey.konovalov@linaro.org \
    --cc=Sarvesh.Sridutt@smartwirelesscompute.com \
    --cc=agross@kernel.org \
    --cc=akapatra@quicinc.com \
    --cc=angelogioacchino.delregno@somainline.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jonathan@marek.ca \
    --cc=kholk11@gmail.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=robert.foss@linaro.org \
    --cc=robh+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=sakari.ailus@iki.fi \
    --cc=tfiga@chromium.org \
    --cc=todor.too@gmail.com \
    /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).