summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/core/sysfillrect.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/fbdev/core/sysfillrect.c')
-rw-r--r--drivers/video/fbdev/core/sysfillrect.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/video/fbdev/core/sysfillrect.c b/drivers/video/fbdev/core/sysfillrect.c
new file mode 100644
index 000000000000..12eea3e424bb
--- /dev/null
+++ b/drivers/video/fbdev/core/sysfillrect.c
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2025 Zsolt Kajtar (soci@c64.rulez.org)
+ */
+
+#include <linux/export.h>
+#include <linux/module.h>
+#include <linux/fb.h>
+#include <linux/bitrev.h>
+#include <asm/types.h>
+
+#ifdef CONFIG_FB_SYS_REV_PIXELS_IN_BYTE
+#define FB_REV_PIXELS_IN_BYTE
+#endif
+
+#include "sysmem.h"
+#include "fb_fillrect.h"
+
+void sys_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
+{
+ if (!(p->flags & FBINFO_VIRTFB))
+ fb_warn_once(p, "%s: framebuffer is not in virtual address space.\n", __func__);
+
+ fb_fillrect(p, rect);
+}
+EXPORT_SYMBOL(sys_fillrect);
+
+MODULE_AUTHOR("Zsolt Kajtar <soci@c64.rulez.org>");
+MODULE_DESCRIPTION("Virtual memory packed pixel framebuffer area fill");
+MODULE_LICENSE("GPL");