diff options
Diffstat (limited to 'drivers/video/fbdev/cobalt_lcdfb.c')
-rw-r--r-- | drivers/video/fbdev/cobalt_lcdfb.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/video/fbdev/cobalt_lcdfb.c b/drivers/video/fbdev/cobalt_lcdfb.c index 5f8b6324d2e8..3d59a01ec677 100644 --- a/drivers/video/fbdev/cobalt_lcdfb.c +++ b/drivers/video/fbdev/cobalt_lcdfb.c @@ -129,6 +129,9 @@ static ssize_t cobalt_lcdfb_read(struct fb_info *info, char __user *buf, unsigned long pos; int len, retval = 0; + if (!info->screen_base) + return -ENODEV; + pos = *ppos; if (pos >= LCD_CHARS_MAX || count == 0) return 0; @@ -175,6 +178,9 @@ static ssize_t cobalt_lcdfb_write(struct fb_info *info, const char __user *buf, unsigned long pos; int len, retval = 0; + if (!info->screen_base) + return -ENODEV; + pos = *ppos; if (pos >= LCD_CHARS_MAX || count == 0) return 0; @@ -324,7 +330,7 @@ static int cobalt_lcdfb_probe(struct platform_device *dev) return 0; } -static int cobalt_lcdfb_remove(struct platform_device *dev) +static void cobalt_lcdfb_remove(struct platform_device *dev) { struct fb_info *info; @@ -333,13 +339,11 @@ static int cobalt_lcdfb_remove(struct platform_device *dev) unregister_framebuffer(info); framebuffer_release(info); } - - return 0; } static struct platform_driver cobalt_lcdfb_driver = { .probe = cobalt_lcdfb_probe, - .remove = cobalt_lcdfb_remove, + .remove_new = cobalt_lcdfb_remove, .driver = { .name = "cobalt-lcd", }, |