Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2870086e authored by Krzysztof Helt's avatar Krzysztof Helt Committed by Linus Torvalds
Browse files

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: default avatarKrzysztof Helt <krzysztof.h1@wp.pl>
Cc: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent b604838a
Loading
Loading
Loading
Loading
+19 −17
Original line number Diff line number Diff line
@@ -551,7 +551,7 @@ static struct fb_ops hgafb_ops = {
	 *  Initialization
	 */

static int __init hgafb_probe(struct device *device)
static int __init hgafb_probe(struct platform_device *pdev)
{
	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",
		hga_type_name, hga_vram_len/1024);

	info = framebuffer_alloc(0, NULL);
	info = framebuffer_alloc(0, &pdev->dev);
	if (!info) {
		iounmap(hga_vram);
		return -ENOMEM;
@@ -593,13 +593,13 @@ static int __init hgafb_probe(struct device *device)

        printk(KERN_INFO "fb%d: %s frame buffer device\n",
               info->node, info->fix.id);
	dev_set_drvdata(device, info);
	platform_set_drvdata(pdev, info);
	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_clear_screen();
@@ -620,17 +620,16 @@ static int hgafb_remove(struct device *device)
	return 0;
}

static struct device_driver hgafb_driver = {
	.name = "hgafb",
	.bus  = &platform_bus_type,
static struct platform_driver hgafb_driver = {
	.probe = hgafb_probe,
	.remove = hgafb_remove,
};

static struct platform_device hgafb_device = {
	.driver = {
		.name = "hgafb",
	},
};

static struct platform_device *hgafb_device;

static int __init hgafb_init(void)
{
	int ret;
@@ -638,12 +637,15 @@ static int __init hgafb_init(void)
	if (fb_get_options("hgafb", NULL))
		return -ENODEV;

	ret = driver_register(&hgafb_driver);
	ret = platform_driver_register(&hgafb_driver);

	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;
@@ -651,8 +653,8 @@ static int __init hgafb_init(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);
}

/* -------------------------------------------------------------------------