mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
media: rockchip: isp: Solve the cmsk problem
Change-Id: I25fe5245b3ea2b757cfca43aca38275e3c9b0c19 Signed-off-by: Lian Xu <xu.lian@rock-chips.com>
This commit is contained in:
@@ -1811,6 +1811,12 @@
|
||||
#define ISP3X_SW_CMSK_EN_SP BIT(2)
|
||||
#define ISP3X_SW_CMSK_EN_BP BIT(3)
|
||||
#define ISP3X_SW_CMSK_BLKSIZE(x) (((x) & 3) << 4)
|
||||
|
||||
#define ISP32_SW_CMSK_EN_PATH GENMASK(3, 0)
|
||||
#define ISP32_SW_CMSK_EN_PATH_SHD GENMASK(11, 8)
|
||||
|
||||
#define ISP3X_SW_CMSK_FORCE_UPD BIT(31)
|
||||
|
||||
#define ISP3X_SW_CMSK_ORDER_MODE BIT(1)
|
||||
|
||||
#define ISP3X_SW_CMSK_YUV(x, y, z) (((x) & 0xff) | ((y) & 0xff) << 8 | ((z) & 0xff) << 16)
|
||||
|
||||
@@ -1238,6 +1238,11 @@ static void rkisp_config_cmsk_single(struct rkisp_device *dev,
|
||||
ctrl |= ISP3X_SW_CMSK_EN | ISP3X_SW_CMSK_ORDER_MODE;
|
||||
}
|
||||
rkisp_write(dev, ISP3X_CMSK_CTRL0, ctrl, false);
|
||||
|
||||
val = rkisp_read(dev, ISP3X_CMSK_CTRL0, true);
|
||||
if (dev->hw_dev->is_single &&
|
||||
((val & ISP32_SW_CMSK_EN_PATH) != (val & ISP32_SW_CMSK_EN_PATH_SHD)))
|
||||
rkisp_write(dev, ISP3X_CMSK_CTRL0, val | ISP3X_SW_CMSK_FORCE_UPD, true);
|
||||
}
|
||||
|
||||
static void rkisp_config_cmsk_dual(struct rkisp_device *dev,
|
||||
@@ -1348,6 +1353,11 @@ static void rkisp_config_cmsk_dual(struct rkisp_device *dev,
|
||||
ctrl |= ISP3X_SW_CMSK_EN | ISP3X_SW_CMSK_ORDER_MODE;
|
||||
}
|
||||
rkisp_next_write(dev, ISP3X_CMSK_CTRL0, ctrl, false);
|
||||
|
||||
val = rkisp_next_read(dev, ISP3X_CMSK_CTRL0, true);
|
||||
if (dev->hw_dev->is_single &&
|
||||
((val & ISP32_SW_CMSK_EN_PATH) != (val & ISP32_SW_CMSK_EN_PATH_SHD)))
|
||||
rkisp_next_write(dev, ISP3X_CMSK_CTRL0, val | ISP3X_SW_CMSK_FORCE_UPD, false);
|
||||
}
|
||||
|
||||
static void rkisp_config_cmsk(struct rkisp_device *dev)
|
||||
|
||||
Reference in New Issue
Block a user