-
-
Notifications
You must be signed in to change notification settings - Fork 9.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lantiq: add 6.1 testing support #15233
Conversation
Are some of these changes applicable to VRX518 DSL driver? |
You can port this change to the ltq-vdsl-vr11-mei driver or maybe find a cleaner solution: 392b84a |
368a7a2
to
a02f4b3
Compare
@PolynomialDivision What can I do to get this PR accepted? |
|
Did you send some of the kernel patches upstream? |
WiFi does not work on the AVM 7320 with the new kernel. The image is exactly the same. Only the kernel version differs. In the next step, I plan to do tests on the BT Home Hub5A and see if WiFi on the PCI bus works there. |
wifi and vdsl2 work on bt-hh5a i have tested. |
Do you mean the gswip patches? No, I didn't so far, but I also would like to have this changes upstream in the kernel. |
Is the PCI bus working with linux 6.1? What's the output of |
Ah, I overlooked the output of lspci at the top of your log. Well, then there seems to be a problem in the PCI bus driver. |
Could you please show me the output of |
Also interesting that the wifi works on the bt-hh5a. According to dts, there is also an ath9k connected via PCI. |
A freshly installed image without keeping the configuration:
|
@sch-m please send the fixes upstream and backport the patch send upstream. It would be nice even for the patches you keep downstream to write a complete patch header. That makes it easier to directly know what a patch is about in the future. We have also now a kernel bumper script. You could also use that to preserve history. Otherwise I think the changes are fine. Thanks a lot for your work. |
@abajk Maybe we have a problem with this change in 6.1: This reversed the active-low/high logic of the reset GPIO, didn't it? |
Reverting this change fixes the wifi on the router. I wonder why pci works on some devices and how we can identify them. EDIT: Maybe the reset gpio for some devices are incorrectly described in dts. |
According to the specification, PCI RST# is an active low signal. However, in all the related DTS the reset-gpio is defined as active high and the driver has reversed the logic internally up to linux 6.0. So in my opinion it would actually be correct to change the gpio to active low in the DTS files. |
a02f4b3
to
7b4f9c0
Compare
During the upgrade, a trace log also appears:
It was not present on the 5.15 kernel. |
tested with the new "dts Invert" commit on bt-hh5a both ath9k and ath10k wireless are working |
Well, I think the remaining problem is that the new code in the lantiq-pci driver initializes the GPIO in LOW state (independently of the ACTIVE-LOW/HIGH flag in the dts), whereas the former driver code has set it to HIGH state. So maybe the best would be to keep the dts files unchanged and patch the driver once again to restore the old behavior but use the newer gpiod API. |
This is an automatically generated commit which aids following Kernel patch history, as git will see the move and copy as a rename thus defeating the purpose. For the original discussion see: https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html Signed-off-by: Martin Schiller <ms@dev.tdt.de>
Add KERNEL_TESTING_PATCHVER for Linux 6.1. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
Make all the patches apply and delete the ones already integrated into upstream Linux kernel. This also refreshes some of the kernel configurations. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> [refreshed for linux 6.1.89] Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This makes the components used on the lantiq SoCs compile with kernel 6.1. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> [also fix ifxmips_ptm_adsl.c] Signed-off-by: Martin Schiller <ms@dev.tdt.de>
If the reverted timer driver fails to allocate interrupts handle the error better. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> [moved printk before the cleanup for-loop] Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This backports some patches for the gswip switch driver. I copied them from this repository: https://github.com/xdarklight/linux/commits/lantiq-gswip-integration-20221022 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> [drop some patches which may break functionality at the moment] Signed-off-by: Martin Schiller <ms@dev.tdt.de>
Use dev_err_probe() to get rid of the following warning which is seen when the PCIe PHY has not been probed yet: pcie-xrx200 1d900000.pcie: failed to get the PCIe PHY Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This adds the missing interrupts to the pcie node. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This is required for linux-6.1 compatibility. IRQs are not automatically mapped from HW to virtual IRQ numbers when the IRQ domain is registered. This happens when the IRQ number is read from the device tree based on the IRQ domain from the device tree now. In kernel 5.15 it was done when the IRQ domain was registered. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This is required for linux-6.1 compatibility. IRQs are not automatically mapped from HW to virtual IRQ numbers when the IRQ domain is registered. This happens when the IRQ number is read from the device tree based on the IRQ domain from the device tree now. In kernel 5.15 it was done when the IRQ domain was registered. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
We need to use unsafe_memcpy() here, because the code do the field- spanning write intentionally. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This is required for linux-6.1 compatibility. IRQs are not automatically mapped from HW to virtual IRQ numbers when the IRQ domain is registered. This happens when the IRQ number is read from the device tree based on the IRQ domain from the device tree now. In kernel 5.15 it was done when the IRQ domain was registered. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This is required for linux-6.1 compatibility. IRQs are not automatically mapped from HW to virtual IRQ numbers when the IRQ domain is registered. This happens when the IRQ number is read from the device tree based on the IRQ domain from the device tree now. In kernel 5.15 it was done when the IRQ domain was registered. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This fixes the write beyond size of field compile warning/error. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This is required for linux-6.1 compatibility. IRQs are not automatically mapped from HW to virtual IRQ numbers when the IRQ domain is registered. This happens when the IRQ number is read from the device tree based on the IRQ domain from the device tree now. In kernel 5.15 it was done when the IRQ domain was registered. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
Let's get the IRQs from the kernel-in-tree vmmc driver like it is already done for the cp1 base addr. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This adds to missing DyingGasp and USB OC interrupts to the mei node. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This is required for linux-6.1 compatibility. IRQs are not automatically mapped from HW to virtual IRQ numbers when the IRQ domain is registered. This happens when the IRQ number is read from the device tree based on the IRQ domain from the device tree now. In kernel 5.15 it was done when the IRQ domain was registered. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
Linux kernel commit 90c2d2eb7ab5 ("MIPS: pci: lantiq: switch to using gpiod API") not only switched to the gpiod API, but also inverted / changed the polarity of the GPIO. According to the PCI specification, the RST# pin is an active-low signal. However, most of the device trees that have been widely used for a long time (mainly in the openWrt project) define this GPIO as active-high and the old driver code inverted the signal internally. Apparently there are actually boards where the reset gpio must be operated inverted. For this reason, we cannot use the GPIOD_OUT_LOW/HIGH flag for initialization. Instead, we must explicitly set the gpio to value 1 in order to take into account any "GPIO_ACTIVE_LOW" flag that may have been set. In order to remain compatible with all these existing device trees, we should therefore keep the logic as it was before the commit. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
7806b25
to
cffd3ad
Compare
@sch-m Thanks a lot! Merged. Can you maybe proceed with 6.6 support? :) |
I'm already on it. |
@sch-m: Good job! |
Any update on this, or was this patch lost? I'd be nice to fix this warning for both vr9 and vr11 at the same time |
Since this patch set was only lantiq related, I only patched the ltq-vdsl-vr9-mei package. But I can also create a PR for ltq-vdsl-vr11-mei. |
@PolynomialDivision This is the continuation of #13046.
What I've done in addition to @hauke's work: