:: Re: [maemo-leste] USB PHY Initializ…
Página Principal
Delete this message
Reply to this message
Autor: Sicelo
Data:  
Para: Tony Lindgren
CC: linux-usb, linux-omap, maemo-leste, Felipe Balbi, phone-devel, Bin Liu, Rob Herring, H. Nikolaus Schaller
Assunto: Re: [maemo-leste] USB PHY Initialization Fails on Nokia N900 Since 5.19
On Tue, Oct 11, 2022 at 12:44:11PM +0200, Sicelo wrote:
> On Tue, Oct 11, 2022 at 08:39:22AM +0300, Tony Lindgren wrote:
> > To me it seems that we now somehow have a probe issue for musb depending
> > on how it gets probed depending on the following line:
> >
> > device_set_of_node_from_dev(&musb->dev, &pdev->dev);
> >
>
> Thanks for the suggestion. However, 239071064732 does not fix it for me.
> With that in place, there is no trace created automatically, but dmesg
> shows:
>
>   [    1.389648] musb-hdrc musb-hdrc.0.auto: error -ENXIO: IRQ mc not found

>
> I wonder if there is something to update on the N900 dts perhaps, in
> connection with the recent musb changes?
>


Good day

Just for further testing, I added the very ugly patch below. Applied on
vanilla 6.1-rc3 (i.e. containing 239071064732), USB works normally on
the N900.

I copied the irq numbers from omap3xxx.dtsi. Does this give us any hints
regarding the cause and resolution of this issue?

Regards
Sicelo




diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 03027c6fa3ab..440c917c0133 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2613,7 +2613,8 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
 static int musb_probe(struct platform_device *pdev)
 {
        struct device   *dev = &pdev->dev;
-       int             irq = platform_get_irq_byname(pdev, "mc");
+       //int           irq = platform_get_irq_byname(pdev, "mc");
+       int irq = 92;
        void __iomem    *base;


        if (irq <= 0)
diff --git a/drivers/usb/musb/musbhsdma.c b/drivers/usb/musb/musbhsdma.c
index 7acd1635850d..6c03a5301d01 100644
--- a/drivers/usb/musb/musbhsdma.c
+++ b/drivers/usb/musb/musbhsdma.c
@@ -416,7 +416,8 @@ musbhs_dma_controller_create(struct musb *musb, void __iomem *base)
        struct musb_dma_controller *controller;
        struct device *dev = musb->controller;
        struct platform_device *pdev = to_platform_device(dev);
-       int irq = platform_get_irq_byname(pdev, "dma");
+       //int irq = platform_get_irq_byname(pdev, "dma");
+       int irq= 93;


        if (irq <= 0) {
                dev_err(dev, "No DMA interrupt line!\n");