[PATCH v2 18/22] media: rockchip: rga: move rga_fmt to rga-hw.h
Sven Püschel
s.pueschel at pengutronix.de
Wed Jan 7 06:52:04 PST 2026
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 :
>> 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.
[...]
>> 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;
>> +};
[...]
>>
>> -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 at collabora.com>
>
>> -
>> 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)
More information about the linux-arm-kernel
mailing list