[PATCH v2 1/3] video: fb: add optional damage tracking
Sascha Hauer
sha at pengutronix.de
Tue Apr 11 05:02:55 PDT 2023
On Wed, Apr 05, 2023 at 02:27:32PM +0200, Philipp Zabel wrote:
> Add an optional fb_damage operation that drivers may use to accumulate
> damage on the framebuffer until fb_flush is called. The accumulated
> damage can be used to support partial updates for displays with an
> integrated framebuffer.
>
> Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
> ---
> v2: make rect parameter to fb_damage const
> ---
> drivers/video/fb.c | 6 ++++++
> include/fb.h | 9 +++++++++
> 2 files changed, 15 insertions(+)
Applied, thanks
Sascha
>
> diff --git a/drivers/video/fb.c b/drivers/video/fb.c
> index 44754065e7d9..6f412d62c434 100644
> --- a/drivers/video/fb.c
> +++ b/drivers/video/fb.c
> @@ -43,6 +43,12 @@ static int fb_close(struct cdev *cdev)
> return 0;
> }
>
> +void fb_damage(struct fb_info *info, struct fb_rect *rect)
> +{
> + if (info->fbops->fb_damage)
> + info->fbops->fb_damage(info, rect);
> +}
> +
> static int fb_op_flush(struct cdev *cdev)
> {
> struct fb_info *info = cdev->priv;
> diff --git a/include/fb.h b/include/fb.h
> index 15bb74b99576..88e6c0e45835 100644
> --- a/include/fb.h
> +++ b/include/fb.h
> @@ -80,6 +80,13 @@ struct fb_bitfield {
>
> struct fb_info;
>
> +struct fb_rect {
> + u32 x1;
> + u32 y1;
> + u32 x2;
> + u32 y2;
> +};
> +
> struct fb_ops {
> /* set color register */
> int (*fb_setcolreg)(unsigned regno, unsigned red, unsigned green,
> @@ -87,6 +94,7 @@ struct fb_ops {
> void (*fb_enable)(struct fb_info *info);
> void (*fb_disable)(struct fb_info *info);
> int (*fb_activate_var)(struct fb_info *info);
> + void (*fb_damage)(struct fb_info *info, const struct fb_rect *rect);
> void (*fb_flush)(struct fb_info *info);
> };
>
> @@ -156,6 +164,7 @@ int register_framebuffer(struct fb_info *info);
>
> int fb_enable(struct fb_info *info);
> int fb_disable(struct fb_info *info);
> +void fb_damage(struct fb_info *info, struct fb_rect *rect);
> void fb_flush(struct fb_info *info);
>
> #define FBIOGET_SCREENINFO _IOR('F', 1, loff_t)
> --
> 2.39.2
>
>
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list