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

Commit 82337298 authored by Johan Hovold's avatar Johan Hovold Committed by Felipe Balbi
Browse files

usb: gadget: pxa25x_udc: fix deferred probe from __init



Move probe out of __init section and don't use platform_driver_probe
which cannot be used with deferred probing.

Since commit e9354576 ("gpiolib: Defer failed gpio requests by default")
this driver might return -EPROBE_DEFER if a gpio_request fails.

Cc: Eric Miao <eric.y.miao@gmail.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
Cc: Felipe Balbi <balbi@ti.com>
Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 1374a430
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -2054,7 +2054,7 @@ static struct pxa25x_udc memory = {
/*
 *	probe - binds to the platform device
 */
static int __init pxa25x_udc_probe(struct platform_device *pdev)
static int pxa25x_udc_probe(struct platform_device *pdev)
{
	struct pxa25x_udc *dev = &memory;
	int retval, irq;
@@ -2203,7 +2203,7 @@ static void pxa25x_udc_shutdown(struct platform_device *_dev)
	pullup_off();
}

static int __exit pxa25x_udc_remove(struct platform_device *pdev)
static int pxa25x_udc_remove(struct platform_device *pdev)
{
	struct pxa25x_udc *dev = platform_get_drvdata(pdev);

@@ -2294,7 +2294,8 @@ static int pxa25x_udc_resume(struct platform_device *dev)

static struct platform_driver udc_driver = {
	.shutdown	= pxa25x_udc_shutdown,
	.remove		= __exit_p(pxa25x_udc_remove),
	.probe		= pxa25x_udc_probe,
	.remove		= pxa25x_udc_remove,
	.suspend	= pxa25x_udc_suspend,
	.resume		= pxa25x_udc_resume,
	.driver		= {
@@ -2303,7 +2304,7 @@ static struct platform_driver udc_driver = {
	},
};

module_platform_driver_probe(udc_driver, pxa25x_udc_probe);
module_platform_driver(udc_driver);

MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_AUTHOR("Frank Becker, Robert Schwebel, David Brownell");