mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-12 05:24:12 +08:00
media: rockchip: rkisp1: destage Rockchip ISP1 driver
All the items in the TODO list were addressed, uapi was reviewed, documentation written, checkpatch errors fixed, several bugs fixed. There is no big reason to keep this driver in staging, so move it out. Dt-bindings Verified with: make ARCH=arm64 dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/media/rockchip-isp1.yaml Fields of MAINTAINERS file sorted according to output of ./scripts/parse-maintainers.pl --input=MAINTAINERS --output=MAINTAINERS --order [dt-bindings: media: rkisp1: move rockchip-isp1 bindings out of staging] [dt-bindings: media: rkisp1: move rockchip-isp1 bindings out of staging] [hverkuil: fix various checkpatch alignment warnings] Signed-off-by: Helen Koike <helen.koike@collabora.com> Acked-by: Rob Herring <robh@kernel.org> Reviewed-by: Tomasz Figa <tfiga@chromium.org> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
df22026aeb
commit
e6938cc1cb
@ -46,4 +46,4 @@ important tuning tools using software control loop.
|
||||
rkisp1 uAPI data types
|
||||
======================
|
||||
|
||||
.. kernel-doc:: drivers/staging/media/rkisp1/uapi/rkisp1-config.h
|
||||
.. kernel-doc:: include/uapi/linux/rkisp1-config.h
|
||||
|
@ -15034,10 +15034,13 @@ ROCKCHIP ISP V1 DRIVER
|
||||
M: Helen Koike <helen.koike@collabora.com>
|
||||
M: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
L: linux-rockchip@lists.infradead.org
|
||||
S: Maintained
|
||||
F: Documentation/admin-guide/media/rkisp1.rst
|
||||
F: Documentation/devicetree/bindings/media/rockchip-isp1.yaml
|
||||
F: Documentation/userspace-api/media/v4l/pixfmt-meta-rkisp1.rst
|
||||
F: drivers/staging/media/rkisp1/
|
||||
F: drivers/media/platform/rockchip/rkisp1
|
||||
F: include/uapi/linux/rkisp1-config.h
|
||||
|
||||
ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER
|
||||
M: Jacob Chen <jacob-chen@iotwrt.com>
|
||||
|
@ -147,6 +147,24 @@ config VIDEO_RENESAS_CEU
|
||||
help
|
||||
This is a v4l2 driver for the Renesas CEU Interface
|
||||
|
||||
config VIDEO_ROCKCHIP_ISP1
|
||||
tristate "Rockchip Image Signal Processing v1 Unit driver"
|
||||
depends on VIDEO_V4L2 && OF
|
||||
depends on ARCH_ROCKCHIP || COMPILE_TEST
|
||||
select MEDIA_CONTROLLER
|
||||
select VIDEO_V4L2_SUBDEV_API
|
||||
select VIDEOBUF2_DMA_CONTIG
|
||||
select VIDEOBUF2_VMALLOC
|
||||
select V4L2_FWNODE
|
||||
select GENERIC_PHY_MIPI_DPHY
|
||||
default n
|
||||
help
|
||||
Enable this to support the Image Signal Processing (ISP) module
|
||||
present in RK3399 SoCs.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called rockchip-isp1.
|
||||
|
||||
source "drivers/media/platform/exynos4-is/Kconfig"
|
||||
source "drivers/media/platform/am437x/Kconfig"
|
||||
source "drivers/media/platform/xilinx/Kconfig"
|
||||
|
@ -52,6 +52,7 @@ obj-$(CONFIG_VIDEO_RENESAS_FDP1) += rcar_fdp1.o
|
||||
obj-$(CONFIG_VIDEO_RENESAS_JPU) += rcar_jpu.o
|
||||
obj-$(CONFIG_VIDEO_RENESAS_VSP1) += vsp1/
|
||||
|
||||
obj-$(CONFIG_VIDEO_ROCKCHIP_ISP1) += rockchip/rkisp1/
|
||||
obj-$(CONFIG_VIDEO_ROCKCHIP_RGA) += rockchip/rga/
|
||||
|
||||
obj-y += omap/
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/rkisp1-config.h>
|
||||
#include <media/media-device.h>
|
||||
#include <media/media-entity.h>
|
||||
#include <media/v4l2-ctrls.h>
|
||||
@ -20,7 +21,6 @@
|
||||
#include <media/videobuf2-v4l2.h>
|
||||
|
||||
#include "rkisp1-regs.h"
|
||||
#include "uapi/rkisp1-config.h"
|
||||
|
||||
/*
|
||||
* flags on the 'direction' field in struct 'rkisp1_isp_mbus_info' that indicate
|
@ -255,7 +255,8 @@ static int rkisp1_subdev_notifier(struct rkisp1_device *rkisp1)
|
||||
struct fwnode_handle *ep;
|
||||
|
||||
ep = fwnode_graph_get_endpoint_by_id(dev_fwnode(rkisp1->dev),
|
||||
0, next_id, FWNODE_GRAPH_ENDPOINT_NEXT);
|
||||
0, next_id,
|
||||
FWNODE_GRAPH_ENDPOINT_NEXT);
|
||||
if (!ep)
|
||||
break;
|
||||
|
@ -1157,5 +1157,4 @@ void rkisp1_isp_isr(struct rkisp1_device *rkisp1)
|
||||
*/
|
||||
rkisp1_params_isr(rkisp1);
|
||||
}
|
||||
|
||||
}
|
@ -186,7 +186,7 @@ static void rkisp1_bls_config(struct rkisp1_params *params,
|
||||
/* ISP LS correction interface function */
|
||||
static void
|
||||
rkisp1_lsc_correct_matrix_config(struct rkisp1_params *params,
|
||||
const struct rkisp1_cif_isp_lsc_config *pconfig)
|
||||
const struct rkisp1_cif_isp_lsc_config *pconfig)
|
||||
{
|
||||
unsigned int isp_lsc_status, sram_addr, isp_lsc_table_sel, i, j, data;
|
||||
|
||||
@ -434,7 +434,7 @@ static void rkisp1_ctk_enable(struct rkisp1_params *params, bool en)
|
||||
|
||||
/* ISP White Balance Mode */
|
||||
static void rkisp1_awb_meas_config(struct rkisp1_params *params,
|
||||
const struct rkisp1_cif_isp_awb_meas_config *arg)
|
||||
const struct rkisp1_cif_isp_awb_meas_config *arg)
|
||||
{
|
||||
u32 reg_val = 0;
|
||||
/* based on the mode,configure the awb module */
|
||||
@ -902,8 +902,8 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
RKISP1_CIF_ISP_DPCC_ENA);
|
||||
else
|
||||
rkisp1_param_clear_bits(params,
|
||||
RKISP1_CIF_ISP_DPCC_MODE,
|
||||
RKISP1_CIF_ISP_DPCC_ENA);
|
||||
RKISP1_CIF_ISP_DPCC_MODE,
|
||||
RKISP1_CIF_ISP_DPCC_ENA);
|
||||
}
|
||||
}
|
||||
|
||||
@ -936,12 +936,12 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
if (module_en_update & RKISP1_CIF_ISP_MODULE_SDG) {
|
||||
if (module_ens & RKISP1_CIF_ISP_MODULE_SDG)
|
||||
rkisp1_param_set_bits(params,
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_GAMMA_IN_ENA);
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_GAMMA_IN_ENA);
|
||||
else
|
||||
rkisp1_param_clear_bits(params,
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_GAMMA_IN_ENA);
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_GAMMA_IN_ENA);
|
||||
}
|
||||
}
|
||||
|
||||
@ -955,12 +955,12 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
if (module_en_update & RKISP1_CIF_ISP_MODULE_LSC) {
|
||||
if (module_ens & RKISP1_CIF_ISP_MODULE_LSC)
|
||||
rkisp1_param_set_bits(params,
|
||||
RKISP1_CIF_ISP_LSC_CTRL,
|
||||
RKISP1_CIF_ISP_LSC_CTRL_ENA);
|
||||
RKISP1_CIF_ISP_LSC_CTRL,
|
||||
RKISP1_CIF_ISP_LSC_CTRL_ENA);
|
||||
else
|
||||
rkisp1_param_clear_bits(params,
|
||||
RKISP1_CIF_ISP_LSC_CTRL,
|
||||
RKISP1_CIF_ISP_LSC_CTRL_ENA);
|
||||
RKISP1_CIF_ISP_LSC_CTRL,
|
||||
RKISP1_CIF_ISP_LSC_CTRL_ENA);
|
||||
}
|
||||
}
|
||||
|
||||
@ -969,17 +969,17 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
/* update awb gains */
|
||||
if (module_cfg_update & RKISP1_CIF_ISP_MODULE_AWB_GAIN)
|
||||
rkisp1_awb_gain_config(params,
|
||||
&new_params->others.awb_gain_config);
|
||||
&new_params->others.awb_gain_config);
|
||||
|
||||
if (module_en_update & RKISP1_CIF_ISP_MODULE_AWB_GAIN) {
|
||||
if (module_ens & RKISP1_CIF_ISP_MODULE_AWB_GAIN)
|
||||
rkisp1_param_set_bits(params,
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_AWB_ENA);
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_AWB_ENA);
|
||||
else
|
||||
rkisp1_param_clear_bits(params,
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_AWB_ENA);
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_AWB_ENA);
|
||||
}
|
||||
}
|
||||
|
||||
@ -993,12 +993,12 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
if (module_en_update & RKISP1_CIF_ISP_MODULE_BDM) {
|
||||
if (module_ens & RKISP1_CIF_ISP_MODULE_BDM)
|
||||
rkisp1_param_set_bits(params,
|
||||
RKISP1_CIF_ISP_DEMOSAIC,
|
||||
RKISP1_CIF_ISP_DEMOSAIC_BYPASS);
|
||||
RKISP1_CIF_ISP_DEMOSAIC,
|
||||
RKISP1_CIF_ISP_DEMOSAIC_BYPASS);
|
||||
else
|
||||
rkisp1_param_clear_bits(params,
|
||||
RKISP1_CIF_ISP_DEMOSAIC,
|
||||
RKISP1_CIF_ISP_DEMOSAIC_BYPASS);
|
||||
RKISP1_CIF_ISP_DEMOSAIC,
|
||||
RKISP1_CIF_ISP_DEMOSAIC_BYPASS);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1016,8 +1016,8 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
RKISP1_CIF_ISP_FLT_ENA);
|
||||
else
|
||||
rkisp1_param_clear_bits(params,
|
||||
RKISP1_CIF_ISP_FILT_MODE,
|
||||
RKISP1_CIF_ISP_FLT_ENA);
|
||||
RKISP1_CIF_ISP_FILT_MODE,
|
||||
RKISP1_CIF_ISP_FLT_ENA);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1030,7 +1030,7 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
|
||||
if (module_en_update & RKISP1_CIF_ISP_MODULE_CTK)
|
||||
rkisp1_ctk_enable(params,
|
||||
!!(module_ens & RKISP1_CIF_ISP_MODULE_CTK));
|
||||
!!(module_ens & RKISP1_CIF_ISP_MODULE_CTK));
|
||||
}
|
||||
|
||||
if ((module_en_update & RKISP1_CIF_ISP_MODULE_GOC) ||
|
||||
@ -1043,12 +1043,12 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
if (module_en_update & RKISP1_CIF_ISP_MODULE_GOC) {
|
||||
if (module_ens & RKISP1_CIF_ISP_MODULE_GOC)
|
||||
rkisp1_param_set_bits(params,
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_GAMMA_OUT_ENA);
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_GAMMA_OUT_ENA);
|
||||
else
|
||||
rkisp1_param_clear_bits(params,
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_GAMMA_OUT_ENA);
|
||||
RKISP1_CIF_ISP_CTRL,
|
||||
RKISP1_CIF_ISP_CTRL_ISP_GAMMA_OUT_ENA);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1063,12 +1063,12 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
if (module_en_update & RKISP1_CIF_ISP_MODULE_CPROC) {
|
||||
if (module_ens & RKISP1_CIF_ISP_MODULE_CPROC)
|
||||
rkisp1_param_set_bits(params,
|
||||
RKISP1_CIF_C_PROC_CTRL,
|
||||
RKISP1_CIF_C_PROC_CTR_ENABLE);
|
||||
RKISP1_CIF_C_PROC_CTRL,
|
||||
RKISP1_CIF_C_PROC_CTR_ENABLE);
|
||||
else
|
||||
rkisp1_param_clear_bits(params,
|
||||
RKISP1_CIF_C_PROC_CTRL,
|
||||
RKISP1_CIF_C_PROC_CTR_ENABLE);
|
||||
RKISP1_CIF_C_PROC_CTRL,
|
||||
RKISP1_CIF_C_PROC_CTR_ENABLE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1081,7 +1081,7 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
|
||||
if (module_en_update & RKISP1_CIF_ISP_MODULE_IE)
|
||||
rkisp1_ie_enable(params,
|
||||
!!(module_ens & RKISP1_CIF_ISP_MODULE_IE));
|
||||
!!(module_ens & RKISP1_CIF_ISP_MODULE_IE));
|
||||
}
|
||||
|
||||
if ((module_en_update & RKISP1_CIF_ISP_MODULE_DPF) ||
|
||||
@ -1094,12 +1094,12 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
if (module_en_update & RKISP1_CIF_ISP_MODULE_DPF) {
|
||||
if (module_ens & RKISP1_CIF_ISP_MODULE_DPF)
|
||||
rkisp1_param_set_bits(params,
|
||||
RKISP1_CIF_ISP_DPF_MODE,
|
||||
RKISP1_CIF_ISP_DPF_MODE_EN);
|
||||
RKISP1_CIF_ISP_DPF_MODE,
|
||||
RKISP1_CIF_ISP_DPF_MODE_EN);
|
||||
else
|
||||
rkisp1_param_clear_bits(params,
|
||||
RKISP1_CIF_ISP_DPF_MODE,
|
||||
RKISP1_CIF_ISP_DPF_MODE_EN);
|
||||
RKISP1_CIF_ISP_DPF_MODE,
|
||||
RKISP1_CIF_ISP_DPF_MODE_EN);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1107,7 +1107,7 @@ rkisp1_isp_isr_other_config(struct rkisp1_params *params,
|
||||
(module_cfg_update & RKISP1_CIF_ISP_MODULE_DPF_STRENGTH)) {
|
||||
/* update dpf strength config */
|
||||
rkisp1_dpf_strength_config(params,
|
||||
&new_params->others.dpf_strength_config);
|
||||
&new_params->others.dpf_strength_config);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1125,12 +1125,12 @@ static void rkisp1_isp_isr_meas_config(struct rkisp1_params *params,
|
||||
/* update awb config */
|
||||
if (module_cfg_update & RKISP1_CIF_ISP_MODULE_AWB)
|
||||
rkisp1_awb_meas_config(params,
|
||||
&new_params->meas.awb_meas_config);
|
||||
&new_params->meas.awb_meas_config);
|
||||
|
||||
if (module_en_update & RKISP1_CIF_ISP_MODULE_AWB)
|
||||
rkisp1_awb_meas_enable(params,
|
||||
&new_params->meas.awb_meas_config,
|
||||
!!(module_ens & RKISP1_CIF_ISP_MODULE_AWB));
|
||||
&new_params->meas.awb_meas_config,
|
||||
!!(module_ens & RKISP1_CIF_ISP_MODULE_AWB));
|
||||
}
|
||||
|
||||
if ((module_en_update & RKISP1_CIF_ISP_MODULE_AFC) ||
|
||||
@ -1161,8 +1161,8 @@ static void rkisp1_isp_isr_meas_config(struct rkisp1_params *params,
|
||||
|
||||
if (module_en_update & RKISP1_CIF_ISP_MODULE_HST)
|
||||
rkisp1_hst_enable(params,
|
||||
&new_params->meas.hst_config,
|
||||
!!(module_ens & RKISP1_CIF_ISP_MODULE_HST));
|
||||
&new_params->meas.hst_config,
|
||||
!!(module_ens & RKISP1_CIF_ISP_MODULE_HST));
|
||||
}
|
||||
|
||||
if ((module_en_update & RKISP1_CIF_ISP_MODULE_AEC) ||
|
@ -610,8 +610,8 @@ static void rkisp1_rsz_set_sink_fmt(struct rkisp1_resizer *rsz,
|
||||
RKISP1_ISP_MIN_WIDTH,
|
||||
RKISP1_ISP_MAX_WIDTH);
|
||||
sink_fmt->height = clamp_t(u32, format->height,
|
||||
RKISP1_ISP_MIN_HEIGHT,
|
||||
RKISP1_ISP_MAX_HEIGHT);
|
||||
RKISP1_ISP_MIN_HEIGHT,
|
||||
RKISP1_ISP_MAX_HEIGHT);
|
||||
|
||||
*format = *sink_fmt;
|
||||
|
@ -44,6 +44,4 @@ source "drivers/staging/media/tegra-video/Kconfig"
|
||||
|
||||
source "drivers/staging/media/ipu3/Kconfig"
|
||||
|
||||
source "drivers/staging/media/rkisp1/Kconfig"
|
||||
|
||||
endif
|
||||
|
@ -10,5 +10,4 @@ obj-$(CONFIG_VIDEO_TEGRA) += tegra-video/
|
||||
obj-$(CONFIG_TEGRA_VDE) += tegra-vde/
|
||||
obj-$(CONFIG_VIDEO_HANTRO) += hantro/
|
||||
obj-$(CONFIG_VIDEO_IPU3_IMGU) += ipu3/
|
||||
obj-$(CONFIG_VIDEO_ROCKCHIP_ISP1) += rkisp1/
|
||||
obj-$(CONFIG_VIDEO_ZORAN) += zoran/
|
||||
|
@ -1,19 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
config VIDEO_ROCKCHIP_ISP1
|
||||
tristate "Rockchip Image Signal Processing v1 Unit driver"
|
||||
depends on VIDEO_V4L2 && OF
|
||||
depends on ARCH_ROCKCHIP || COMPILE_TEST
|
||||
select MEDIA_CONTROLLER
|
||||
select VIDEO_V4L2_SUBDEV_API
|
||||
select VIDEOBUF2_DMA_CONTIG
|
||||
select VIDEOBUF2_VMALLOC
|
||||
select V4L2_FWNODE
|
||||
select GENERIC_PHY_MIPI_DPHY
|
||||
default n
|
||||
help
|
||||
Enable this to support the Image Signal Processing (ISP) module
|
||||
present in RK3399 SoCs.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called rockchip-isp1.
|
@ -1,8 +0,0 @@
|
||||
* Fix checkpatch errors.
|
||||
|
||||
NOTES:
|
||||
* All v4l2-compliance test must pass.
|
||||
* Stats and params can be tested with libcamera and ChromiumOS stack.
|
||||
|
||||
Please CC patches to Linux Media <linux-media@vger.kernel.org> and
|
||||
Helen Koike <helen.koike@collabora.com>.
|
Loading…
Reference in New Issue
Block a user