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 <pa...@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?

Regards,
Andre
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to