2022-02-04 13:57:50 +00:00
|
|
|
From 58a6cc3c7eecd16208cd16b92b4eaf8385e69696 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Eugen Hristev <eugen.hristev@microchip.com>
|
|
|
|
Date: Tue, 13 Apr 2021 12:57:16 +0200
|
|
|
|
Subject: [PATCH 174/247] media: atmel: atmel-isc: extend pipeline with extra
|
|
|
|
modules
|
|
|
|
|
|
|
|
Newer ISC pipelines have the additional modules of
|
|
|
|
Defective Pixel Correction -> DPC itself,
|
|
|
|
Defective Pixel Correction -> Green Disparity Correction (DPC_GDC)
|
|
|
|
Defective Pixel Correction -> Black Level Correction (DPC_BLC)
|
|
|
|
Vertical and Horizontal Scaler -> VHXS
|
|
|
|
|
|
|
|
Some products have this full pipeline (sama7g5), other products do not (sama5d2)
|
|
|
|
|
|
|
|
Add the modules to the isc base, and also extend the register range to include
|
|
|
|
the modules.
|
|
|
|
|
|
|
|
Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
|
|
|
|
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
|
|
|
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
|
|
|
|
---
|
|
|
|
drivers/media/platform/atmel/atmel-isc-base.c | 11 ++++++--
|
|
|
|
drivers/media/platform/atmel/atmel-isc.h | 28 +++++++++++--------
|
|
|
|
2 files changed, 25 insertions(+), 14 deletions(-)
|
|
|
|
|
|
|
|
--- a/drivers/media/platform/atmel/atmel-isc-base.c
|
|
|
|
+++ b/drivers/media/platform/atmel/atmel-isc-base.c
|
2022-03-02 13:11:44 +00:00
|
|
|
@@ -2324,8 +2324,14 @@ int isc_pipeline_init(struct isc_device
|
2022-02-04 13:57:50 +00:00
|
|
|
struct regmap_field *regs;
|
|
|
|
unsigned int i;
|
|
|
|
|
|
|
|
- /* WB-->CFA-->CC-->GAM-->CSC-->CBC-->SUB422-->SUB420 */
|
|
|
|
+ /*
|
|
|
|
+ * DPCEN-->GDCEN-->BLCEN-->WB-->CFA-->CC-->
|
|
|
|
+ * GAM-->VHXS-->CSC-->CBC-->SUB422-->SUB420
|
|
|
|
+ */
|
|
|
|
const struct reg_field regfields[ISC_PIPE_LINE_NODE_NUM] = {
|
|
|
|
+ REG_FIELD(ISC_DPC_CTRL, 0, 0),
|
|
|
|
+ REG_FIELD(ISC_DPC_CTRL, 1, 1),
|
|
|
|
+ REG_FIELD(ISC_DPC_CTRL, 2, 2),
|
|
|
|
REG_FIELD(ISC_WB_CTRL, 0, 0),
|
|
|
|
REG_FIELD(ISC_CFA_CTRL, 0, 0),
|
|
|
|
REG_FIELD(ISC_CC_CTRL, 0, 0),
|
2022-03-02 13:11:44 +00:00
|
|
|
@@ -2333,6 +2339,7 @@ int isc_pipeline_init(struct isc_device
|
2022-02-04 13:57:50 +00:00
|
|
|
REG_FIELD(ISC_GAM_CTRL, 1, 1),
|
|
|
|
REG_FIELD(ISC_GAM_CTRL, 2, 2),
|
|
|
|
REG_FIELD(ISC_GAM_CTRL, 3, 3),
|
|
|
|
+ REG_FIELD(ISC_VHXS_CTRL, 0, 0),
|
|
|
|
REG_FIELD(ISC_CSC_CTRL + isc->offsets.csc, 0, 0),
|
|
|
|
REG_FIELD(ISC_CBC_CTRL + isc->offsets.cbc, 0, 0),
|
|
|
|
REG_FIELD(ISC_SUB422_CTRL + isc->offsets.sub422, 0, 0),
|
2022-03-02 13:11:44 +00:00
|
|
|
@@ -2351,7 +2358,7 @@ int isc_pipeline_init(struct isc_device
|
2022-02-04 13:57:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* regmap configuration */
|
|
|
|
-#define ATMEL_ISC_REG_MAX 0xbfc
|
|
|
|
+#define ATMEL_ISC_REG_MAX 0xd5c
|
|
|
|
const struct regmap_config isc_regmap_config = {
|
|
|
|
.reg_bits = 32,
|
|
|
|
.reg_stride = 4,
|
|
|
|
--- a/drivers/media/platform/atmel/atmel-isc.h
|
|
|
|
+++ b/drivers/media/platform/atmel/atmel-isc.h
|
|
|
|
@@ -67,17 +67,21 @@ struct isc_format {
|
|
|
|
};
|
|
|
|
|
|
|
|
/* Pipeline bitmap */
|
|
|
|
-#define WB_ENABLE BIT(0)
|
|
|
|
-#define CFA_ENABLE BIT(1)
|
|
|
|
-#define CC_ENABLE BIT(2)
|
|
|
|
-#define GAM_ENABLE BIT(3)
|
|
|
|
-#define GAM_BENABLE BIT(4)
|
|
|
|
-#define GAM_GENABLE BIT(5)
|
|
|
|
-#define GAM_RENABLE BIT(6)
|
|
|
|
-#define CSC_ENABLE BIT(7)
|
|
|
|
-#define CBC_ENABLE BIT(8)
|
|
|
|
-#define SUB422_ENABLE BIT(9)
|
|
|
|
-#define SUB420_ENABLE BIT(10)
|
|
|
|
+#define DPC_DPCENABLE BIT(0)
|
|
|
|
+#define DPC_GDCENABLE BIT(1)
|
|
|
|
+#define DPC_BLCENABLE BIT(2)
|
|
|
|
+#define WB_ENABLE BIT(3)
|
|
|
|
+#define CFA_ENABLE BIT(4)
|
|
|
|
+#define CC_ENABLE BIT(5)
|
|
|
|
+#define GAM_ENABLE BIT(6)
|
|
|
|
+#define GAM_BENABLE BIT(7)
|
|
|
|
+#define GAM_GENABLE BIT(8)
|
|
|
|
+#define GAM_RENABLE BIT(9)
|
|
|
|
+#define VHXS_ENABLE BIT(10)
|
|
|
|
+#define CSC_ENABLE BIT(11)
|
|
|
|
+#define CBC_ENABLE BIT(12)
|
|
|
|
+#define SUB422_ENABLE BIT(13)
|
|
|
|
+#define SUB420_ENABLE BIT(14)
|
|
|
|
|
|
|
|
#define GAM_ENABLES (GAM_RENABLE | GAM_GENABLE | GAM_BENABLE | GAM_ENABLE)
|
|
|
|
|
|
|
|
@@ -141,7 +145,7 @@ struct isc_ctrls {
|
|
|
|
u32 hist_minmax[HIST_BAYER][2];
|
|
|
|
};
|
|
|
|
|
|
|
|
-#define ISC_PIPE_LINE_NODE_NUM 11
|
|
|
|
+#define ISC_PIPE_LINE_NODE_NUM 15
|
|
|
|
|
|
|
|
/*
|
|
|
|
* struct isc_reg_offsets - ISC device register offsets
|