On 07/18/2012 03:39 PM, Richard Zhao wrote: > [snip] >>>> static struct ci13xxx_platform_data ci13xxx_imx_platdata __devinitdata = { >>>> .name = "ci13xxx_imx", >>>> .flags = CI13XXX_REQUIRE_TRANSCEIVER | >>>> @@ -120,6 +140,9 @@ static int __devinit ci13xxx_imx_probe(struct platform_device *pdev) >>>> *pdev->dev.dma_mask = DMA_BIT_MASK(32); >>>> dma_set_coherent_mask(&pdev->dev, *pdev->dev.dma_mask); >>>> } >>>> + >>>> + usbmisc_ops->init(&pdev->dev); >>> >>> usbmisc_ops can be NULL and also can return an error. >> Yes. And I find it can not work when usbmisc is module. > It's hard to resolve module dependency. How about build all imx related > things into a single module? ci13xxx_imx module init will call > usbmisc_imx6q_drv_init, usbmisc_imx53_drv_init etc. Why not call a single imx_usbmisc_init. The usbmisc can call the correct function inside. The right init function can be selected via the compatible in the device tree. Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
Attachment:
signature.asc
Description: OpenPGP digital signature