On Fri, Jan 31, 2014 at 12:15:26PM -0600, Felipe Balbi wrote: > 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@xxxxxxxxxxxx> > > > --- > > > 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 ? This silly move doesn't trigger the sdhci ENOMEM: diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi index b021c96..f739b80 100644 --- a/arch/arm/boot/dts/bcm2835.dtsi +++ b/arch/arm/boot/dts/bcm2835.dtsi @@ -100,6 +100,12 @@ status = "disabled"; }; + usb { + compatible = "brcm,bcm2835-usb"; + reg = <0x7e980000 0x10000>; + interrupts = <1 9>; + }; + sdhci: sdhci { compatible = "brcm,bcm2835-sdhci"; reg = <0x7e300000 0x100>; @@ -107,12 +113,6 @@ clocks = <&clk_mmc>; status = "disabled"; }; - - usb { - compatible = "brcm,bcm2835-usb"; - reg = <0x7e980000 0x10000>; - interrupts = <1 9>; - }; }; clocks { Maybe there's some kind of race, or something even messing at the .dtb at runtime? Regards, Andre _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel