Re: [maemo-leste] USB PHY Initialization Fails on Nokia N900 Since 5.19

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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");






[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux