The fsl_mxc_udc driver was originally developed as a part of a DENX project, adding Marek to CC to have them check internally what their preferences and requirements might be.
Thanks Guennadi
On Fri, 11 Jun 2021, Leo Li wrote:
-----Original Message----- From: Arnd Bergmann arnd@arndb.de Sent: Friday, June 11, 2021 10:43 AM To: Fabio Estevam festevam@gmail.com Cc: gregkh gregkh@linuxfoundation.org; Felipe Balbi balbi@kernel.org; Joel Stanley joel@jms.id.au; Leo Li leoyang.li@nxp.com; kbuild test robot lkp@intel.com; Peter Chen peter.chen@nxp.com; Ran Wang ran.wang_1@nxp.com; Stephen Rothwell sfr@canb.auug.org.au; Shawn Guo shawnguo@kernel.org; # 3.4.x stable@vger.kernel.org; Guennadi Liakhovetski g.liakhovetski@gmx.de Subject: Re: patch "Revert "usb: gadget: fsl: Re-enable driver for ARM SoCs"" added to usb-linus
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.
I can provide a patch for this.
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.
It is also used on many legacy FSL PowerPC SoCs. I agree with the direction, but it does require some effort to make sure it works on all these legacy platforms. I think Ran Wang had tried to do that, but not completed due to bandwidth issue.
Either way, it would be good to test the changes on at least one of these two platforms.
Arnd