Hi, Shu-hsiang:
On Wed, 2024-10-09 at 19:15 +0800, Shu-hsiang Yang wrote:
> Introduces the ISP pipeline driver for the MediaTek ISP raw and yuv
> modules. Key functionalities include data processing, V4L2 integration,
> resource management, debug support, and various control operations.
> Additionally, IRQ handling, platform device management, and MediaTek
> ISP DMA format support are also included.
>
> Signed-off-by: Shu-hsiang Yang <Shu-hsiang.Yang@mediatek.com>
> ---
[snip]
> +
> +static const struct mtk_cam_format_desc yuv_out_group2_fmts[] = {
> +{
> +.vfmt.fmt.pix_mp = {
> +.width = YUV_GROUP2_MAX_WIDTH,
> +.height = YUV_GROUP2_MAX_HEIGHT,
I don't know why you define width and height here.
All width/height of yuv_out_group2_fmts are the same.
And the max width/height is define in capture_queues[].frmsizes.
So the width/height could be dropped here.
Regards,
CK
> +.pixelformat = V4L2_PIX_FMT_NV12,
> +},
> +},
> +{
> +.vfmt.fmt.pix_mp = {
> +.width = YUV_GROUP2_MAX_WIDTH,
> +.height = YUV_GROUP2_MAX_HEIGHT,
> +.pixelformat = V4L2_PIX_FMT_NV21,
> +},
> +},
> +{
> +.vfmt.fmt.pix_mp = {
> +.width = YUV_GROUP2_MAX_WIDTH,
> +.height = YUV_GROUP2_MAX_HEIGHT,
> +.pixelformat = V4L2_PIX_FMT_NV12_10,
> +},
> +},
> +{
> +.vfmt.fmt.pix_mp = {
> +.width = YUV_GROUP2_MAX_WIDTH,
> +.height = YUV_GROUP2_MAX_HEIGHT,
> +.pixelformat = V4L2_PIX_FMT_NV21_10,
> +},
> +},
> +{
> +.vfmt.fmt.pix_mp = {
> +.width = YUV_GROUP2_MAX_WIDTH,
> +.height = YUV_GROUP2_MAX_HEIGHT,
> +.pixelformat = V4L2_PIX_FMT_MTISP_NV12_10P,
> +},
> +},
> +{
> +.vfmt.fmt.pix_mp = {
> +.width = YUV_GROUP2_MAX_WIDTH,
> +.height = YUV_GROUP2_MAX_HEIGHT,
> +.pixelformat = V4L2_PIX_FMT_MTISP_NV21_10P,
> +},
> +},
> +{
> +.vfmt.fmt.pix_mp = {
> +.width = YUV_GROUP2_MAX_WIDTH,
> +.height = YUV_GROUP2_MAX_HEIGHT,
> +.pixelformat = V4L2_PIX_FMT_NV12_12,
> +},
> +},
> +{
> +.vfmt.fmt.pix_mp = {
> +.width = YUV_GROUP2_MAX_WIDTH,
> +.height = YUV_GROUP2_MAX_HEIGHT,
> +.pixelformat = V4L2_PIX_FMT_NV21_12,
> +},
> +},
> +{
> +.vfmt.fmt.pix_mp = {
> +.width = YUV_GROUP2_MAX_WIDTH,
> +.height = YUV_GROUP2_MAX_HEIGHT,
> +.pixelformat = V4L2_PIX_FMT_MTISP_NV12_12P,
> +},
> +},
> +{
> +.vfmt.fmt.pix_mp = {
> +.width = YUV_GROUP2_MAX_WIDTH,
> +.height = YUV_GROUP2_MAX_HEIGHT,
> +.pixelformat = V4L2_PIX_FMT_MTISP_NV21_12P,
> +},
> +}
> +};
> +
[snip]
> +#define MTK_RAW_TOTAL_CAPTURE_QUEUES 15
> +static const struct
> +mtk_cam_dev_node_desc capture_queues[] = {
>
[snip]
> +{
> +.id = MTK_RAW_YUVO_2_OUT,
> +.name = "yuvo 2",
> +.cap = V4L2_CAP_VIDEO_CAPTURE_MPLANE,
> +.buf_type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE,
> +.link_flags = MEDIA_LNK_FL_ENABLED | MEDIA_LNK_FL_IMMUTABLE,
> +.image = true,
> +.smem_alloc = false,
> +.dma_port = MTKCAM_IPI_RAW_YUVO_2,
> +.fmts = yuv_out_group2_fmts,
> +.num_fmts = ARRAY_SIZE(yuv_out_group2_fmts),
> +.default_fmt_idx = 0,
> +.pad_ops = &source_pad_ops_yuv,
> +.ioctl_ops = &mtk_cam_v4l2_vcap_ioctl_ops,
> +.frmsizes = &(struct v4l2_frmsizeenum) {
> +.index = 0,
> +.type = V4L2_FRMSIZE_TYPE_CONTINUOUS,
> +.stepwise = {
> +.max_width = YUV_GROUP2_MAX_WIDTH,
> +.min_width = IMG_MIN_WIDTH,
> +.max_height = YUV_GROUP2_MAX_HEIGHT,
> +.min_height = IMG_MIN_HEIGHT,
> +.step_height = 1,
> +.step_width = 1,
> +},
> +},
> +},
> +};
> +