Re: [PATCH v2 18/22] media: rockchip: rga: move rga_fmt to rga-hw.h
From: Sven Püschel <hidden>
Date: 2026-01-07 14:52:22
Also in:
linux-devicetree, linux-media, linux-rockchip, lkml
Hi, On 12/24/25 4:59 PM, Nicolas Dufresne wrote:
Le mercredi 03 décembre 2025 à 16:52 +0100, Sven Püschel a écrit :quoted
Move rga_fmt to rga-hw in preparation of the RGA3 addition, as the struct contains many RGA2 specific values. They are used to write the correct register values quickly based on the chosen format. Therefore the pointer to the rga_fmt struct is kept but changed to an opaque void pointer outside of the rga-hw.h.
[...]
quoted
diff --git a/drivers/media/platform/rockchip/rga/rga-hw.h b/drivers/media/platform/rockchip/rga/rga-hw.h index fffcab0131225..3bc4b1f5acba2 100644 --- a/drivers/media/platform/rockchip/rga/rga-hw.h +++ b/drivers/media/platform/rockchip/rga/rga-hw.h@@ -6,6 +6,8 @@ #ifndef __RGA_HW_H__ #define __RGA_HW_H__ +#include <linux/types.h> + #define RGA_CMDBUF_SIZE 0x20 /* Hardware limits */@@ -431,4 +433,14 @@ union rga_pat_con { } data; }; +struct rga_fmt { + u32 fourcc; + int depth; + u8 uv_factor; + u8 y_div; + u8 x_div; + u8 color_swap; + u8 hw_format; +};
[...]
quoted
-struct rga_fmt { - u32 fourcc; - int depth; - u8 uv_factor; - u8 y_div; - u8 x_div; - u8 color_swap; - u8 hw_format; -};Ah! here's the removal of the unused variable. Not review friendly, but at last removed.
I've just moved it, so your review comments are still right. x_div/y_div is still used at one place in rga_hw.c, but I'll remove it too in my v3 (and have these removals in the other commits to keep this reviewed-by). Sincerely Sven
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>quoted
- struct rga_frame { /* Crop */ struct v4l2_rect crop; /* Image format */ - struct rga_fmt *fmt; + void *fmt; struct v4l2_pix_format_mplane pix; };@@ -145,8 +135,6 @@ static inline void rga_mod(struct rockchip_rga *rga, u32 reg, u32 val, u32 mask) struct rga_hw { const char *card_type; bool has_internal_iommu; - struct rga_fmt *formats; - u32 num_formats; size_t cmdbuf_size; u32 min_width, min_height; u32 max_width, max_height;@@ -158,6 +146,9 @@ struct rga_hw { struct rga_vb_buffer *src, struct rga_vb_buffer *dst); bool (*handle_irq)(struct rockchip_rga *rga); void (*get_version)(struct rockchip_rga *rga); + void *(*adjust_and_map_format)(struct v4l2_pix_format_mplane *format, + bool is_output); + int (*enum_format)(struct v4l2_fmtdesc *f); }; static inline bool rga_has_internal_iommu(const struct rockchip_rga *rga)