diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-1043-staging-vc04_services-ISP-Add-colour-denoise-control.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-1043-staging-vc04_services-ISP-Add-colour-denoise-control.patch | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-1043-staging-vc04_services-ISP-Add-colour-denoise-control.patch b/target/linux/bcm27xx/patches-5.4/950-1043-staging-vc04_services-ISP-Add-colour-denoise-control.patch new file mode 100644 index 0000000000..6df7a0c49c --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/950-1043-staging-vc04_services-ISP-Add-colour-denoise-control.patch @@ -0,0 +1,75 @@ +From 29ec709794ac2aae569c8d486dd19a7d731cfeeb Mon Sep 17 00:00:00 2001 +From: Naushir Patuck <naush@raspberrypi.com> +Date: Thu, 14 Jan 2021 09:20:52 +0000 +Subject: [PATCH] staging: vc04_services: ISP: Add colour denoise + control + +Add colour denoise control to the bcm2835 driver through a new v4l2 +control: V4L2_CID_USER_BCM2835_ISP_CDN. + +Add the accompanying MMAL configuration structure definitions as well. + +Signed-off-by: Naushir Patuck <naush@raspberrypi.com> +--- + .../vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c | 5 +++++ + .../vc04_services/bcm2835-isp/bcm2835_isp_ctrls.h | 5 +++++ + .../vc04_services/vchiq-mmal/mmal-parameters.h | 13 +++++++++++++ + 3 files changed, 23 insertions(+) + +--- a/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c ++++ b/drivers/staging/vc04_services/bcm2835-isp/bcm2835-v4l2-isp.c +@@ -776,6 +776,11 @@ static int bcm2835_isp_s_ctrl(struct v4l + ctrl->p_new.p_u8, + sizeof(struct bcm2835_isp_denoise)); + break; ++ case V4L2_CID_USER_BCM2835_ISP_CDN: ++ ret = set_isp_param(node, MMAL_PARAMETER_CDN, ++ ctrl->p_new.p_u8, ++ sizeof(struct bcm2835_isp_cdn)); ++ break; + case V4L2_CID_USER_BCM2835_ISP_SHARPEN: + ret = set_isp_param(node, MMAL_PARAMETER_SHARPEN, + ctrl->p_new.p_u8, +--- a/drivers/staging/vc04_services/bcm2835-isp/bcm2835_isp_ctrls.h ++++ b/drivers/staging/vc04_services/bcm2835-isp/bcm2835_isp_ctrls.h +@@ -57,6 +57,11 @@ static const struct bcm2835_isp_custom_c + .size = sizeof(struct bcm2835_isp_denoise), + .flags = 0 + }, { ++ .name = "Colour Denoise", ++ .id = V4L2_CID_USER_BCM2835_ISP_CDN, ++ .size = sizeof(struct bcm2835_isp_cdn), ++ .flags = 0 ++ }, { + .name = "Defective Pixel Correction", + .id = V4L2_CID_USER_BCM2835_ISP_DPC, + .size = sizeof(struct bcm2835_isp_dpc), +--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h ++++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h +@@ -277,6 +277,8 @@ enum mmal_parameter_camera_type { + MMAL_PARAMETER_DPC, + /**< Tales a @ref MMAP_PARAMETER_GAMMA_T */ + MMAL_PARAMETER_GAMMA, ++ /**< Takes a @ref MMAL_PARAMETER_CDN_T */ ++ MMAL_PARAMETER_CDN, + }; + + struct mmal_parameter_rational { +@@ -910,6 +912,17 @@ struct mmal_parameter_gamma { + u16 y[MMAL_NUM_GAMMA_PTS]; + }; + ++enum mmal_parameter_cdn_mode { ++ MMAL_PARAM_CDN_FAST = 0, ++ MMAL_PARAM_CDN_HIGH_QUALITY = 1, ++ MMAL_PARAM_CDN_DUMMY = 0x7FFFFFFF ++}; ++ ++struct mmal_parameter_colour_denoise { ++ u32 enabled; ++ enum mmal_parameter_cdn_mode mode; ++}; ++ + struct mmal_parameter_denoise { + u32 enabled; + u32 constant; |