static void unifb_fillrect(struct fb_info *info, const struct fb_fillrect *region) { struct fb_fillrect modded; int vxres, vyres; if (info->flags & FBINFO_HWACCEL_DISABLED) { sys_fillrect(info, region); return; } vxres = info->var.xres_virtual; vyres = info->var.yres_virtual; memcpy(&modded, region, sizeof(struct fb_fillrect)); if (!modded.width || !modded.height || modded.dx >= vxres || modded.dy >= vyres) return; if (modded.dx + modded.width > vxres) modded.width = vxres - modded.dx; if (modded.dy + modded.height > vyres) modded.height = vyres - modded.dy; unifb_prim_fillrect(info, &modded); }
void st7735fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect) { struct st7735fb_par *par = info->par; sys_fillrect(info, rect); st7735fb_update_display(par); }
void st7586fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect) { struct st7586fb_par *par = info->par; sys_fillrect(info, rect); schedule_delayed_work(&par->dwork, FB_ST7586_UPDATE_DELAY); }
static void hecubafb_fillrect(struct fb_info *info, const struct fb_fillrect *rect) { struct hecubafb_par *par = info->par; sys_fillrect(info, rect); hecubafb_dpy_update(par); }
void ws_eink_fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect) { int ret; struct ws_eink_fb_par *par = info->par; sys_fillrect(info, rect); ret = ws_eink_update_display(par); if (ret) dev_err(info->device, "%s: failed to update display", __func__); }
static void evdi_fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect) { struct evdi_fbdev *ufbdev = info->par; EVDI_CHECKPT(); sys_fillrect(info, rect); evdi_handle_damage(&ufbdev->ufb, rect->dx, rect->dy, rect->width, rect->height); }
static void sh_mobile_lcdc_fillrect(struct fb_info *info, const struct fb_fillrect *rect) { sys_fillrect(info, rect); sh_mobile_lcdc_deferred_io_touch(info); }
static void st7585_fillrect(struct fb_info *info, const struct fb_fillrect *rect) { sys_fillrect(info, rect); st7585fb_schedule_refresh(info, rect); }
static void ls027b7dh01_fillrect(struct fb_info *p, const struct fb_fillrect *rect) { sys_fillrect(p, rect); ls027b7dh01_invalidate(p, rect->dx, rect->dy, rect->width, rect->height); }
static void ili9341_fillrect(struct fb_info *p, const struct fb_fillrect *rect) { sys_fillrect(p, rect); ili9341_touch(p, rect->dx, rect->dy, rect->width, rect->height); }