After upgrading a Yocto build system from kernel 5.4 to 5.15, I found KSZ8794 switch operation was no longer functional. I got errors such as: Aug 1 22:23:17 tv999996 kern.err kernel: [ 10.770912] ksz8795-switch spi2.0: Unsupported interface: gmii, port: 0 Aug 1 22:23:17 tv999996 kern.warn kernel: [ 10.777562] ksz8795-switch spi2.0 wan (uninitialized): validation of gmii with support 0000000,00000000,000062cf and advertisement 0000000,00000000,000062cf failed: -22 Aug 1 22:23:17 tv999996 kern.err kernel: [ 10.792874] ksz8795-switch spi2.0 wan (uninitialized): failed to connect to PHY: -EINVAL Aug 1 22:23:17 tv999996 kern.err kernel: [ 10.800978] ksz8795-switch spi2.0 wan (uninitialized): error -22 setting up PHY for tree 0, switch 0, port 0 Aug 1 22:23:17 tv999996 kern.err kernel: [ 10.829188] ksz8795-switch spi2.0: Unsupported interface: gmii, port: 1 Aug 1 22:23:17 tv999996 kern.warn kernel: [ 10.835821] ksz8795-switch spi2.0 lan2 (uninitialized): validation of gmii with support 0000000,00000000,000062cf and advertisement 0000000,00000000,000062cf failed: -22 Aug 1 22:23:17 tv999996 kern.err kernel: [ 10.851156] ksz8795-switch spi2.0 lan2 (uninitialized): failed to connect to PHY: -EINVAL Aug 1 22:23:17 tv999996 kern.err kernel: [ 10.859358] ksz8795-switch spi2.0 lan2 (uninitialized): error -22 setting up PHY for tree 0, switch 0, port 1 Aug 1 22:23:17 tv999996 kern.err kernel: [ 10.892821] ksz8795-switch spi2.0: Unsupported interface: gmii, port: 2 Aug 1 22:23:17 tv999996 kern.warn kernel: [ 10.899466] ksz8795-switch spi2.0 lan1 (uninitialized): validation of gmii with support 0000000,00000000,000062cf and advertisement 0000000,00000000,000062cf failed: -22 Aug 1 22:23:17 tv999996 kern.err kernel: [ 10.914845] ksz8795-switch spi2.0 lan1 (uninitialized): failed to connect to PHY: -EINVAL Aug 1 22:23:17 tv999996 kern.err kernel: [ 10.923052] ksz8795-switch spi2.0 lan1 (uninitialized): error -22 setting up PHY for tree 0, switch 0, port 2 I found that if I reverted commit 2c709e0bdad4d996ec8925b9ee6d5b97458708f1, "net: dsa: microchip: ksz8795: add phylink support", then it worked properly again. The errors I saw were due to the checks in ksz8_validate() that were added in the above commit.
Created attachment 301595 [details] keep compatibility with device tree blobs with no phy-mode
Hi Craig, I've attached a patch formatted against linux-5.15.y. Can you please confirm that it fixes the problem? The code has changed in the current "net" git tree, so if this works, I'll need to submit a different patch for the current trees, and take care of backporting separately.