It is a bug fix that using ehci_init_driver at wrong place, the
correct place should be at ci core driver's module_init, and only be called one time. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJVtd37AAoJEEhZKYFQ1nG7hqsIAMVqiEuK7MK2lz+GsSsifP0u bv1Bo+D7D2vOltzwz49Kis+gcUxX01SKHXH9yqAjR9YQPBNaxwC7CM7tm1mH0lWL 9NKNNdkjS0O9clfPiWm2qf3yQyBLQqTLQ3qXHzw2l3ryxyRyEoTbK+70XRffUpDy /5spaIi1z2bGSPrWySF7I/o7YXR/SdkKkVIkSuHXIkq/KB57RjH3XCOdvacBfawt d2sIyoEhku0DcsISnqvrPTmEdyCrNzLrfyjcvImFDypA8PtjAVT1/iVoRKVzvBeK 9EQRwJfkuJ7AeR+g29ixQFqBfvrIQN2R/mJ8caH0cf0gjXekCJhfvy6bf8jYr38= =WQzl -----END PGP SIGNATURE----- Merge tag 'usb-ci-v4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-linus Peter writes: It is a bug fix that using ehci_init_driver at wrong place, the correct place should be at ci core driver's module_init, and only be called one time.
This commit is contained in:
commit
a14aad05c6
@ -1024,7 +1024,18 @@ static struct platform_driver ci_hdrc_driver = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
module_platform_driver(ci_hdrc_driver);
|
static int __init ci_hdrc_platform_register(void)
|
||||||
|
{
|
||||||
|
ci_hdrc_host_driver_init();
|
||||||
|
return platform_driver_register(&ci_hdrc_driver);
|
||||||
|
}
|
||||||
|
module_init(ci_hdrc_platform_register);
|
||||||
|
|
||||||
|
static void __exit ci_hdrc_platform_unregister(void)
|
||||||
|
{
|
||||||
|
platform_driver_unregister(&ci_hdrc_driver);
|
||||||
|
}
|
||||||
|
module_exit(ci_hdrc_platform_unregister);
|
||||||
|
|
||||||
MODULE_ALIAS("platform:ci_hdrc");
|
MODULE_ALIAS("platform:ci_hdrc");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
|
@ -249,9 +249,12 @@ int ci_hdrc_host_init(struct ci_hdrc *ci)
|
|||||||
rdrv->name = "host";
|
rdrv->name = "host";
|
||||||
ci->roles[CI_ROLE_HOST] = rdrv;
|
ci->roles[CI_ROLE_HOST] = rdrv;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ci_hdrc_host_driver_init(void)
|
||||||
|
{
|
||||||
ehci_init_driver(&ci_ehci_hc_driver, &ehci_ci_overrides);
|
ehci_init_driver(&ci_ehci_hc_driver, &ehci_ci_overrides);
|
||||||
orig_bus_suspend = ci_ehci_hc_driver.bus_suspend;
|
orig_bus_suspend = ci_ehci_hc_driver.bus_suspend;
|
||||||
ci_ehci_hc_driver.bus_suspend = ci_ehci_bus_suspend;
|
ci_ehci_hc_driver.bus_suspend = ci_ehci_bus_suspend;
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
int ci_hdrc_host_init(struct ci_hdrc *ci);
|
int ci_hdrc_host_init(struct ci_hdrc *ci);
|
||||||
void ci_hdrc_host_destroy(struct ci_hdrc *ci);
|
void ci_hdrc_host_destroy(struct ci_hdrc *ci);
|
||||||
|
void ci_hdrc_host_driver_init(void);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@ -18,6 +19,11 @@ static inline void ci_hdrc_host_destroy(struct ci_hdrc *ci)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ci_hdrc_host_driver_init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __DRIVERS_USB_CHIPIDEA_HOST_H */
|
#endif /* __DRIVERS_USB_CHIPIDEA_HOST_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user