diff options
author | Krzysztof Helt <krzysztof.h1@wp.pl> | 2008-07-24 00:31:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-24 13:47:39 -0400 |
commit | 2870086e9f2032bdd95b8da9bd187e3c16fc6d49 (patch) | |
tree | c56c48ac9415e4d28ddf7b2cdc3c140830c09420 | |
parent | b604838ac6d233fd6bffc0e758a818133a01ff22 (diff) |
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>
-rw-r--r-- | drivers/video/hgafb.c | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/drivers/video/hgafb.c b/drivers/video/hgafb.c index c18880d9db1f..0129c044f6d6 100644 --- a/drivers/video/hgafb.c +++ b/drivers/video/hgafb.c | |||
@@ -551,7 +551,7 @@ static struct fb_ops hgafb_ops = { | |||
551 | * Initialization | 551 | * Initialization |
552 | */ | 552 | */ |
553 | 553 | ||
554 | static int __init hgafb_probe(struct device *device) | 554 | static int __init hgafb_probe(struct platform_device *pdev) |
555 | { | 555 | { |
556 | struct fb_info *info; | 556 | struct fb_info *info; |
557 | 557 | ||
@@ -565,7 +565,7 @@ static int __init hgafb_probe(struct device *device) | |||
565 | printk(KERN_INFO "hgafb: %s with %ldK of memory detected.\n", | 565 | printk(KERN_INFO "hgafb: %s with %ldK of memory detected.\n", |
566 | hga_type_name, hga_vram_len/1024); | 566 | hga_type_name, hga_vram_len/1024); |
567 | 567 | ||
568 | info = framebuffer_alloc(0, NULL); | 568 | info = framebuffer_alloc(0, &pdev->dev); |
569 | if (!info) { | 569 | if (!info) { |
570 | iounmap(hga_vram); | 570 | iounmap(hga_vram); |
571 | return -ENOMEM; | 571 | return -ENOMEM; |
@@ -593,13 +593,13 @@ static int __init hgafb_probe(struct device *device) | |||
593 | 593 | ||
594 | printk(KERN_INFO "fb%d: %s frame buffer device\n", | 594 | printk(KERN_INFO "fb%d: %s frame buffer device\n", |
595 | info->node, info->fix.id); | 595 | info->node, info->fix.id); |
596 | dev_set_drvdata(device, info); | 596 | platform_set_drvdata(pdev, info); |
597 | return 0; | 597 | return 0; |
598 | } | 598 | } |
599 | 599 | ||
600 | static int hgafb_remove(struct device *device) | 600 | static int hgafb_remove(struct platform_device *pdev) |
601 | { | 601 | { |
602 | struct fb_info *info = dev_get_drvdata(device); | 602 | struct fb_info *info = platform_get_drvdata(pdev); |
603 | 603 | ||
604 | hga_txt_mode(); | 604 | hga_txt_mode(); |
605 | hga_clear_screen(); | 605 | hga_clear_screen(); |
@@ -620,16 +620,15 @@ static int hgafb_remove(struct device *device) | |||
620 | return 0; | 620 | return 0; |
621 | } | 621 | } |
622 | 622 | ||
623 | static struct device_driver hgafb_driver = { | 623 | static struct platform_driver hgafb_driver = { |
624 | .name = "hgafb", | ||
625 | .bus = &platform_bus_type, | ||
626 | .probe = hgafb_probe, | 624 | .probe = hgafb_probe, |
627 | .remove = hgafb_remove, | 625 | .remove = hgafb_remove, |
626 | .driver = { | ||
627 | .name = "hgafb", | ||
628 | }, | ||
628 | }; | 629 | }; |
629 | 630 | ||
630 | static struct platform_device hgafb_device = { | 631 | static struct platform_device *hgafb_device; |
631 | .name = "hgafb", | ||
632 | }; | ||
633 | 632 | ||
634 | static int __init hgafb_init(void) | 633 | static int __init hgafb_init(void) |
635 | { | 634 | { |
@@ -638,12 +637,15 @@ static int __init hgafb_init(void) | |||
638 | if (fb_get_options("hgafb", NULL)) | 637 | if (fb_get_options("hgafb", NULL)) |
639 | return -ENODEV; | 638 | return -ENODEV; |
640 | 639 | ||
641 | ret = driver_register(&hgafb_driver); | 640 | ret = platform_driver_register(&hgafb_driver); |
642 | 641 | ||
643 | if (!ret) { | 642 | if (!ret) { |
644 | ret = platform_device_register(&hgafb_device); | 643 | hgafb_device = platform_device_register_simple("hgafb", 0, NULL, 0); |
645 | if (ret) | 644 | |
646 | driver_unregister(&hgafb_driver); | 645 | if (IS_ERR(hgafb_device)) { |
646 | platform_driver_unregister(&hgafb_driver); | ||
647 | ret = PTR_ERR(hgafb_device); | ||
648 | } | ||
647 | } | 649 | } |
648 | 650 | ||
649 | return ret; | 651 | return ret; |
@@ -651,8 +653,8 @@ static int __init hgafb_init(void) | |||
651 | 653 | ||
652 | static void __exit hgafb_exit(void) | 654 | static void __exit hgafb_exit(void) |
653 | { | 655 | { |
654 | platform_device_unregister(&hgafb_device); | 656 | platform_device_unregister(hgafb_device); |
655 | driver_unregister(&hgafb_driver); | 657 | platform_driver_unregister(&hgafb_driver); |
656 | } | 658 | } |
657 | 659 | ||
658 | /* ------------------------------------------------------------------------- | 660 | /* ------------------------------------------------------------------------- |