hgafb: convert to new platform driver API

Convert the hgafb driver to use new platform driver API.

Addresses http://bugzilla.kernel.org/show_bug.cgi?id=9689

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Cc: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Krzysztof Helt 2008-07-23 21:31:26 -07:00 коммит произвёл Linus Torvalds
Родитель b604838ac6
Коммит 2870086e9f
1 изменённых файлов: 19 добавлений и 17 удалений

Просмотреть файл

@ -551,7 +551,7 @@ static struct fb_ops hgafb_ops = {
* Initialization * Initialization
*/ */
static int __init hgafb_probe(struct device *device) static int __init hgafb_probe(struct platform_device *pdev)
{ {
struct fb_info *info; struct fb_info *info;
@ -565,7 +565,7 @@ static int __init hgafb_probe(struct device *device)
printk(KERN_INFO "hgafb: %s with %ldK of memory detected.\n", printk(KERN_INFO "hgafb: %s with %ldK of memory detected.\n",
hga_type_name, hga_vram_len/1024); hga_type_name, hga_vram_len/1024);
info = framebuffer_alloc(0, NULL); info = framebuffer_alloc(0, &pdev->dev);
if (!info) { if (!info) {
iounmap(hga_vram); iounmap(hga_vram);
return -ENOMEM; return -ENOMEM;
@ -593,13 +593,13 @@ static int __init hgafb_probe(struct device *device)
printk(KERN_INFO "fb%d: %s frame buffer device\n", printk(KERN_INFO "fb%d: %s frame buffer device\n",
info->node, info->fix.id); info->node, info->fix.id);
dev_set_drvdata(device, info); platform_set_drvdata(pdev, info);
return 0; return 0;
} }
static int hgafb_remove(struct device *device) static int hgafb_remove(struct platform_device *pdev)
{ {
struct fb_info *info = dev_get_drvdata(device); struct fb_info *info = platform_get_drvdata(pdev);
hga_txt_mode(); hga_txt_mode();
hga_clear_screen(); hga_clear_screen();
@ -620,16 +620,15 @@ static int hgafb_remove(struct device *device)
return 0; return 0;
} }
static struct device_driver hgafb_driver = { static struct platform_driver hgafb_driver = {
.name = "hgafb",
.bus = &platform_bus_type,
.probe = hgafb_probe, .probe = hgafb_probe,
.remove = hgafb_remove, .remove = hgafb_remove,
.driver = {
.name = "hgafb",
},
}; };
static struct platform_device hgafb_device = { static struct platform_device *hgafb_device;
.name = "hgafb",
};
static int __init hgafb_init(void) static int __init hgafb_init(void)
{ {
@ -638,12 +637,15 @@ static int __init hgafb_init(void)
if (fb_get_options("hgafb", NULL)) if (fb_get_options("hgafb", NULL))
return -ENODEV; return -ENODEV;
ret = driver_register(&hgafb_driver); ret = platform_driver_register(&hgafb_driver);
if (!ret) { if (!ret) {
ret = platform_device_register(&hgafb_device); hgafb_device = platform_device_register_simple("hgafb", 0, NULL, 0);
if (ret)
driver_unregister(&hgafb_driver); if (IS_ERR(hgafb_device)) {
platform_driver_unregister(&hgafb_driver);
ret = PTR_ERR(hgafb_device);
}
} }
return ret; return ret;
@ -651,8 +653,8 @@ static int __init hgafb_init(void)
static void __exit hgafb_exit(void) static void __exit hgafb_exit(void)
{ {
platform_device_unregister(&hgafb_device); platform_device_unregister(hgafb_device);
driver_unregister(&hgafb_driver); platform_driver_unregister(&hgafb_driver);
} }
/* ------------------------------------------------------------------------- /* -------------------------------------------------------------------------