On Fri, Jun 11, 2021 at 4:51 PM Fabio Estevam festevam@gmail.com wrote:
On Fri, Jun 11, 2021 at 5:30 AM Arnd Bergmann arnd@arndb.de wrote:
Adding Fabio and Guennadi to Cc.
I can see that the missing symbols were in a driver that got removed in commit a390bef7db1f ("usb: gadget: fsl_mxc_udc: Remove the driver").
If CONFIG_ARCH_MXC is disabled, these are stubbed out in the header file. These were added a long time ago by Guennadi Liakhovetski 54e4026b64a9 ("USB: gadget: Add i.MX3x support to the fsl_usb2_udc driver"). I also see that this patch added a few #ifdef CONFIG_ARCH_MXC checks to the driver that still remain today. This is clearly broken as it must be possible to use the same driver module on both SOC_LS1021A and i.MX using a runtime check.
I also don't see any i.MX variant actually using this driver, but instead see the dts files declaring fsl,imx27-usb devices, which bind to the drivers/usb/chipidea/ci_hdrc_imx.c driver. Is this one of those cases where we have two separate drivers for the same hardware, or is this for a different device?
Exactly. The USB IP on several i.MX devices comes from ChipIdea.
Prior to using devicetree, we had the fsl_mxc_udc driver to handle the gadget side.
Since i.MX has been converted to a DT-only platform, we no longer need fsl_mxc_udc, as drivers/usb/chipidea is used nowadays.
Ok, good, so the simples solution I suppose is to remove the remaining bits that Guennadi added when he wrote the removed driver in 54e4026b64a9, and then re-apply Joel's patch.
Alternatively, it might be possible change the chipidea driver to work on ls1021a and ls1012a, assuming that they use the same hardware block as i.MX.
Either way, it would be good to test the changes on at least one of these two platforms.
Arnd