X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fvideo%2Fepson1355fb.c;h=082759447bf6d16ab9c881fee230f66b9841e7ea;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=737257d278f0a05ee5257fb4ba2d48f2ea0723c5;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/drivers/video/epson1355fb.c b/drivers/video/epson1355fb.c index 737257d27..082759447 100644 --- a/drivers/video/epson1355fb.c +++ b/drivers/video/epson1355fb.c @@ -48,6 +48,7 @@ #include #include #include +#include #include #include #include @@ -604,6 +605,11 @@ static void clearfb16(struct fb_info *info) fb_writeb(0, dst); } +static void epson1355fb_platform_release(struct device *device) +{ + dev_err(device, "This driver is broken, please bug the authors so they will fix it.\n"); +} + static int epson1355fb_remove(struct platform_device *dev) { struct fb_info *info = platform_get_drvdata(dev); @@ -727,7 +733,13 @@ static struct platform_driver epson1355fb_driver = { }, }; -static struct platform_device *epson1355fb_device; +static struct platform_device epson1355fb_device = { + .name = "epson1355fb", + .id = 0, + .dev = { + .release = epson1355fb_platform_release, + } +}; int __init epson1355fb_init(void) { @@ -737,21 +749,11 @@ int __init epson1355fb_init(void) return -ENODEV; ret = platform_driver_register(&epson1355fb_driver); - if (!ret) { - epson1355fb_device = platform_device_alloc("epson1355fb", 0); - - if (epson1355fb_device) - ret = platform_device_add(epson1355fb_device); - else - ret = -ENOMEM; - - if (ret) { - platform_device_put(epson1355fb_device); + ret = platform_device_register(&epson1355fb_device); + if (ret) platform_driver_unregister(&epson1355fb_driver); - } } - return ret; } @@ -760,7 +762,7 @@ module_init(epson1355fb_init); #ifdef MODULE static void __exit epson1355fb_exit(void) { - platform_device_unregister(epson1355fb_device); + platform_device_unregister(&epson1355fb_device); platform_driver_unregister(&epson1355fb_driver); }