Update kernel configs, fix MAC handling, and improve drivers#155
Open
manupawickramasinghe wants to merge 98 commits into
Open
Update kernel configs, fix MAC handling, and improve drivers#155manupawickramasinghe wants to merge 98 commits into
manupawickramasinghe wants to merge 98 commits into
Conversation
Upstream netdev maintainers disregard both variable declarations mid-function and usage of __free() for auto-cleanup [1]. To avoid any pain when trying to upstream the PCS driver at some point, adjust that now before forgetting it. [1] https://www.kernel.org/doc/html/next/process/maintainer-netdev.html#using-device-managed-and-cleanup-h-constructs Link: #23694 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Update the qca8k fixed link patch to v2 that is pending upstream. Signed-off-by: Robert Marko <robimarko@gmail.com>
The Extreme Networks AP3935's LAN1 port (gmac0/RGMII to AR8035 at MDIO addr 1) fails to acquire a link if no Ethernet cable is connected at power-on; the port stays dead even after a cable is later inserted, and only a network restart recovers it. The AR803x family enables hibernation mode by default, this setting overrides it. Signed-off-by: Grische <github@grische.xyz> Link: #23208 Signed-off-by: Robert Marko <robimarko@gmail.com>
Improve some descriptions so that they make the purpose of the particular firmware package clearer to the user (e.g. as viewed in verbose package listings). Signed-off-by: Tim Small <tim@seoss.co.uk> Link: #23688 Signed-off-by: Robert Marko <robimarko@gmail.com>
Two ignored return values in mtd_write_buffer() caused silent failures: - lseek() return value was ignored. A failed seek (e.g. EBADF, ESPIPE) followed by write() would silently write at the wrong offset. - write() return value was ignored, silently discarding write errors. This could lead to data corruption on the MTD device without any indication. Check both return values, report errors to stderr and return -1 on failure. Signed-off-by: Anna Kiri <bredcorn@gmail.com> Link: #23552 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
After malloc(erasesize) in mtd_check(), the result was never checked for NULL. On allocation failure, the buf pointer remained NULL and would later be used in image_check() via read(imagefd, buf + buflen, ...), causing a NULL pointer dereference. Add a NULL check after the allocation and return early. The early return path also closes the just-opened fd and frees the strdup'd colon-separated device-list copy to avoid leaks. Signed-off-by: Anna Kiri <bredcorn@gmail.com> Link: #23705 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Two leaks in mtd_dump(): - The buffer allocated with malloc(erasesize) is never freed before returning, leaking erasesize bytes on every call. - The pre-existing malloc-NULL early return path also leaked the just- opened fd by returning directly instead of going through cleanup. Initialize buf to NULL, route the malloc-NULL case through the existing 'out:' label, and add free(buf) on the cleanup path so both fd and buf are released consistently on every exit. Signed-off-by: Anna Kiri <bredcorn@gmail.com> Link: #23706 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
f227ab4f1285 uclient: fix memory leak of url when backend alloc fails 645236607a3d uclient: free proxy_url in uclient_free 53d2d11fb00d uclient-http: fix NULL deref when digest WWW-Authenticate lacks params 0ba1b8718be5 ucode: check calloc return in uc_uclient_new 5cb19466d076 uclient-fetch: reset redirect counter per request 568c447950c1 uclient-fetch: retry short writes and surface errors 4c4a61a69ac3 uclient-fetch: use strtoull to parse Content-Length 440ca260622d uclient-http: validate Content-Length and chunk sizes from the server 8658324bd234 uclient: cast to unsigned char before ctype classifications bf403fa0f8e5 uclient-fetch: reject CR in --header values ec47f4176b1e uclient-fetch: always allocate auth_str and free it on exit 391dacd10d31 uclient-http: fail digest auth when the cnonce cannot be randomized ba1f4311b099 ucode: clamp read length to the size of the static buffer 0ba47f319b09 uclient-fetch: advance to the next URL between requests 9dd0055d527d uclient: initialize *port for unknown address families f816506651d5 uclient-http: start digest nonce count at 1 9b9b2da40835 uclient-http: fix 2-byte buffer undercount in digest add_field 80fb1e5ee68b ucode: avoid double-free of SSL context on ssl_init error d44fb561bbcf ucode: don't clear an unrelated registry slot on free 02562403d2a3 uclient-fetch: close the output file before fetching the next URL 4a63561d0012 uclient-http: initialize fd to -1 so a failed connect can't close stdin 428ae8342118 uclient: cancel pending timers in uclient_free() ffd8db308289 uclient-fetch: guard SSL debug setup against a missing SSL context 9f4db039a263 ucode: release callback argument references d2af92b0aad9 uclient-http: resolve redirects against the proxy target URL 5dddda023267 uclient-utils: avoid out-of-bounds pointer in get_url_filename 8507588e7ce7 uclient-http: use the proxy target URL for HTTP authentication 322c89c6ca0a uclient-http: retry 401 auth for all body-less request methods db3bb00ddda7 uclient-http: accept unquoted digest auth parameter values 5ce9983b2a11 uclient-http: follow 303 and 308 redirects 070c868486dc uclient-fetch: finalize request on invalid 206 Content-Range 83659a5a9bc1 uclient-fetch: concatenate multiple URLs into a single -O file 43bed2753998 ucode: don't leak string references in status()/get_headers() 03b17e4fc793 uclient-fetch: attach credentials to the proxy target, not the proxy 74c07b12f7ab uclient-fetch: don't run the progress meter in spider mode daad21fa2c17 uclient-fetch: handle init_request failure on the 204 resume retry Link: #23693 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This is an automatically generated commit. When doing `git bisect`, consider `git bisect --skip`. Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: #22989 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
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: Thomas Richard <thomas.richard@bootlin.com> Link: #22989 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Drop upstreamed patches and refresh remaining ones. Manually rebased: - 700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: #22989 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Patch 700-net-stmmac-dwmac-stm32-add-support-of-phy-supply-pro.patch introduces phy-supply support in dwmac-stm32 driver. But the phy_power_on() function always returns 0 even if it failed to drive the regulator. So fix phy_power_on() to return an error if something wrong happened. Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: #22989 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Update stm32mp1 kernel config for 6.18. Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: #22989 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
The stm32 target now supports 6.18 kernel as testing. Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: #22989 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
The COMMON_CLK_STM32MP215 option is for clock support on MP215 platforms, and PINCTRL_STM32_HDP is for Hardware Debug Port pin control. They can be safely removed. Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: #22989 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
This adds STM32 OCTO and QUAD SPI controller support. Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: #22989 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
This adds STM32 Camera Serial Interface (CSI) support. Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: #22989 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
This adds STM32 Octo Memory Manager support. Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: #22989 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Create kernel package for the AD7405 ADC driver. Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: #22989 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
This commit adds support for the Sirivision SR-ST3408F,
an 8-port 10G switch with 4x RJ45 ports and 4x SFP ports.
SoC: Realtek RTL9303
RAM: 512 MiB DDR3
Flash: SPI-NOR 16 MiB (Winbond)
Ethernet: 4x RJ45 via RTL8261BE PHY (10G/5G/2.5G/1G/100M/10M)
4x SFP+
LEDs: 1x power, 1x system green
2x RJ45 LEDs/port (link/act, 10G)
1x SFP+ LED/port (link/act)
Button: Reset
Console: Cisco-style RJ45, 115200 8n1
Fan: 4040 12V fan (hardwired)
Power: 12V 3A internal PSU
OpenWrt installation
---------------------
1. Attach to serial console using a Cisco cable, 115200 8n1
2. Power on the switch and rapidly press Esc to interrupt U-Boot
3. Initialize the RJ45 ports by running `rtk network on`
4. Serve the initramfs-kernel.bin image on TFTP, IP 192.168.1.111
5. Use any RJ45 port to connect to your TFTP server
6. Run `tftpboot 0x81000000 initramfs-kernel.bin; bootm`
7. Use `mtd dump` or `dd` to backup the original firmware at `mtd5` first
8. Run sysupgrade to flash sysupgrade.bin into the switch and reboot
Restoring original firmware
-----------------------------
Vendor does not provide firmware images, so you should have made a backup.
Use `mtd write` to restore your backed up copy into the `mtd5` partition.
MAC Address
------------
All interfaces are assigned the same MAC address, from the U-Boot env
`ethaddr`. This MAC address is also printed on the device label.
Signed-off-by: Darell Tan <darell.tan@gmail.com>
Link: #23686
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Currently, MDIO driver will print the probe defferal as error. So, instead of spaming the log, backport the upstream fix for it. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Lets restart the numbering from 0 as most of the patches were upstreamed. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Selection of Sparx5 hwmon driver for LAN969x was upstreamed, so use that instead of the downstream patch. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
NVMEM OTP support was upstreamed, so backport those patches instead of our downstream ones. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Refresh the kernel config. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
It appears 683-of_net-add-mac-address-to-of-tree.patch relies on the mac-address nvmem property being present. These nodes don't need it as they take it from the eeprom but label-mac-device needs it. Signed-off-by: Rosen Penev <rosenp@gmail.com> Link: #14666 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Convert the last remaining userspace eeprom for ath9k to nvmem. Well, easily converted at least. wifi MAC has to be handled in userspace as the kernel nvram driver works on memory mapped addresses, not mtd ones. Signed-off-by: Rosen Penev <rosenp@gmail.com> Link: #14666 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Even though 3.8 is quite old, it's still used by Ubuntu 20.04 LTS. Bump the version to get some extra features. Signed-off-by: Rosen Penev <rosenp@gmail.com> Link: #23521 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
of_device.h was used only for of_match_device. That is no longer used in most places so we can drop the extra header. Signed-off-by: Rosen Penev <rosenp@gmail.com> Link: #23071 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Original ar71xx has this setup:
define WNDAP360_WMAC0_MAC_OFFSET 0x120c
define WNDAP360_WMAC1_MAC_OFFSET 0x520c
/* Reusing wifi MAC with offset of 1 as eth0 MAC */
ath79_init_mac(ath79_eth0_data.mac_addr,
art + WNDAP360_WMAC0_MAC_OFFSET, 1);
ap94_pci_init(art + WNDAP360_CALDATA0_OFFSET,
art + WNDAP360_WMAC0_MAC_OFFSET,
art + WNDAP360_CALDATA1_OFFSET,
art + WNDAP360_WMAC1_MAC_OFFSET);
The ath79 port made a questionable change for eth0 being just art with
no offset. That MAC ends up being the OUI for Atheros.
WNDAP360_WMAC1_MAC_OFFSET is the same as WNDAP360_WMAC0_MAC_OFFSET
except with the first hex value being subtracted by 2, which is not a
valid OUI.
And newer Netgear firmware seems to assign differently as well,
art_120C as a base and the others incremented by 0x8.
Switch the assignment to the latest firmware and add label-mac-device to
document that the first Wi-FI MAC address is printed on the device.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: #22895
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Another round of MDIO driver patches was accepted upstream. Not production relevant as OpenWrt still uses the downstream driver. Link: #23768 Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Enable trailing whitespace trimming, insert final newline, and force LF. Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com> Link: #23750 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.93 Manually rebased patch: - bcm27xx/patches-6.12/950-0755-drm-v3d-CPU-job-submissions-shouldn-t-affect-V3D-GPU.patch[1] All other patches are automatically refreshed. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.93&id=acd55ea40d03e06f20a9986363019e0e5173990e Signed-off-by: Shiji Yang <yangshiji66@outlook.com> Link: #23730 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
OpenWrt has recently added the "network" LED trigger to support routers that have a single WLAN LED for multiple phys. This patch replaces the temporary workaround used during initial support, where the LED was triggered only by activity on a single phy. With this change, the WLAN LED on the ipTIME AX3000SE now correctly indicates activity on both `phy0` and `phy1`. Signed-off-by: Donghyun Ko <nyankosoftware@gmail.com> Link: #23723 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
In previous versions of OpenWrt, ethernet was partially working, sometimes depending on initialization state left by bootloader. Since the switch to NSS drivers, it is completely broken. - swap GMAC to PHY address mapping - use rgmii internal delay - drop `fixed-link` rates - add pinctrl settings for rgmii0 - declare reset GPIO 51 (used for both PHYs) - disable hibernation Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net> Link: #23740 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
In recent versions of OpenWrt, only 2.4G wifi is working. Drop upstream overrides for pcie nodes to declare perst-gpios 3 and 48. Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net> Link: #23740 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
The board contains a TI TMP75 temperature sensor located near the ethernet PHYs, attached to the thermal mass of the back case, close to main SoC. Configure `gsbi2` for i2c mode and include `kmod-hwmon-lm75` package. Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net> Link: #23740 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
drop usb3_0 node, enable usb3_1 PHYs, set gpio58 for power enable Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net> Link: #23740 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
fixes #23745 upstream had bug bb_got_signal to be never cleared in noninteractive session, this fixes this while waiting for upstream merge. the patch iself is written by Ian Cooper <iancooper@hotmail.com> Signed-off-by: Seo Suchan <tjtncks@gmail.com> Link: #23787 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
slhc does not depends on CRC_CCITT according to kernel Kconfig. Signed-off-by: Qingfang Deng <dqfext@gmail.com> Link: #23464 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Remove kmod-crypto-arc4 and kmod-crypto-ecb from depends, as it no longer uses skcipher API for encryption. Remove the non-existent CONFIG_PPP_MPPE_MPPC symbol. Signed-off-by: Qingfang Deng <dqfext@gmail.com> Link: #23464 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Enable nmbm bad block management with up to 8 MiB reserved. The manufacturer's stock device tree contains the property `compatible = "generic,nmbm";` in node `nmbm_spim_nand` and manufacturer's stock bootlog contains "nmbm nmbm_spim_nand: NMBM has been successfully attached" Fixes: 1748ce8 ("mediatek: add support for WAVLINK WL-WN536AX6 Rev a") Signed-off-by: Ryan Leung <untilscour@protonmail.com> Link: #23682 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Change SPI drive strength to 4mA to match Mediatek SDK and prevent potential signal overshoot. Signed-off-by: Ryan Leung <untilscour@protonmail.com> Link: #23682 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
…esses Currently the WAN MAC address is read from the first (LAN) MAC address in the "HW" partition and then incremented by 1 instead of being read directly from the second MAC address. Change to reading the two MAC addresses (LAN/WAN) directly from "Factory" partition. Fixes: 1748ce8 ("mediatek: add support for WAVLINK WL-WN536AX6 Rev a") Signed-off-by: Ryan Leung <untilscour@protonmail.com> Link: #23682 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
The second WLAN MAC address in the "Factory" partition at 0x0a is not the same as the WLAN 5GHz BSSID observed when using the manufacturer's stock firmware, which is derived from the 2.4GHz/label MAC address by setting bits 26 and 7 (Locally Administered). While at it, also fix alphabetical ordering of some other device names. Fixes: 1748ce8 ("mediatek: add support for WAVLINK WL-WN536AX6 Rev a") Signed-off-by: Ryan Leung <untilscour@protonmail.com> Link: #23682 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Add config for WAVLINK WL-WN536AX6 Rev a to be able to read and write U-Boot environment variables. Signed-off-by: Ryan Leung <untilscour@protonmail.com> Link: #23682 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Currently the "WiFi" LED indicator light is triggered only by activity on the 5 GHz PHY. Change it to be triggered by WLAN activity on either Wi-Fi PHY, matching stock behaviour, by using `kmod-ledtrig-network` added in 2aa1185 ('leds: add "network" LED trigger (lan/wan/wlan)'). Signed-off-by: Ryan Leung <untilscour@protonmail.com> Link: #23682 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Remove old UCI default for WLAN LED trigger on `phy1` which is now instead triggered by either wireless PHY by kmod-ledtrig-network Fixes: adb7ff2 ("mediatek: wavlink wl-wn536ax6 rev a: add "network" LED trigger") Signed-off-by: Ryan Leung <untilscour@protonmail.com> Link: #23790 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
In RTL930x setup, tx config was called at then end of the procedure after configuration and calibration ran. This is still a leftover from the old code located in DSA/PHY. However, applying TX configuration like amplification factors, etc. doesn't make sense after calibration, it should run before. Moreover the call was commented with "leave loopback mode" which is just wrong and doesn't describe what the function does. Fix this misery. Testing on device with different interface modes shows no difference so far, especially no negative effects. Link: #23759 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Some variants need finalization that must run only after the SerDes is powered up: RTL838X performs a one-shot switch queue reset on first start, RTL930X runs RX calibration and the TX config. So far this lived at the tail of the variant setup_serdes() functions. Add an optional post_config hook to rtpcs_sds_ops and call it from rtpcs_pcs_config() right after setup_serdes(), then relocate the RTL838X and RTL930X tail work into it. As activate() still runs at the end of setup_serdes() here, the execution order is unchanged. Link: #23759 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Add the mandatory activate/deactivate bring-up hooks to rtpcs_sds_ops and let rtpcs_pcs_config() drive the full sequence around the variant configuration: deactivate -> setup_serdes -> activate -> post_config The per-variant calls that were open-coded at the start and end of the setup_serdes() functions are removed in favour of these indirections. RTL839X never powered the SerDes down/up, so it gets no-op stubs to satisfy the contract for now. Execution order is preserved for all variants. Link: #23759 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Make use of scoped_guard macro to ease lock and error handling in
pcs_config by having a dedicated scope and no need for gotos.
While being here, replace -ENOTSUPP with preferred -EOPNOTSUPP and drop
{ } brackets for single statement block.
Link: #23759
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
The watchdog and the temperature/fan hwmon are the same management MCU at a single I2C address (0x6f). Linux binds one driver per I2C client, so the watchdog cannot keep owning the address directly if the hwmon is to live on the same chip. Convert it from a standalone i2c_driver into a platform_driver child of the hasivo MCU MFD that reaches the chip through the parent's shared regmap (syscon), and depend on kmod-mfd-hasivo-stc8. Signed-off-by: Carlo Szelinsky <github@szelinsky.de> Link: #23762 Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Add a temperature/fan sensor (hwmon) driver for the Hasivo / Horaco management MCU as a second child of the hasivo MCU MFD (alongside the watchdog). It exposes the CPU and system temperatures and a 3-state fan control (auto / force-on / force-off), read/written through the parent's shared syscon regmap. The register protocol was reverse-engineered from the stock 'imi' firmware and verified on hardware. The fan-status register (0xFB) reflects the MCU's effective drive state, not actual rotation (a blocked fan still reads force-on), so no fanN_alarm is exposed. pwm1 echoes the commanded state so a write reads back consistently, and falls back to the live drive state in automatic mode. The register map is shared across boards. Signed-off-by: Carlo Szelinsky <github@szelinsky.de> Link: #23762 Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Thanks for your contribution to OpenWrt!
To help keep the codebase consistent and readable,
and to help people review your contribution,
we ask you to follow the rules you find in the wiki at this link
https://openwrt.org/submitting-patches
Please remove this message before posting the pull request.