uapi: raspberrypi: Update the bcm2835-isp header definition

Update the bcm2835-isp.h file with the latest version available in the
downstream Raspberry Pi linux repo at commit:
68878170d8a98afd6d519a3a2c909080c19de4ce

This change adds support for colour denoise processing, and the
following downstream kernel changes must be available:
https://github.com/raspberrypi/linux/pull/4069
https://github.com/raspberrypi/linux/pull/4083

The Raspberry Pi image must also be running the latest firmware,
obtained by running rpi-update.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Naushir Patuck 2021-02-08 15:07:35 +00:00 committed by Laurent Pinchart
parent 68b992e72e
commit 1c362b7855

View file

@ -31,7 +31,8 @@
(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0007) (V4L2_CID_USER_BCM2835_ISP_BASE + 0x0007)
#define V4L2_CID_USER_BCM2835_ISP_DPC \ #define V4L2_CID_USER_BCM2835_ISP_DPC \
(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0008) (V4L2_CID_USER_BCM2835_ISP_BASE + 0x0008)
#define V4L2_CID_USER_BCM2835_ISP_CDN \
(V4L2_CID_USER_BCM2835_ISP_BASE + 0x0009)
/* /*
* All structs below are directly mapped onto the equivalent structs in * All structs below are directly mapped onto the equivalent structs in
* drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h * drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h
@ -46,7 +47,7 @@
*/ */
struct bcm2835_isp_rational { struct bcm2835_isp_rational {
__s32 num; __s32 num;
__s32 den; __u32 den;
}; };
/** /**
@ -140,7 +141,7 @@ struct bcm2835_isp_black_level {
__u16 black_level_r; __u16 black_level_r;
__u16 black_level_g; __u16 black_level_g;
__u16 black_level_b; __u16 black_level_b;
__u8 pad_[2]; /* Unused */ __u8 padding[2]; /* Unused */
}; };
/** /**
@ -175,6 +176,31 @@ struct bcm2835_isp_gamma {
__u16 y[BCM2835_NUM_GAMMA_PTS]; __u16 y[BCM2835_NUM_GAMMA_PTS];
}; };
/**
* enum bcm2835_isp_cdn_mode - Mode of operation for colour denoise.
*
* @CDN_MODE_FAST: Fast (but lower quality) colour denoise
* algorithm, typically used for video recording.
* @CDN_HIGH_QUALITY: High quality (but slower) colour denoise
* algorithm, typically used for stills capture.
*/
enum bcm2835_isp_cdn_mode {
CDN_MODE_FAST = 0,
CDN_MODE_HIGH_QUALITY = 1,
};
/**
* struct bcm2835_isp_cdn - Colour denoise parameters set with the
* V4L2_CID_USER_BCM2835_ISP_CDN ctrl.
*
* @enabled: Enable colour denoise.
* @cdn_mode: Colour denoise operating mode (see enum &bcm2835_isp_cdn_mode)
*/
struct bcm2835_isp_cdn {
__u32 enabled;
__u32 mode;
};
/** /**
* struct bcm2835_isp_denoise - Denoise parameters set with the * struct bcm2835_isp_denoise - Denoise parameters set with the
* V4L2_CID_USER_BCM2835_ISP_DENOISE ctrl. * V4L2_CID_USER_BCM2835_ISP_DENOISE ctrl.