Re: [PATCH v10 6/6] usb: dwc3: qcom: Enable the interrupts during probe

From: Steev Klimaszewski
Date: Wed Feb 16 2022 - 04:52:27 EST


Hi Sandeep,

On 2/16/22 12:27 AM, Sandeep Maheswaram wrote:
Hi Steev

On 2/16/2022 8:52 AM, Steev Klimaszewski wrote:
Hi Sandeep,

On 2/15/22 3:40 AM, Sandeep Maheswaram wrote:
Hi Steev,


Can you try with IRQ_TYPE_EDGE_BOTH in your device tree and see if you are getting the issue.

Regards

Sandeep

I just tested here, changing both of the IRQ_TYPE_LEVEL_HIGH in the yoga's dts to EDGE_BOTH and I still do not get a booting system.

-- Steev

Please let us know what devices are connected to your setup and share the device tree file you are using.

Please share the failure logs also,

Regards

Sandeep

The setup is a Lenovo Yoga C630 (Windows on ARM laptop).  I do not have any sort of serial console access to the device, unfortunately.  Even when taking it apart, it seems to have some sort of 26pin debug adapter port that I've never seen before which you can see on the far right in this picture of the motherboard at https://i.ebayimg.com/images/g/a2EAAOSwwzZiCxPM/s-l1600.jpg

I do not have anything plugged in to the USB ports (sometimes the power adapter, but I have tried both on mains as well as off.)

Which I added as a commit to my kernel tree, and pushed so you can see the full dts here: https://github.com/steev/linux/blob/c8234e664491e35e3edcd211f3b78c04436402b0/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts

I am booting with the command line arguments of

clk_ignore_unused verbose module_blacklist=msm video=efifb earlyconsole=efifb

I can't provide a boot log, because I'm not actually getting anything.  Booting a different kernel, and it doesn't appear that anything is logged at all.


-- steev

Can you try with below change

diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index 0d6286d..0a9c0f7 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -3796,8 +3796,8 @@

                        interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
+                                    <GIC_SPI 488 IRQ_TYPE_EDGE_BOTH>,
+                                    <GIC_SPI 489 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq", "ss_phy_irq",
                                          "dm_hs_phy_irq", "dp_hs_phy_irq";

@@ -3844,8 +3844,8 @@

                        interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
+                                    <GIC_SPI 490 IRQ_TYPE_EDGE_BOTH>,
+                                    <GIC_SPI 491 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "hs_phy_irq", "ss_phy_irq",
                                          "dm_hs_phy_irq", "dp_hs_phy_irq";

Regards

Sandeep

That does allow it to boot, however.... it breaks USB.

[    2.013325] genirq: Setting trigger mode 3 for irq 35 failed (gic_set_type+0x0/0x1b0)
[    2.014063] dwc3-qcom a6f8800.usb: dp_hs_phy_irq failed: -22
[    2.014134] dwc3-qcom a6f8800.usb: failed to setup IRQs, err=-22
[    2.014351] dwc3-qcom: probe of a6f8800.usb failed with error -22
[    2.018496] genirq: Setting trigger mode 3 for irq 39 failed (gic_set_type+0x0/0x1b0)
[    2.019124] dwc3-qcom a8f8800.usb: dp_hs_phy_irq failed: -22
[    2.019193] dwc3-qcom a8f8800.usb: failed to setup IRQs, err=-22
[    2.019372] dwc3-qcom: probe of a8f8800.usb failed with error -22

steev@limitless:~$ lsusb
steev@limitless:~$


-- steev