vga16fb: Update platform code
PATCH 9/12 vga16fb: Update platform code
Update platform code to dynamically allocate the platform device
Signed-off-by Antonino Daplas <[email protected]>
---
drivers/video/vga16fb.c | 40 +++++++++++++++++++++++----------------- 1 files changed, 23 insertions(+), 17 deletions(-)
drivers/video/vga16fb.c +23 -17
@@ -1334,9 +1334,8 @@ static int vga16fb_setup(char *options) }#endif -static int __init vga16fb_probe (struct device *device) +static int __init vga16fb_probe (struct platform_device *dev) { -struct platform_device *dev =to_platform_device (device);struct fb_info *info;struct vga16fb_par *par;int i;
@@ -1403,7 +1402,7 @@ static int __init vga16fb_probe(struct dprintk (KERN_INFO "fb%d: %s frame buffer device\n" , info->node, info->fix.id); -dev_set_drvdata (device, info); +platform_set_drvdata (dev, info);return 0 ;
@@ -1417,9 +1416,9 @@ static int __init vga16fb_probe(struct dreturn ret; } -static int vga16fb_remove (struct device *device) +static int vga16fb_remove (struct platform_device *dev) { -struct fb_info *info =dev_get_drvdata (device); +struct fb_info *info =platform_get_drvdata (dev);if (info) {unregister_framebuffer (info);
@@ -1432,16 +1431,15 @@ static int vga16fb_remove(struct devicereturn 0 ; } -static struct device_driver vga16fb_driver = { - .name ="vga16fb" , - .bus = &platform_bus_type, +static struct platform_driver vga16fb_driver = { .probe = vga16fb_probe, .remove = vga16fb_remove, + .driver = { + .name ="vga16fb" , + }, }; -static struct platform_device vga16fb_device = { - .name ="vga16fb" , -}; +static struct platform_device *vga16fb_device;static int __init vga16fb_init (void ) {
@@ -1454,12 +1452,20 @@ static int __init vga16fb_init(void)vga16fb_setup (option);#endif - ret =driver_register (&vga16fb_driver); + ret =platform_driver_register (&vga16fb_driver);if (!ret) { - ret =platform_device_register (&vga16fb_device); -if (ret) -driver_unregister (&vga16fb_driver); + vga16fb_device =platform_device_alloc ("vga16fb" ,0 ); + +if (vga16fb_device) + ret =platform_device_add (vga16fb_device); +else + ret = -ENOMEM ; + +if (ret) { +platform_device_put (vga16fb_device); +platform_driver_unregister (&vga16fb_driver); + } }return ret;
@@ -1467,8 +1473,8 @@ static int __init vga16fb_init(void) static void __exit vga16fb_exit(void) { -platform_device_unregister (&vga16fb_device); -driver_unregister (&vga16fb_driver); +platform_device_unregister (vga16fb_device); +platform_driver_unregister (&vga16fb_driver); }MODULE_LICENSE ("GPL" );
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642