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

Commit fc95c6d9 authored by Jan Beulich's avatar Jan Beulich Committed by Linus Torvalds
Browse files

vesafb: use platform_driver_probe() instead of platform_driver_register()



Commit c2e13037 ("platform-drivers: move
probe to .devinit.text in drivers/video") introduced a huge amount of
section mismatch warnings in vesafb code.  Rather than converting all of
the annotations, do the obvious and revert the __init -> __devinit change,
and use the recommended (in that patch) alternative to calling
platform_driver_register(): vesafb depends on information obtained from by
kernel at boot time, cannot be a module, and no post-boot devices can ever
show up.

Signed-off-by: default avatarJan Beulich <jbeulich@novell.com>
Cc: Greg KH <greg@kroah.com>
Acked-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 530cd330
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -225,7 +225,7 @@ static int __init vesafb_setup(char *options)
	return 0;
}

static int __devinit vesafb_probe(struct platform_device *dev)
static int __init vesafb_probe(struct platform_device *dev)
{
	struct fb_info *info;
	int i, err;
@@ -476,7 +476,6 @@ static int __devinit vesafb_probe(struct platform_device *dev)
}

static struct platform_driver vesafb_driver = {
	.probe	= vesafb_probe,
	.driver	= {
		.name	= "vesafb",
	},
@@ -492,20 +491,21 @@ static int __init vesafb_init(void)
	/* ignore error return of fb_get_options */
	fb_get_options("vesafb", &option);
	vesafb_setup(option);
	ret = platform_driver_register(&vesafb_driver);

	if (!ret) {
	vesafb_device = platform_device_alloc("vesafb", 0);
	if (!vesafb_device)
		return -ENOMEM;

		if (vesafb_device)
	ret = platform_device_add(vesafb_device);
		else
			ret = -ENOMEM;
	if (!ret) {
		ret = platform_driver_probe(&vesafb_driver, vesafb_probe);
		if (ret)
			platform_device_del(vesafb_device);
	}

	if (ret) {
		platform_device_put(vesafb_device);
			platform_driver_unregister(&vesafb_driver);
		}
		vesafb_device = NULL;
	}

	return ret;