|
@@ -1017,12 +1017,12 @@ static void musb_shutdown(struct platform_device *pdev)
|
|
|
|| defined(CONFIG_USB_MUSB_OMAP2PLUS_MODULE) \
|
|
|
|| defined(CONFIG_USB_MUSB_AM35X) \
|
|
|
|| defined(CONFIG_USB_MUSB_AM35X_MODULE)
|
|
|
-static ushort __initdata fifo_mode = 4;
|
|
|
+static ushort __devinitdata fifo_mode = 4;
|
|
|
#elif defined(CONFIG_USB_MUSB_UX500) \
|
|
|
|| defined(CONFIG_USB_MUSB_UX500_MODULE)
|
|
|
-static ushort __initdata fifo_mode = 5;
|
|
|
+static ushort __devinitdata fifo_mode = 5;
|
|
|
#else
|
|
|
-static ushort __initdata fifo_mode = 2;
|
|
|
+static ushort __devinitdata fifo_mode = 2;
|
|
|
#endif
|
|
|
|
|
|
/* "modprobe ... fifo_mode=1" etc */
|
|
@@ -1035,7 +1035,7 @@ MODULE_PARM_DESC(fifo_mode, "initial endpoint configuration");
|
|
|
*/
|
|
|
|
|
|
/* mode 0 - fits in 2KB */
|
|
|
-static struct musb_fifo_cfg __initdata mode_0_cfg[] = {
|
|
|
+static struct musb_fifo_cfg __devinitdata mode_0_cfg[] = {
|
|
|
{ .hw_ep_num = 1, .style = FIFO_TX, .maxpacket = 512, },
|
|
|
{ .hw_ep_num = 1, .style = FIFO_RX, .maxpacket = 512, },
|
|
|
{ .hw_ep_num = 2, .style = FIFO_RXTX, .maxpacket = 512, },
|
|
@@ -1044,7 +1044,7 @@ static struct musb_fifo_cfg __initdata mode_0_cfg[] = {
|
|
|
};
|
|
|
|
|
|
/* mode 1 - fits in 4KB */
|
|
|
-static struct musb_fifo_cfg __initdata mode_1_cfg[] = {
|
|
|
+static struct musb_fifo_cfg __devinitdata mode_1_cfg[] = {
|
|
|
{ .hw_ep_num = 1, .style = FIFO_TX, .maxpacket = 512, .mode = BUF_DOUBLE, },
|
|
|
{ .hw_ep_num = 1, .style = FIFO_RX, .maxpacket = 512, .mode = BUF_DOUBLE, },
|
|
|
{ .hw_ep_num = 2, .style = FIFO_RXTX, .maxpacket = 512, .mode = BUF_DOUBLE, },
|
|
@@ -1053,7 +1053,7 @@ static struct musb_fifo_cfg __initdata mode_1_cfg[] = {
|
|
|
};
|
|
|
|
|
|
/* mode 2 - fits in 4KB */
|
|
|
-static struct musb_fifo_cfg __initdata mode_2_cfg[] = {
|
|
|
+static struct musb_fifo_cfg __devinitdata mode_2_cfg[] = {
|
|
|
{ .hw_ep_num = 1, .style = FIFO_TX, .maxpacket = 512, },
|
|
|
{ .hw_ep_num = 1, .style = FIFO_RX, .maxpacket = 512, },
|
|
|
{ .hw_ep_num = 2, .style = FIFO_TX, .maxpacket = 512, },
|
|
@@ -1063,7 +1063,7 @@ static struct musb_fifo_cfg __initdata mode_2_cfg[] = {
|
|
|
};
|
|
|
|
|
|
/* mode 3 - fits in 4KB */
|
|
|
-static struct musb_fifo_cfg __initdata mode_3_cfg[] = {
|
|
|
+static struct musb_fifo_cfg __devinitdata mode_3_cfg[] = {
|
|
|
{ .hw_ep_num = 1, .style = FIFO_TX, .maxpacket = 512, .mode = BUF_DOUBLE, },
|
|
|
{ .hw_ep_num = 1, .style = FIFO_RX, .maxpacket = 512, .mode = BUF_DOUBLE, },
|
|
|
{ .hw_ep_num = 2, .style = FIFO_TX, .maxpacket = 512, },
|
|
@@ -1073,7 +1073,7 @@ static struct musb_fifo_cfg __initdata mode_3_cfg[] = {
|
|
|
};
|
|
|
|
|
|
/* mode 4 - fits in 16KB */
|
|
|
-static struct musb_fifo_cfg __initdata mode_4_cfg[] = {
|
|
|
+static struct musb_fifo_cfg __devinitdata mode_4_cfg[] = {
|
|
|
{ .hw_ep_num = 1, .style = FIFO_TX, .maxpacket = 512, },
|
|
|
{ .hw_ep_num = 1, .style = FIFO_RX, .maxpacket = 512, },
|
|
|
{ .hw_ep_num = 2, .style = FIFO_TX, .maxpacket = 512, },
|
|
@@ -1104,7 +1104,7 @@ static struct musb_fifo_cfg __initdata mode_4_cfg[] = {
|
|
|
};
|
|
|
|
|
|
/* mode 5 - fits in 8KB */
|
|
|
-static struct musb_fifo_cfg __initdata mode_5_cfg[] = {
|
|
|
+static struct musb_fifo_cfg __devinitdata mode_5_cfg[] = {
|
|
|
{ .hw_ep_num = 1, .style = FIFO_TX, .maxpacket = 512, },
|
|
|
{ .hw_ep_num = 1, .style = FIFO_RX, .maxpacket = 512, },
|
|
|
{ .hw_ep_num = 2, .style = FIFO_TX, .maxpacket = 512, },
|
|
@@ -1140,7 +1140,7 @@ static struct musb_fifo_cfg __initdata mode_5_cfg[] = {
|
|
|
*
|
|
|
* returns negative errno or offset for next fifo.
|
|
|
*/
|
|
|
-static int __init
|
|
|
+static int __devinit
|
|
|
fifo_setup(struct musb *musb, struct musb_hw_ep *hw_ep,
|
|
|
const struct musb_fifo_cfg *cfg, u16 offset)
|
|
|
{
|
|
@@ -1211,11 +1211,11 @@ fifo_setup(struct musb *musb, struct musb_hw_ep *hw_ep,
|
|
|
return offset + (maxpacket << ((c_size & MUSB_FIFOSZ_DPB) ? 1 : 0));
|
|
|
}
|
|
|
|
|
|
-static struct musb_fifo_cfg __initdata ep0_cfg = {
|
|
|
+static struct musb_fifo_cfg __devinitdata ep0_cfg = {
|
|
|
.style = FIFO_RXTX, .maxpacket = 64,
|
|
|
};
|
|
|
|
|
|
-static int __init ep_config_from_table(struct musb *musb)
|
|
|
+static int __devinit ep_config_from_table(struct musb *musb)
|
|
|
{
|
|
|
const struct musb_fifo_cfg *cfg;
|
|
|
unsigned i, n;
|
|
@@ -1306,7 +1306,7 @@ done:
|
|
|
* ep_config_from_hw - when MUSB_C_DYNFIFO_DEF is false
|
|
|
* @param musb the controller
|
|
|
*/
|
|
|
-static int __init ep_config_from_hw(struct musb *musb)
|
|
|
+static int __devinit ep_config_from_hw(struct musb *musb)
|
|
|
{
|
|
|
u8 epnum = 0;
|
|
|
struct musb_hw_ep *hw_ep;
|
|
@@ -1353,7 +1353,7 @@ enum { MUSB_CONTROLLER_MHDRC, MUSB_CONTROLLER_HDRC, };
|
|
|
/* Initialize MUSB (M)HDRC part of the USB hardware subsystem;
|
|
|
* configure endpoints, or take their config from silicon
|
|
|
*/
|
|
|
-static int __init musb_core_init(u16 musb_type, struct musb *musb)
|
|
|
+static int __devinit musb_core_init(u16 musb_type, struct musb *musb)
|
|
|
{
|
|
|
u8 reg;
|
|
|
char *type;
|
|
@@ -1589,7 +1589,7 @@ irqreturn_t musb_interrupt(struct musb *musb)
|
|
|
EXPORT_SYMBOL_GPL(musb_interrupt);
|
|
|
|
|
|
#ifndef CONFIG_MUSB_PIO_ONLY
|
|
|
-static bool __initdata use_dma = 1;
|
|
|
+static bool __devinitdata use_dma = 1;
|
|
|
|
|
|
/* "modprobe ... use_dma=0" etc */
|
|
|
module_param(use_dma, bool, 0);
|
|
@@ -1777,7 +1777,7 @@ static void musb_irq_work(struct work_struct *data)
|
|
|
* Init support
|
|
|
*/
|
|
|
|
|
|
-static struct musb *__init
|
|
|
+static struct musb *__devinit
|
|
|
allocate_instance(struct device *dev,
|
|
|
struct musb_hdrc_config *config, void __iomem *mbase)
|
|
|
{
|
|
@@ -1853,7 +1853,7 @@ static void musb_free(struct musb *musb)
|
|
|
* @mregs: virtual address of controller registers,
|
|
|
* not yet corrected for platform-specific offsets
|
|
|
*/
|
|
|
-static int __init
|
|
|
+static int __devinit
|
|
|
musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
|
|
|
{
|
|
|
int status;
|
|
@@ -2073,7 +2073,7 @@ fail0:
|
|
|
static u64 *orig_dma_mask;
|
|
|
#endif
|
|
|
|
|
|
-static int __init musb_probe(struct platform_device *pdev)
|
|
|
+static int __devinit musb_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
struct device *dev = &pdev->dev;
|
|
|
int irq = platform_get_irq_byname(pdev, "mc");
|
|
@@ -2102,7 +2102,7 @@ static int __init musb_probe(struct platform_device *pdev)
|
|
|
return status;
|
|
|
}
|
|
|
|
|
|
-static int __exit musb_remove(struct platform_device *pdev)
|
|
|
+static int __devexit musb_remove(struct platform_device *pdev)
|
|
|
{
|
|
|
struct musb *musb = dev_to_musb(&pdev->dev);
|
|
|
void __iomem *ctrl_base = musb->ctrl_base;
|
|
@@ -2112,11 +2112,9 @@ static int __exit musb_remove(struct platform_device *pdev)
|
|
|
* - Peripheral mode: peripheral is deactivated (or never-activated)
|
|
|
* - OTG mode: both roles are deactivated (or never-activated)
|
|
|
*/
|
|
|
- pm_runtime_get_sync(musb->controller);
|
|
|
musb_exit_debugfs(musb);
|
|
|
musb_shutdown(pdev);
|
|
|
|
|
|
- pm_runtime_put(musb->controller);
|
|
|
musb_free(musb);
|
|
|
iounmap(ctrl_base);
|
|
|
device_init_wakeup(&pdev->dev, 0);
|
|
@@ -2364,7 +2362,8 @@ static struct platform_driver musb_driver = {
|
|
|
.owner = THIS_MODULE,
|
|
|
.pm = MUSB_DEV_PM_OPS,
|
|
|
},
|
|
|
- .remove = __exit_p(musb_remove),
|
|
|
+ .probe = musb_probe,
|
|
|
+ .remove = __devexit_p(musb_remove),
|
|
|
.shutdown = musb_shutdown,
|
|
|
};
|
|
|
|
|
@@ -2380,13 +2379,9 @@ static int __init musb_init(void)
|
|
|
", "
|
|
|
"otg (peripheral+host)",
|
|
|
musb_driver_name);
|
|
|
- return platform_driver_probe(&musb_driver, musb_probe);
|
|
|
+ return platform_driver_register(&musb_driver);
|
|
|
}
|
|
|
-
|
|
|
-/* make us init after usbcore and i2c (transceivers, regulators, etc)
|
|
|
- * and before usb gadget and host-side drivers start to register
|
|
|
- */
|
|
|
-fs_initcall(musb_init);
|
|
|
+module_init(musb_init);
|
|
|
|
|
|
static void __exit musb_cleanup(void)
|
|
|
{
|