|
@@ -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 = {
|
|
|
|
- .name = "hgafb",
|
|
|
|
- .bus = &platform_bus_type,
|
|
|
|
|
|
+static struct platform_driver hgafb_driver = {
|
|
.probe = hgafb_probe,
|
|
.probe = hgafb_probe,
|
|
.remove = hgafb_remove,
|
|
.remove = hgafb_remove,
|
|
|
|
+ .driver = {
|
|
|
|
+ .name = "hgafb",
|
|
|
|
+ },
|
|
};
|
|
};
|
|
|
|
|
|
-static struct platform_device hgafb_device = {
|
|
|
|
- .name = "hgafb",
|
|
|
|
-};
|
|
|
|
|
|
+static struct platform_device *hgafb_device;
|
|
|
|
|
|
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);
|
|
|
|
- if (ret)
|
|
|
|
- driver_unregister(&hgafb_driver);
|
|
|
|
|
|
+ hgafb_device = platform_device_register_simple("hgafb", 0, NULL, 0);
|
|
|
|
+
|
|
|
|
+ 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);
|
|
|
|
- driver_unregister(&hgafb_driver);
|
|
|
|
|
|
+ platform_device_unregister(hgafb_device);
|
|
|
|
+ platform_driver_unregister(&hgafb_driver);
|
|
}
|
|
}
|
|
|
|
|
|
/* -------------------------------------------------------------------------
|
|
/* -------------------------------------------------------------------------
|