ipq806x: fix USB bug in 5.10 dtsi additions
authorRodrigo Balerdi <lanchon@gmail.com>
Sat, 9 Apr 2022 21:26:17 +0000 (18:26 -0300)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 16 Apr 2022 09:22:54 +0000 (11:22 +0200)
commit284f2c2ae0e569660effa61c9f8d0f6459a2ae19
tree450c71abefe659213f740f8fb78aaad7832a8827
parent3a4d972d43987e1ab0f697817c0f68d1a4a706dc
ipq806x: fix USB bug in 5.10 dtsi additions

The existing device tree has incorrect definitions for usb3_0 and usb3_1
and the blocks they depend upon: their addresses and interrupts are
swapped. However, their clocks and resets are not. The result is that
the USB blocks are non-functional if only one of them is enabled.

This fix backports the definitions from mainline Linux 5.15 to
OpenWrt's 5.10 dtsi additions. See the relevant mainline code here:
https://github.com/torvalds/linux/blob/v5.17/arch/arm/boot/dts/qcom-ipq8064.dtsi#L1062-L1148

This fix does not break existing ports. But some ports may have enabled
both USB blocks even thought their board only implements one, because
enabling a single USB block would not have worked before this fix.
This means that revisiting all ports of ipq806x devices that implement
a single USB port is advised. This work must be done by maintainers that
can determine which USB block corresponds to the implemented port on
their hardware.

Note that this fix swaps the names of the hardware ports. This is
unfortunate, but will happen anyway when switching to kernel 5.15. Thus,
it is best to do this ASAP, before users get to depend on port names.

It is strongly recommended that this fix is backported to 22.03 before
its release. This will minimize the number of users affected by the port
name swap.

Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
target/linux/ipq806x/patches-5.10/083-ipq8064-dtsi-additions.patch