[PR] Ipq806x: kernel 5.4 bump code propose

in theory qca8k now support internal mdio bus by removing all the phy-handle settings in the dts...

But still it was not working... i think caused by that other patch...

Anyway at this stage of things openwrt is not ready to transition a target that born swconfig to dsa as we still don't have any type of conversion script.

Yeah, it should support the internal MDIO bus.
Chunkeey pushed that over a year ago to upstream.

I doubt that there will ever be a conversion script, more like a bandaid that needs to be ripped.
I see no point i having to put more and more time in swconfig drivers.

Hm, if you need delays on RGMII use rgmii-id, as far as I remember it will add internal delays to be in spec, and is supported by qca8k.
RGMII alone was never supposed to introduce any delays

Anyway tested the feature with PHY_GBIT_FEATURES
no luck... still ethtool report wrong data...

The fact that we don't have TP supported is suspicious... I think there is some problem with the init function...

Anyway stop test for me today...

@Ansuel Finally got a VR2600V so I have been playing with v5.4 on IPQ806x.
And qca8k works, but since delays need to be introduced then phy-mode needs to be changed from rgmii to rgmii-id so QCA8337 will add delays to keep within spec.
Unfortunately since it works, as soon as DHCP is fetched the dreaded dst underflow panic will kick in.

I have also tried to figure out what is wrong with ar8216 driver, but no luck.
It sets the linkmode bits, but for whatever reason they are not passed to kernel.

We should check the upstream driver how they set the linkmode and do the same with ours...

Also can you give me some hint on how you setup dsa with internal node?

Hm, we cant really replicate the qca8k setup as it does a lot more than ar8327 ever will.
Like I said, linkmode bit is set correctly, but its like the ethernet adapter ignores it later.

For DSA, take a look at this, currently works but crashes due that dst error.
That error is weirdly triggered by IPv6 somehow, which I am not using at all yet.

Are you using the patch? Why the phy-handle?

No, just upstream qca8k.
No patches for it

also did you notice that irq interrupt error?

Also also... @robimarko just now i have no kernel panic with all netfilter openwrt reverted... all works good

br-lan    Link encap:Ethernet  HWaddr D2:3A:09:94:91:C4
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::d03a:9ff:fe94:91c4/64 Scope:Link
          inet6 addr: fd63:ab0d:8c77::1/60 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2300 errors:0 dropped:0 overruns:0 frame:0
          TX packets:364 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:302615 (295.5 KiB)  TX bytes:127897 (124.8 KiB)

eth0      Link encap:Ethernet  HWaddr D2:3A:09:94:91:C4
          inet6 addr: fe80::d03a:9ff:fe94:91c4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3390 errors:0 dropped:0 overruns:0 frame:0
          TX packets:632 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:566223 (552.9 KiB)  TX bytes:187579 (183.1 KiB)
          Interrupt:31

lan1      Link encap:Ethernet  HWaddr D2:3A:09:94:91:C4
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2300 errors:0 dropped:0 overruns:0 frame:0
          TX packets:364 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:302615 (295.5 KiB)  TX bytes:127897 (124.8 KiB)

lan2      Link encap:Ethernet  HWaddr D2:3A:09:94:91:C4
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lan3      Link encap:Ethernet  HWaddr D2:3A:09:94:91:C4
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lan4      Link encap:Ethernet  HWaddr D2:3A:09:94:91:C4
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:26 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4267 (4.1 KiB)  TX bytes:4267 (4.1 KiB)

wan       Link encap:Ethernet  HWaddr D2:3A:09:94:91:C4
          inet addr:192.168.1.214  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::d03a:9ff:fe94:91c4/64 Scope:Link
          inet6 addr: 2001:b07:a9a:f857::5b9/128 Scope:Global
          inet6 addr: 2001:b07:a9a:f857:d03a:9ff:fe94:91c4/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1083 errors:0 dropped:0 overruns:0 frame:0
          TX packets:261 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:208654 (203.7 KiB)  TX bytes:57606 (56.2 KiB)

Which one, I am sure that there are multiple warnings at least.

Ok, so netfilter is the cause, good to know.

error with irq 21...

also... this is my dts... with internal mdio implementation

#include "qcom-ipq8065.dtsi"

#include <dt-bindings/input/input.h>

/ {
	model = "Netgear Nighthawk X4S R7800";
	compatible = "netgear,r7800", "qcom,ipq8065", "qcom,ipq8064";

	memory@0 {
		reg = <0x42000000 0x1e000000>;
		device_type = "memory";
	};

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;
		rsvd@41200000 {
			reg = <0x41200000 0x300000>;
			no-map;
		};

		rsvd@5fe00000 {
			reg = <0x5fe00000 0x200000>;
			reusable;
		};
	};

	aliases {
		serial0 = &gsbi4_serial;
		mdio-gpio0 = &mdio0;

		led-boot = &power_white;
		led-failsafe = &power_amber;
		led-running = &power_white;
		led-upgrade = &power_amber;
		label-mac-device = &gmac2;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	soc {
		pinmux@800000 {
			button_pins: button_pins {
				mux {
					pins = "gpio6", "gpio54", "gpio65";
					function = "gpio";
					drive-strength = <2>;
					bias-pull-up;
				};
			};

			i2c4_pins: i2c4_pinmux {
				mux {
					pins = "gpio12", "gpio13";
					function = "gsbi4";
					drive-strength = <12>;
					bias-disable;
				};
			};

			led_pins: led_pins {
				mux {
					pins = "gpio7", "gpio8", "gpio9", "gpio22", "gpio23",
						"gpio24","gpio26", "gpio53", "gpio64";
					function = "gpio";
					drive-strength = <2>;
					bias-pull-down;
				};
			};

			nand_pins: nand_pins {
				disable {
					pins = "gpio34", "gpio35", "gpio36",
					       "gpio37", "gpio38";
					function = "nand";
					drive-strength = <10>;
					bias-disable;
				};
				pullups {
					pins = "gpio39";
					function = "nand";
					drive-strength = <10>;
					bias-pull-up;
				};
				hold {
					pins = "gpio40", "gpio41", "gpio42",
					       "gpio43", "gpio44", "gpio45",
					       "gpio46", "gpio47";
					function = "nand";
					drive-strength = <10>;
					bias-bus-hold;
				};
			};

			mdio0_pins: mdio0_pins {
				mux {
					pins = "gpio0", "gpio1";
					function = "mdio";
					drive-strength = <8>;
					bias-disable;
				};

				clk {
					pins = "gpio1";
					input-disable;
				};
			};

			rgmii2_pins: rgmii2_pins {
				mux {
					pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32",
					       "gpio51", "gpio52", "gpio59", "gpio60", "gpio61", "gpio62" ;
					function = "rgmii2";
					drive-strength = <8>;
					bias-disable;
				};

				tx {
					pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32" ;
					input-disable;
				};
			};

			spi_pins: spi_pins {
				mux {
					pins = "gpio18", "gpio19", "gpio21";
					function = "gsbi5";
					bias-pull-down;
				};

				data {
					pins = "gpio18", "gpio19";
					drive-strength = <10>;
				};

				cs {
					pins = "gpio20";
					drive-strength = <10>;
					bias-pull-up;
				};

				clk {
					pins = "gpio21";
					drive-strength = <12>;
				};
			};

			spi6_pins: spi6_pins {
				mux {
					pins = "gpio55", "gpio56", "gpio58";
					function = "gsbi6";
					bias-pull-down;
				};

				mosi {
					pins = "gpio55";
					drive-strength = <12>;
				};

				miso {
					pins = "gpio56";
					drive-strength = <14>;
				};

				cs {
					pins = "gpio57";
					drive-strength = <12>;
					bias-pull-up;
				};

				clk {
					pins = "gpio58";
					drive-strength = <12>;
				};

				reset {
					pins = "gpio33";
					drive-strength = <10>;
					bias-pull-down;
					output-high;
				};
			};

			usb0_pwr_en_pins: usb0_pwr_en_pins {
				mux {
					pins = "gpio15";
					function = "gpio";
					drive-strength = <12>;
					bias-pull-down;
					output-high;
				};
			};

			usb1_pwr_en_pins: usb1_pwr_en_pins {
				mux {
					pins = "gpio16", "gpio68";
					function = "gpio";
					drive-strength = <12>;
					bias-pull-down;
					output-high;
				};
			};
		};

		gsbi@16300000 {
			qcom,mode = <GSBI_PROT_I2C_UART>;
			status = "okay";
			serial@16340000 {
				status = "okay";
			};
			/*
			 * The i2c device on gsbi4 should not be enabled.
			 * On ipq806x designs gsbi4 i2c is meant for exclusive
			 * RPM usage. Turning this on in kernel manifests as
			 * i2c failure for the RPM.
			 */
		};

		sata-phy@1b400000 {
			status = "okay";
		};

		sata@29000000 {
			ports-implemented = <0x1>;
			status = "okay";
		};

		usb3_0: usb3@110f8800 {
			status = "okay";
			
			pinctrl-0 = <&usb0_pwr_en_pins>;
			pinctrl-names = "default";
		};

		usb3_1: usb3@100f8800 {
			status = "okay";
			
			pinctrl-0 = <&usb1_pwr_en_pins>;
			pinctrl-names = "default";
		};

		pcie0: pci@1b500000 {
			status = "okay";

			bridge@0,0 {
				reg = <0x00000000 0 0 0 0>;
				#address-cells = <3>;
				#size-cells = <2>;
				ranges;

				wifi@1,0 {
					compatible = "pci168c,0046";
					reg = <0x00010000 0 0 0 0>;

					mtd-mac-address = <&art 6>;
					mtd-mac-address-increment = <(1)>;
				};
			};
		};

		pcie1: pci@1b700000 {
			status = "okay";
			force_gen1 = <1>;

			bridge@0,0 {
				reg = <0x00000000 0 0 0 0>;
				#address-cells = <3>;
				#size-cells = <2>;
				ranges;

				wifi@1,0 {
					compatible = "pci168c,0046";
					reg = <0x00010000 0 0 0 0>;

					mtd-mac-address = <&art 6>;
					mtd-mac-address-increment = <(2)>;
				};
			};
		};

		nand-controller@1ac00000 {
			status = "okay";

			pinctrl-0 = <&nand_pins>;
			pinctrl-names = "default";

			nand@0 {
				reg = <0>;
				compatible = "qcom,nandcs";

				nand-ecc-strength = <4>;
				nand-bus-width = <8>;
				nand-ecc-step-size = <512>;

				partitions {
					compatible = "fixed-partitions";
					#address-cells = <1>;
					#size-cells = <1>;

					qcadata@0 {
						label = "qcadata";
						reg = <0x0000000 0x0c80000>;
						read-only;
					};

					APPSBL@c80000 {
						label = "APPSBL";
						reg = <0x0c80000 0x0500000>;
						read-only;
					};

					APPSBLENV@1180000 {
						label = "APPSBLENV";
						reg = <0x1180000 0x0080000>;
						read-only;
					};

					art: art@1200000 {
						label = "art";
						reg = <0x1200000 0x0140000>;
						read-only;
					};

					artbak: art@1340000 {
						label = "artbak";
						reg = <0x1340000 0x0140000>;
						read-only;
					};

					kernel@1480000 {
						label = "kernel";
						reg = <0x1480000 0x0400000>;
					};

					ubi@1880000 {
						label = "ubi";
						reg = <0x1880000 0x6080000>;
					};

					reserve@7900000 {
						label = "reserve";
						reg = <0x7900000 0x0700000>;
						read-only;
					};
				};
			};
		};

		// mdio0: mdio {
		// 	compatible = "virtual,mdio-gpio";
		// 	#address-cells = <1>;
		// 	#size-cells = <0>;
		// 	gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>;
		// 	pinctrl-0 = <&mdio0_pins>;
		// 	pinctrl-names = "default";


		// 	phy0: ethernet-phy@0 {
		// 		reg = <0>;
		// 		qca,ar8327-initvals = <
		// 			0x00004 0x7600000   /* PAD0_MODE */
		// 			0x00008 0x1000000   /* PAD5_MODE */
		// 			0x0000c 0x80        /* PAD6_MODE */
		// 			0x000e4 0xaa545     /* MAC_POWER_SEL */
		// 			0x000e0 0xc74164de  /* SGMII_CTRL */
		// 			0x0007c 0x4e        /* PORT0_STATUS */
		// 			0x00094 0x4e        /* PORT6_STATUS */
		// 			0x00970 0x1e864443  /* QM_PORT0_CTRL0 */
		// 			0x00974 0x000001c6  /* QM_PORT0_CTRL1 */
		// 			0x00978 0x19008643  /* QM_PORT1_CTRL0 */
		// 			0x0097c 0x000001c6  /* QM_PORT1_CTRL1 */
		// 			0x00980 0x19008643  /* QM_PORT2_CTRL0 */
		// 			0x00984 0x000001c6  /* QM_PORT2_CTRL1 */
		// 			0x00988 0x19008643  /* QM_PORT3_CTRL0 */
		// 			0x0098c 0x000001c6  /* QM_PORT3_CTRL1 */
		// 			0x00990 0x19008643  /* QM_PORT4_CTRL0 */
		// 			0x00994 0x000001c6  /* QM_PORT4_CTRL1 */
		// 			0x00998 0x1e864443  /* QM_PORT5_CTRL0 */
		// 			0x0099c 0x000001c6  /* QM_PORT5_CTRL1 */
		// 			0x009a0 0x1e864443  /* QM_PORT6_CTRL0 */
		// 			0x009a4 0x000001c6  /* QM_PORT6_CTRL1 */
		// 			>;
		// 		qca,ar8327-vlans = <
		// 			0x1	0x5e	    /* VLAN1 Ports 1/2/3/4/6 */
		// 			0x2	0x21	    /* VLAN2 Ports 0/5 */
		// 		>;
		// 	};

		// 	phy4: ethernet-phy@4 {
		// 		reg = <4>;
		// 		qca,ar8327-initvals = <
		// 			0x000e4 0x6a545     /* MAC_POWER_SEL */
		// 			0x0000c 0x80        /* PAD6_MODE */
		// 			>;
		// 	};
		// };

		mdio0: mdio@37000000 {
               #address-cells = <1>;
               #size-cells = <0>;

               compatible = "qcom,ipq8064-mdio", "syscon";
               reg = <0x37000000 0x200000>;
               resets = <&gcc GMAC_CORE1_RESET>;
                reset-names = "stmmaceth";
               clocks = <&gcc GMAC_CORE1_CLK>;
               clock-names = "stmmaceth";

               pinctrl-0 = <&mdio0_pins>;
               pinctrl-names = "default";

            //    phy_port1: ethernet-phy@0 {
            //            reg = <0>;
            //    };

            //    phy_port2: ethernet-phy@1 {
            //            reg = <1>;
            //    };

            //    phy_port3: ethernet-phy@2 {
            //            reg = <2>;
            //    };

            //    phy_port4: ethernet-phy@3 {
            //            reg = <3>;
            //    };

            //    phy_port5: ethernet-phy@4 {
            //            reg = <4>;
            //    };

               switch@10 {
                       compatible = "qca,qca8337";
                       #address-cells = <1>;
                       #size-cells = <0>;
                       reg = <0x10>;

                       ports {
                               #address-cells = <1>;
                               #size-cells = <0>;

                               port@0 {
                                       reg = <0>;
                                       label = "cpu";
                                       ethernet = <&gmac1>;
                                       phy-mode = "rgmii-id";

                                       fixed-link {
                                               speed = <1000>;
                                               full-duplex;
                                       };
                               };

                               port@1 {
                                       reg = <1>;
                                       label = "lan1";
                                    //    phy-handle = <&phy_port1>;
                               };

                               port@2 {
                                       reg = <2>;
                                       label = "lan2";
                                    //    phy-handle = <&phy_port2>;
                               };

                               port@3 {
                                       reg = <3>;
                                       label = "lan3";
                                    //    phy-handle = <&phy_port3>;
                               };

                               port@4 {
                                       reg = <4>;
                                       label = "lan4";
                                    //    phy-handle = <&phy_port4>;
                               };

                               port@5 {
                                       reg = <5>;
                                       label = "wan";
                                    //    phy-handle = <&phy_port5>;
                               };

                               /*
                               port@6 {
                                       reg = <0>;
                                       label = "cpu";
                                       ethernet = <&gmac2>;
                                       phy-mode = "rgmii";

                                       fixed-link {
                                               speed = <1000>;
                                               full-duplex;
                                       };
                               };
                               */
                       };
               };
       };

		gmac1: ethernet@37200000 {
			status = "okay";
			phy-mode = "rgmii";
			qcom,id = <1>;
			qcom,phy_mdio_addr = <4>;
			qcom,poll_required = <0>;
			qcom,rgmii_delay = <1>;
			qcom,phy_mii_type = <0>;
			qcom,emulation = <0>;
			qcom,irq = <255>;
			mdiobus = <&mdio0>;

			pinctrl-0 = <&rgmii2_pins>;
			pinctrl-names = "default";

			mtd-mac-address = <&art 6>;

			fixed-link {
				speed = <1000>;
				full-duplex;
			};
		};

		gmac2: ethernet@37400000 {
			status = "okay";
			phy-mode = "sgmii";
			qcom,id = <2>;
			qcom,phy_mdio_addr = <0>;	/* none */
			qcom,poll_required = <0>;	/* no polling */
			qcom,rgmii_delay = <0>;
			qcom,phy_mii_type = <1>;
			qcom,emulation = <0>;
			qcom,irq = <258>;
			mdiobus = <&mdio0>;

			mtd-mac-address = <&art 0>;

			fixed-link {
				speed = <1000>;
				full-duplex;
			};
		};
	};

	keys {
		compatible = "gpio-keys";
		pinctrl-0 = <&button_pins>;
		pinctrl-names = "default";

		wifi {
			label = "wifi";
			gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_RFKILL>;
			debounce-interval = <60>;
			wakeup-source;
		};

		reset {
			label = "reset";
			gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_RESTART>;
			debounce-interval = <60>;
			wakeup-source;
		};

		wps {
			label = "wps";
			gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_WPS_BUTTON>;
			debounce-interval = <60>;
			wakeup-source;
		};
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&led_pins>;
		pinctrl-names = "default";

		power_white: power_white {
			label = "r7800:white:power";
			gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
		};

		power_amber: power_amber {
			label = "r7800:amber:power";
			gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>;
		};

		wan_white {
			label = "r7800:white:wan";
			gpios = <&qcom_pinmux 22 GPIO_ACTIVE_HIGH>;
		};

		wan_amber {
			label = "r7800:amber:wan";
			gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>;
		};

		usb1 {
			label = "r7800:white:usb1";
			gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>;
		};

		usb2 {
			label = "r7800:white:usb2";
			gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
		};

		esata {
			label = "r7800:white:esata";
			gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>;
		};

		wifi {
			label = "r7800:white:wifi";
			gpios = <&qcom_pinmux 64 GPIO_ACTIVE_HIGH>;
		};

		wps {
			label = "r7800:white:wps";
			gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>;
		};
	};
};

&adm_dma {
	status = "okay";
};

And let's have fun with find the broken patch...
20 image will be sufficent...

Hm, I dont see any IRQ error.

Ok, so I can drop all of the phy phandles

happens sometime on boot... don't know why o.o

[    3.136982] Run /init as init process

[    3.188637] init: Console is alive
[    3.188864] init: - watchdog -
[    3.203314] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.206448] irq 21, desc: a3d4ca2a, depth: 0, count: 0, unhandled: 0
[    3.209104] ->handle_irq():  01bbb7ce, msm_gpio_irq_handler+0x0/0x164
[    3.215514] ->irq_data.chip(): 9d53b990, 0xc110524c
[    3.221845] ->action(): ef625915
[    3.226542] ->action->handler(): edbe5713, bad_chained_irq+0x0/0x58
[    3.230007]      IRQ_LEVEL set
[    3.235992]    IRQ_NOPROBE set
[    3.239115]  IRQ_NOREQUEST set
[    3.242153]   IRQ_NOTHREAD set
[    3.245192] unexpected IRQ trap at vector 15
[    3.248729] irq 21, desc: a3d4ca2a, depth: 0, count: 0, unhandled: 0
[    3.252668] ->handle_irq():  01bbb7ce, msm_gpio_irq_handler+0x0/0x164
[    3.258997] ->irq_data.chip(): 9d53b990, 0xc110524c
[    3.265331] ->action(): ef625915
[    3.270020] ->action->handler(): edbe5713, bad_chained_irq+0x0/0x58
[    3.273493]      IRQ_LEVEL set
[    3.279478]    IRQ_NOPROBE set
[    3.282601]  IRQ_NOREQUEST set
[    3.285640]   IRQ_NOTHREAD set
[    3.288679] unexpected IRQ trap at vector 15
[    3.291972] irq 21, desc: a3d4ca2a, depth: 0, count: 0, unhandled: 0
[    3.296165] ->handle_irq():  01bbb7ce, msm_gpio_irq_handler+0x0/0x164
[    3.301479] SCSI subsystem initialized
[    3.302492] ->irq_data.chip(): 9d53b990, 0xc110524c
[    3.302502] ->action(): ef625915
[    3.317253] ->action->handler(): edbe5713, bad_chained_irq+0x0/0x58
[    3.320716]      IRQ_LEVEL set
[    3.326701]    IRQ_NOPROBE set
[    3.329825]  IRQ_NOREQUEST set
[    3.332862]   IRQ_NOTHREAD set
[    3.335904] unexpected IRQ trap at vector 15

Hm, that is a weird one, have not had it yet.
Also, for whatever reason the non gpio mdio driver is not working for me

you need to change mdio pins to mdio function... (now they are set to gpio)

Well, that makes perfect sense.
Sorry, its late here and it been a long day

1 Like

Had the same problem 20 minutes ago with the driver not initializing at all AHHAHA

Those are the best issues, you wonder how its not working and then realize that its good since its not meant to be working in that configuration.
Its nice to work on Linux again, I have been in U-boot land for 2 months now

Anyway... backport patches are good... No dst underflow...

And, here comes your IRQ21

[    2.231615] irq 21, desc: (ptrval), depth: 0, count: 0, unhandled: 0
[    2.233409] ->handle_irq():  (ptrval), msm_gpio_irq_handler+0x0/0x164
[    2.239813] ->irq_data.chip(): (ptrval), 0xc130524c
[    2.246147] ->action(): (ptrval)
[    2.250844] ->action->handler(): (ptrval), bad_chained_irq+0x0/0x58
[    2.254306]      IRQ_LEVEL set
[    2.260292]    IRQ_NOPROBE set
[    2.263417]  IRQ_NOREQUEST set
[    2.266455]   IRQ_NOTHREAD set
[    2.269493] unexpected IRQ trap at vector 15