1*eabb0329SZsolt Kajtar // SPDX-License-Identifier: GPL-2.0-only
219757fc8STomi Valkeinen /*
3*eabb0329SZsolt Kajtar  *	Copyright (C)  2025 Zsolt Kajtar ([email protected])
419757fc8STomi Valkeinen  */
519757fc8STomi Valkeinen #include <linux/module.h>
619757fc8STomi Valkeinen #include <linux/fb.h>
7*eabb0329SZsolt Kajtar #include <linux/bitrev.h>
819757fc8STomi Valkeinen #include <asm/types.h>
919757fc8STomi Valkeinen 
10*eabb0329SZsolt Kajtar #ifdef CONFIG_FB_CFB_REV_PIXELS_IN_BYTE
11*eabb0329SZsolt Kajtar #define FB_REV_PIXELS_IN_BYTE
1219757fc8STomi Valkeinen #endif
1319757fc8STomi Valkeinen 
14*eabb0329SZsolt Kajtar #include "cfbmem.h"
15*eabb0329SZsolt Kajtar #include "fb_fillrect.h"
1619757fc8STomi Valkeinen 
cfb_fillrect(struct fb_info * p,const struct fb_fillrect * rect)1719757fc8STomi Valkeinen void cfb_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
1819757fc8STomi Valkeinen {
1919757fc8STomi Valkeinen 	if (p->state != FBINFO_STATE_RUNNING)
2019757fc8STomi Valkeinen 		return;
2119757fc8STomi Valkeinen 
22b3e88137SThomas Zimmermann 	if (p->flags & FBINFO_VIRTFB)
23*eabb0329SZsolt Kajtar 		fb_warn_once(p, "%s: framebuffer is not in I/O address space.\n", __func__);
24b3e88137SThomas Zimmermann 
2519757fc8STomi Valkeinen 	if (p->fbops->fb_sync)
2619757fc8STomi Valkeinen 		p->fbops->fb_sync(p);
2719757fc8STomi Valkeinen 
28*eabb0329SZsolt Kajtar 	fb_fillrect(p, rect);
2919757fc8STomi Valkeinen }
3019757fc8STomi Valkeinen EXPORT_SYMBOL(cfb_fillrect);
3119757fc8STomi Valkeinen 
32*eabb0329SZsolt Kajtar MODULE_AUTHOR("Zsolt Kajtar <[email protected]>");
33*eabb0329SZsolt Kajtar MODULE_DESCRIPTION("I/O memory packed pixel framebuffer area fill");
3419757fc8STomi Valkeinen MODULE_LICENSE("GPL");
35