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

From: Sandeep Maheswaram
Date: Wed Feb 16 2022 - 01:28:40 EST


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.)

I am using this diff


diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
index eab3f00c603235..c54042b9e21df2 100644
--- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
+++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
@@ -370,7 +370,7 @@
         reg = <0x15>;
         hid-descr-addr = <0x1>;

-        interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
+        interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_BOTH>;
     };

     tsc2: hid@2c {
@@ -378,7 +378,7 @@
         reg = <0x2c>;
         hid-descr-addr = <0x20>;

-        interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
+        interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_BOTH>;
     };
 };

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