diff options
Diffstat (limited to 'drivers/auxdisplay/cfag12864bfb.c')
| -rw-r--r-- | drivers/auxdisplay/cfag12864bfb.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/drivers/auxdisplay/cfag12864bfb.c b/drivers/auxdisplay/cfag12864bfb.c index d66821adf453..24baf6b2c587 100644 --- a/drivers/auxdisplay/cfag12864bfb.c +++ b/drivers/auxdisplay/cfag12864bfb.c @@ -12,13 +12,10 @@ #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> -#include <linux/delay.h> #include <linux/errno.h> #include <linux/fb.h> #include <linux/mm.h> #include <linux/platform_device.h> -#include <linux/string.h> -#include <linux/uaccess.h> #include <linux/cfag12864b.h> #define CFAG12864BFB_NAME "cfag12864bfb" @@ -41,8 +38,8 @@ static const struct fb_var_screeninfo cfag12864bfb_var = { .yres_virtual = CFAG12864B_HEIGHT, .bits_per_pixel = 1, .red = { 0, 1, 0 }, - .green = { 0, 1, 0 }, - .blue = { 0, 1, 0 }, + .green = { 0, 1, 0 }, + .blue = { 0, 1, 0 }, .left_margin = 0, .right_margin = 0, .upper_margin = 0, @@ -54,35 +51,34 @@ static int cfag12864bfb_mmap(struct fb_info *info, struct vm_area_struct *vma) { struct page *pages = virt_to_page(cfag12864b_buffer); + vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); + return vm_map_pages_zero(vma, &pages, 1); } static const struct fb_ops cfag12864bfb_ops = { .owner = THIS_MODULE, - .fb_read = fb_sys_read, - .fb_write = fb_sys_write, - .fb_fillrect = sys_fillrect, - .fb_copyarea = sys_copyarea, - .fb_imageblit = sys_imageblit, + __FB_DEFAULT_SYSMEM_OPS_RDWR, + __FB_DEFAULT_SYSMEM_OPS_DRAW, .fb_mmap = cfag12864bfb_mmap, }; static int cfag12864bfb_probe(struct platform_device *device) { int ret = -EINVAL; - struct fb_info *info = framebuffer_alloc(0, &device->dev); + struct fb_info *info = framebuffer_alloc(0, &device->dev); if (!info) goto none; - info->screen_base = (char __iomem *) cfag12864b_buffer; + info->flags = FBINFO_VIRTFB; + info->screen_buffer = cfag12864b_buffer; info->screen_size = CFAG12864B_SIZE; info->fbops = &cfag12864bfb_ops; info->fix = cfag12864bfb_fix; info->var = cfag12864bfb_var; info->pseudo_palette = NULL; info->par = NULL; - info->flags = FBINFO_FLAG_DEFAULT; if (register_framebuffer(info) < 0) goto fballoced; @@ -100,7 +96,7 @@ none: return ret; } -static int cfag12864bfb_remove(struct platform_device *device) +static void cfag12864bfb_remove(struct platform_device *device) { struct fb_info *info = platform_get_drvdata(device); @@ -108,8 +104,6 @@ static int cfag12864bfb_remove(struct platform_device *device) unregister_framebuffer(info); framebuffer_release(info); } - - return 0; } static struct platform_driver cfag12864bfb_driver = { |
