[PATCH v4] Move DWC2 driver out of staging

Felipe Balbi balbi at ti.com
Fri Jan 31 18:15:26 UTC 2014


Hi,

On Fri, Jan 31, 2014 at 07:12:36PM +0100, Andre Heider wrote:
> Hi,
> 
> On Mon, Jan 13, 2014 at 01:50:09PM -0800, Paul Zimmerman wrote:
> > The DWC2 driver should now be in good enough shape to move out of
> > staging. I have stress tested it overnight on RPI running mass
> > storage and Ethernet transfers in parallel, and for several days
> > on our proprietary PCI-based platform.
> > 
> > Signed-off-by: Paul Zimmerman <paulz at synopsys.com>
> > ---
> > v4: Also change directory path in MAINTAINERS
> > 
> > Greg,
> > I believe I have addressed all of the feedback since I last
> > submitted this. Is there still time to do this before you
> > close your trees?
> > 
> >  MAINTAINERS                               |  2 +-
> >  drivers/staging/Kconfig                   |  2 --
> >  drivers/staging/Makefile                  |  1 -
> >  drivers/staging/dwc2/TODO                 | 33 -------------------------------
> >  drivers/usb/Kconfig                       |  2 ++
> >  drivers/usb/Makefile                      |  1 +
> >  drivers/{staging => usb}/dwc2/Kconfig     |  0
> >  drivers/{staging => usb}/dwc2/Makefile    |  0
> >  drivers/{staging => usb}/dwc2/core.c      |  0
> >  drivers/{staging => usb}/dwc2/core.h      |  0
> >  drivers/{staging => usb}/dwc2/core_intr.c |  0
> >  drivers/{staging => usb}/dwc2/hcd.c       |  0
> >  drivers/{staging => usb}/dwc2/hcd.h       |  0
> >  drivers/{staging => usb}/dwc2/hcd_ddma.c  |  0
> >  drivers/{staging => usb}/dwc2/hcd_intr.c  |  0
> >  drivers/{staging => usb}/dwc2/hcd_queue.c |  0
> >  drivers/{staging => usb}/dwc2/hw.h        |  0
> >  drivers/{staging => usb}/dwc2/pci.c       |  0
> >  drivers/{staging => usb}/dwc2/platform.c  |  0
> >  19 files changed, 4 insertions(+), 37 deletions(-)
> >  delete mode 100644 drivers/staging/dwc2/TODO
> >  rename drivers/{staging => usb}/dwc2/Kconfig (100%)
> >  rename drivers/{staging => usb}/dwc2/Makefile (100%)
> >  rename drivers/{staging => usb}/dwc2/core.c (100%)
> >  rename drivers/{staging => usb}/dwc2/core.h (100%)
> >  rename drivers/{staging => usb}/dwc2/core_intr.c (100%)
> >  rename drivers/{staging => usb}/dwc2/hcd.c (100%)
> >  rename drivers/{staging => usb}/dwc2/hcd.h (100%)
> >  rename drivers/{staging => usb}/dwc2/hcd_ddma.c (100%)
> >  rename drivers/{staging => usb}/dwc2/hcd_intr.c (100%)
> >  rename drivers/{staging => usb}/dwc2/hcd_queue.c (100%)
> >  rename drivers/{staging => usb}/dwc2/hw.h (100%)
> >  rename drivers/{staging => usb}/dwc2/pci.c (100%)
> >  rename drivers/{staging => usb}/dwc2/platform.c (100%)
> 
> this looks just fine, but for whatever reason it breaks sdhci on my rpi.
> With today's Linus' master the dwc2 controller seems to initialize fine,
> but I get this upon boot:
> 
> [    1.783316] sdhci-bcm2835 20300000.sdhci: sdhci_pltfm_init failed -12
> [    1.794820] sdhci-bcm2835: probe of 20300000.sdhci failed with error -12
> 
> That is:
> 
> 		struct sdhci_host *sdhci_pltfm_init(struct platform_device *pdev,
> 							const struct sdhci_pltfm_data *pdata,
> 							size_t priv_size)
> 		{
> 			...
> 
> 			iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> 			if (!iomem) {
> 				ret = -ENOMEM;
> 				goto err;
> 			}
> 
> 			...
> 
> So far it's 100% reproducible. No further infos since my root device
> went away.  Same behavior with bcm2835_defconfig.
> 
> Bisecting points to this commit, and if I move this driver back to
> staging (revert 197ba5f406cc) usb and sdhci are both working properly.
> 
> Without the revert, this patch on top...
> 
> diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
> index d01d0d3..eaba547 100644
> --- a/drivers/usb/dwc2/platform.c
> +++ b/drivers/usb/dwc2/platform.c
> @@ -124,6 +124,9 @@ static int dwc2_driver_probe(struct platform_device *dev)
>  	int retval;
>  	int irq;
>  
> +	if (usb_disabled())
> +		return -ENODEV;
> +
>  	match = of_match_device(dwc2_of_match_table, &dev->dev);
>  	if (match && match->data) {
>  		params = match->data;
> 
> ...and "nousb" in the cmdline (with crashes without the patch), sdhci works
> again. I don't see any obvious clues, any idea what's going on?

wait, what ? How can a driver rename cause sdhci to die ? Your error is
because you don't have that resource as part of your platform_device.

-ECONFUSED. Have you really bisected it down to Paul's patch ?

-- 
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/attachments/20140131/87b9621e/attachment.asc>


More information about the devel mailing list