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,
>
next prev parent 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).