From: Eugen Hristev <eugen.hristev@microchip.com>
To: <devicetree@vger.kernel.org>, <linux-media@vger.kernel.org>
Cc: <linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>,
Eugen Hristev <eugen.hristev@microchip.com>
Subject: [PATCH 25/30] media: atmel: atmel-isc: create an adapt pipeline callback for product specific
Date: Thu, 1 Apr 2021 14:27:18 +0300 [thread overview]
Message-ID: <20210401112723.189107-26-eugen.hristev@microchip.com> (raw)
In-Reply-To: <20210401112723.189107-1-eugen.hristev@microchip.com>
Once the pipeline is set in the base code, create a callback that will adapt
the ISC pipeline to each product.
Create the adapt_pipeline callback that will be used in this fashion.
Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
---
drivers/media/platform/atmel/atmel-isc-base.c | 4 ++++
drivers/media/platform/atmel/atmel-isc.h | 5 +++++
drivers/media/platform/atmel/atmel-sama5d2-isc.c | 11 +++++++++++
3 files changed, 20 insertions(+)
diff --git a/drivers/media/platform/atmel/atmel-isc-base.c b/drivers/media/platform/atmel/atmel-isc-base.c
index 6746c9060e3f..a3c299068bd5 100644
--- a/drivers/media/platform/atmel/atmel-isc-base.c
+++ b/drivers/media/platform/atmel/atmel-isc-base.c
@@ -1047,6 +1047,10 @@ static int isc_try_configure_pipeline(struct isc_device *isc)
default:
isc->try_config.bits_pipeline = 0x0;
}
+
+ /* Tune the pipeline to product specific */
+ isc->adapt_pipeline(isc);
+
return 0;
}
diff --git a/drivers/media/platform/atmel/atmel-isc.h b/drivers/media/platform/atmel/atmel-isc.h
index 14e318a7373c..19cc60dfcbe0 100644
--- a/drivers/media/platform/atmel/atmel-isc.h
+++ b/drivers/media/platform/atmel/atmel-isc.h
@@ -236,6 +236,9 @@ struct isc_reg_offsets {
* @config_ctrls: pointer to a functoin that initializes product
* specific v4l2 controls.
*
+ * @adapt_pipeline: pointer to a function that adapts the pipeline bits
+ * to the product specific pipeline
+ *
* @offsets: struct holding the product specific register offsets
* @controller_formats: pointer to the array of possible formats that the
* controller can output
@@ -321,6 +324,8 @@ struct isc_device {
void (*config_ctrls)(struct isc_device *isc,
const struct v4l2_ctrl_ops *ops);
+
+ void (*adapt_pipeline)(struct isc_device *isc);
};
struct isc_reg_offsets offsets;
diff --git a/drivers/media/platform/atmel/atmel-sama5d2-isc.c b/drivers/media/platform/atmel/atmel-sama5d2-isc.c
index 38b9667537a3..c5687fb5b022 100644
--- a/drivers/media/platform/atmel/atmel-sama5d2-isc.c
+++ b/drivers/media/platform/atmel/atmel-sama5d2-isc.c
@@ -54,6 +54,10 @@
#define ISC_CLK_MAX_DIV 255
+#define ISC_SAMA5D2_PIPELINE \
+ (WB_ENABLE | CFA_ENABLE | CC_ENABLE | GAM_ENABLES | CSC_ENABLE | \
+ CBC_ENABLE | SUB422_ENABLE | SUB420_ENABLE)
+
/* This is a list of the formats that the ISC can *output* */
const struct isc_format sama5d2_controller_formats[] = {
{
@@ -257,6 +261,11 @@ void isc_sama5d2_config_rlp(struct isc_device *isc)
ISC_RLP_CFG_MODE_MASK, rlp_mode);
}
+void isc_sama5d2_adapt_pipeline(struct isc_device *isc)
+{
+ isc->try_config.bits_pipeline &= ISC_SAMA5D2_PIPELINE;
+}
+
/* Gamma table with gamma 1/2.2 */
const u32 isc_sama5d2_gamma_table[][GAMMA_ENTRIES] = {
/* 0 --> gamma 1/1.8 */
@@ -410,6 +419,8 @@ static int atmel_isc_probe(struct platform_device *pdev)
isc->config_rlp = isc_sama5d2_config_rlp;
isc->config_ctrls = isc_sama5d2_config_ctrls;
+ isc->adapt_pipeline = isc_sama5d2_adapt_pipeline;
+
isc->offsets.csc = ISC_SAMA5D2_CSC_OFFSET;
isc->offsets.cbc = ISC_SAMA5D2_CBC_OFFSET;
isc->offsets.sub422 = ISC_SAMA5D2_SUB422_OFFSET;
--
2.25.1
next prev parent reply other threads:[~2021-04-01 18:13 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-01 11:26 [PATCH 00/30] media: atmel: atmel-isc: add support for xisc Eugen Hristev
2021-04-01 11:26 ` [PATCH 01/30] media: atmel: atmel-isc: specialize gamma table into product specific Eugen Hristev
2021-04-01 11:26 ` [PATCH 02/30] media: atmel: atmel-isc: specialize driver name constant Eugen Hristev
2021-04-01 11:26 ` [PATCH 03/30] media: atmel: atmel-isc: add checks for limiting frame sizes Eugen Hristev
2021-04-01 11:26 ` [PATCH 04/30] media: atmel: atmel-isc: specialize max width and max height Eugen Hristev
2021-04-01 11:26 ` [PATCH 05/30] media: atmel: atmel-isc: specialize dma cfg Eugen Hristev
2021-04-01 11:26 ` [PATCH 06/30] media: atmel: atmel-isc: extract CSC submodule config into separate function Eugen Hristev
2021-04-01 20:36 ` kernel test robot
2021-04-01 11:27 ` [PATCH 07/30] media: atmel: atmel-isc-base: add id to clock debug message Eugen Hristev
2021-04-01 11:27 ` [PATCH 08/30] media: atmel: atmel-isc: create register offsets struct Eugen Hristev
2021-04-01 11:27 ` [PATCH 09/30] media: atmel: atmel-isc: extract CBC submodule config into separate function Eugen Hristev
2021-04-01 21:37 ` kernel test robot
2021-04-01 11:27 ` [PATCH 10/30] media: atmel: atmel-isc: add CBC to the reg offsets struct Eugen Hristev
2021-04-01 11:27 ` [PATCH 11/30] media: atmel: atmel-isc: add SUB422 and SUB420 to register offsets Eugen Hristev
2021-04-01 11:27 ` [PATCH 12/30] media: atmel: atmel-isc: add RLP " Eugen Hristev
2021-04-01 11:27 ` [PATCH 13/30] media: atmel: atmel-isc: add HIS " Eugen Hristev
2021-04-01 11:27 ` [PATCH 14/30] media: atmel: atmel-isc: add DMA " Eugen Hristev
2021-04-01 11:27 ` [PATCH 15/30] media: atmel: atmel-isc: add support for version register Eugen Hristev
2021-04-01 11:27 ` [PATCH 16/30] media: atmel: atmel-isc: add his_entry to register offsets Eugen Hristev
2021-04-01 11:27 ` [PATCH 17/30] media: atmel: atmel-isc: add register description for additional modules Eugen Hristev
2021-04-01 11:27 ` [PATCH 18/30] media: atmel: atmel-isc: extend pipeline with extra modules Eugen Hristev
2021-04-01 11:27 ` [PATCH 19/30] media: atmel: atmel-isc: add CC initialization function Eugen Hristev
2021-04-01 11:27 ` [PATCH 20/30] media: atmel: atmel-isc: create product specific v4l2 controls config Eugen Hristev
2021-04-01 11:27 ` [PATCH 21/30] media: atmel: atmel-isc: create callback for DPC submodule product specific Eugen Hristev
2021-04-01 11:27 ` [PATCH 22/30] media: atmel: atmel-isc: create callback for GAM " Eugen Hristev
2021-04-01 11:27 ` [PATCH 23/30] media: atmel: atmel-isc: create callback for RLP " Eugen Hristev
2021-04-01 11:27 ` [PATCH 24/30] media: atmel: atmel-isc: move the formats list into product specific code Eugen Hristev
2021-04-01 11:27 ` Eugen Hristev [this message]
2021-04-01 11:27 ` [PATCH 26/30] media: atmel: atmel-isc-regs: add additional fields for sama7g5 type pipeline Eugen Hristev
2021-04-01 11:27 ` [PATCH 27/30] media: atmel: atmel-isc-base: add support for more formats and additional pipeline modules Eugen Hristev
2021-04-01 11:27 ` [PATCH 28/30] dt-bindings: media: atmel: add microchip-xisc binding Eugen Hristev
2021-04-01 11:27 ` [PATCH 29/30] media: atmel: atmel-isc-sama5d2: remove duplicate define Eugen Hristev
2021-04-01 11:27 ` [PATCH 30/30] media: atmel: atmel-isc: add microchip-xisc driver Eugen Hristev
2021-04-01 20:36 ` kernel test robot
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=20210401112723.189107-26-eugen.hristev@microchip.com \
--to=eugen.hristev@microchip.com \
--cc=devicetree@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
/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