aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/patches-5.4
Commit message (Collapse)AuthorAgeFilesLines
* kernel: bump 5.4 to 5.4.80John Audia2020-11-261-1/+1
| | | | | | | | | | | | | | | | | Removed since could be reverse-applied by quilt and found to be included upstream: backport-5.4/789-net-usb-qmi_wwan-Set-DTR-quirk-for-MR400.patch All modifications made by update_kernel.sh Build system: x86_64 Build-tested: ipq806x/R7800, bcm27xx/bcm2711, ath79/generic Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Curtis Deptuck <curtdept@me.com> [x86_64 build/run]
* kernel: bump 5.4 to 5.4.77John Audia2020-11-187-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | Manually rebased patches: bcm27xx/patches-5.4/950-0135-spi-spi-bcm2835-Disable-forced-software-CS.patch generic-backport/744-v5.5-net-sfp-soft-status-and-control-support.patch layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch mvebu/patches-5.4/521-arm64-dts-marvell-espressobin-Add-ethernet-switch-al.patch Removed: layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch All modifications made by update_kernel.sh Build system: x86_64 Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711, lantiq/Easybox 904 xDSL, x86_64 Run-tested: ipq806x/R7800, lantiq/Easybox 904 xDSL, x86_64 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Co-developed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mediatek: fix mixed indent in DTS filesAdrian Schmutzler2020-11-162-26/+26
| | | | | | | | | mediatek frequently had mixed indent (tabs vs. spaces) in DTS files and DTS file kernel patches (probably due to careless copy/paste). The harmonizes these cases to tabs-only, as usual for DTS(I). Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: remove default-state off for LEDsAdrian Schmutzler2020-11-162-7/+2
| | | | | | | | | default-state = "off" is default for LEDs, no need to specify it explicitly. https://www.kernel.org/doc/Documentation/devicetree/bindings/leds/common.yaml Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 5.4 to 5.4.75John Audia2020-11-101-23/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Manually rebased patches: bcm27xx: patches-5.4/950-0267-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch bcm53xx: patches-5.4/180-usb-xhci-add-support-for-performing-fake-doorbell.patch layerscape: patches-5.4/802-can-0025-can-flexcan-add-LPSR-mode-support-for-i.MX7D.patch patches-5.4/808-i2c-0002-MLK-10893-i2c-imx-add-irqf_no_suspend.patch patches-5.4/820-usb-0016-MLK-16735-usb-host-add-XHCI_CDNS_HOST-flag.patch Removed since could be reverse-applied by quilt: mediatek: patches-5.4/0700-arm-dts-mt7623-add-missing-pause-for-switchport.patch All modifications made by update_kernel.sh Build system: x86_64 Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711, x86_64 Run-tested: ipq806x/R7800, x86_64 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-by: Curtis Deptuck <curtdept@me.com> [x86_64] Rebase of 802-can-0025-can-flexcan-add-LPSR-mode-support-for-i.MX7D.patch Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
* kernel: bump 5.4 to 5.4.73John Audia2020-11-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed upstreamed patches: generic/pending-5.4 445-mtd-spinand-gigadevice-Only-one-dummy-byte-in-QUA.patch 446-mtd-spinand-gigadevice-Add-QE-Bit.patch pistachio/patches-5.4 150-pwm-img-Fix-null-pointer-access-in-probe.patch Manually rebased: layerscape/patches-5.4 801-audio-0011-Revert-ASoC-fsl_sai-add-of_match-data.patch 801-audio-0039-MLK-16224-6-ASoC-fsl_sai-fix-DSD-suspend-resume.patch 801-audio-0073-MLK-21957-3-ASoC-fsl_sai-add-bitcount-and-timestamp-.patch 820-usb-0009-usb-dwc3-Add-workaround-for-host-mode-VBUS-glitch-wh.patch All modifications made by update_kernel.sh Build system: x86_64 Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711, mvebu (mamba, rango), x86_64, ramips/mt7621 Run-tested: ipq806x/R7800, mvebu (mamba, rango), x86_64, ramips (RT-AC57U) No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> [alter 820-usb-0009-usb-dwc3-Add-workaround-for-host-mode-VBUS-glitch-wh] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 5.4 to 5.4.72John Audia2020-10-201-5/+5
| | | | | | | | | | | | All modifications made by update_kernel.sh Build system: x86_64 Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711 Run-tested: ipq806x/R7800 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us>
* mediatek: rewrite flow offload codeFelix Fietkau2020-10-163-1244/+12
| | | | | | | | | The code is now much cleaner and works better than the old code. Preparation for submitting it upstream (though with a different API) Also add back MT7621 support and fix flow table coherence issues on MT7622 Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: bump 5.4 to 5.4.71John Audia2020-10-151-1/+1
| | | | | | | | | | | | | | | All modifications made by update_kernel.sh Build system: x86_64 Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711, lantiq/Easybox 904 xDSL Run-tested: ipq806x/R7800, lantiq/Easybox 904 xDSL No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> [add lantiq test reports] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 5.4 to 5.4.69John Audia2020-10-022-2/+2
| | | | | | | | | | | | | | | | | | | | | | Seemingly unneeded based on new upstream code so manually deleted: layerscape: 820-usb-0007-usb-dwc3-gadget-increase-timeout-value-for-send-ep-c.patch Manually merged: generic-hack: 251-sound_kconfig.patch All other modifications made by update_kernel.sh Build system: x86_64 Build-tested: ipq806x/R7800, ath79/generic, bcm27xx/bcm2711 Run-tested: ipq806x/R7800, lantiq/Easybox 904 xDSL No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> [add lantiq test report, minor commit message clarification] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 5.4 to 5.4.67John Audia2020-09-242-6/+2
| | | | | | | | | | | | | | All modifications made by update_kernel.sh Build system: x86_64 Build-tested: ipq806x, lantiq/xrx200 and ath79/generic Run-tested: ipq806x (R7800), lantiq (Easybox 904 xDSL) No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> [add test on lantiq] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mediatek: fix missing pause on switch port for Banana Pi R2David Woodhouse2020-09-191-0/+27
| | | | | | This causes rx drops when running iperf. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* kernel: bump 5.4 to 5.4.66John Audia2020-09-191-1/+1
| | | | | | | | | | | | All modifications made by update_kernel.sh/no manual intervention needed Run-tested: ipq806x (R7800), ath79 (Archer C7v5), x86/64 No dmesg regressions, everything appears functional Signed-off-by: John Audia <graysky@archlinux.us> [add run test from PR] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mediatek: fix hardware flow offloadFelix Fietkau2020-09-171-1/+17
| | | | | | Add support for dealing with DSA ports Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ramips/mediatek: improve GRO performance, fix PPE packet parsingFelix Fietkau2020-09-133-108/+16
| | | | | | | | Backport upstream changes to initialize GDM settings and reset PPE Allow GMAC to recognize the special tag to fix PPE packet parsing Improve GRO performance by passing PPE L4 hash as skb hash Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: bump 5.4 to 5.4.64John Audia2020-09-127-18/+18
| | | | | | | | | | | | | | | | | | | | | | Remove upstreamed patches: generic-backport 701-v5.5-net-core-use-listified-Rx-for-GRO_NORMAL-in-napi_gro.patch Manually merged: mediatek/patches-5.4 0603-net-dsa-mt7530-Extend-device-data-ready-for-adding-a.patch All other modifications made by update_kernel.sh Build-tested: ipq806x, lantiq/xrx200, mvebu, x86/64 Run-tested: ipq806x (R7800), mvebu (mamba, rango), lantiq/xrx200 (Easybox 904 xDSL), x86/64 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> [add community build/run tests to commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mediatek/ramips: remove an ethernet optimization patch that was reported to ↵Felix Fietkau2020-09-093-13/+13
| | | | | | | | cause a regression In some tests, crashes were observed Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mediatek: backport the latest version of the mt7531 support patchesFelix Fietkau2020-09-0911-1952/+2573
| | | | | | Fixes unknown unicast flooding issue Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: bump 5.4 to 5.4.63John Audia2020-09-063-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Manually merged: hack-5.4 230-openwrt_lzma_options.patch bcm27xx 950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch x86 011-tune_lzma_options.patch Remove upstreamed patches in collaboration with Ansuel Smith: ipq806x 093-1-v5.8-ipq806x-PCI-qcom-Add-missing-ipq806x-clocks-in-PCIe-driver.patch 093-2-v5.8-ipq806x-PCI-qcom-Change-duplicate-PCI-reset-to-phy-reset.patch 093-3-v5.8-ipq806x-PCI-qcom-Add-missing-reset-for-ipq806x.patch All other modifications made by update_kernel.sh Build-tested: bcm27xx/bcm2708, ipq806x, x86/64 Run-tested: ipq806x (R7800), x86/64 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> [update commit message/tested] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mediatek: enable coherent DMA for ethernet and PCIFelix Fietkau2020-09-042-0/+191
| | | | | | Improves performance by eliminating the need for extra cache flushes Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mediatek: fix an irq handling issueFelix Fietkau2020-09-041-0/+24
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mediatek/ramips: add patch to avoid unnecessary rearming of interruptsFelix Fietkau2020-09-042-10/+10
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mediatek/ramips: unify ethernet driver fixes and add performance optimizationsFelix Fietkau2020-09-016-164/+21
| | | | | | Increase DMA burst size and tx ring size and optimize tx processing Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mediatek: pull in some fixes fromt he latest SDKJohn Crispin2020-09-013-0/+109
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* kernel: bump 5.4 to 5.4.61John Audia2020-08-301-1/+1
| | | | | | | | | | | | | | | | | | | Manually merged: backport-5.4 011-kbuild-export-SUBARCH.patch layerscape 701-net-0262-net-dsa-ocelot-add-tagger-for-Ocelot-Felix-switches.patch All other modifications made by update_kernel.sh Build-tested: x86/64, lantiq/xrx200, ramips/mt7621 Run-tested: ipq806x (R7800), lantiq/xrx200, x86/64, ramips (RT-AC57U) No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> [minor commit message adjustments] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 5.4 to 5.4.58John Audia2020-08-187-82/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR is a blend of several kernel bumps authored by ldir taken from his staging tree w/ some further adjustments made by me and update_kernel.sh Summary: Deleted upstreamed patches: generic: 742-v5.5-net-sfp-add-support-for-module-quirks.patch 743-v5.5-net-sfp-add-some-quirks-for-GPON-modules.patch bcm63xx: 022-v5.8-mtd-rawnand-brcmnand-correctly-verify-erased-pages.patch 024-v5.8-mtd-rawnand-brcmnand-fix-CS0-layout.patch mediatek: 0402-net-ethernet-mtk_eth_soc-Always-call-mtk_gmac0_rgmii.patch Deleted patches applied differently upstream: generic: 641-sch_cake-fix-IP-protocol-handling-in-the-presence-of.patch Manually merged patches: generic: 395-v5.8-net-sch_cake-Take-advantage-of-skb-hash-where-appropriate.patch bcm27xx: 950-0132-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch layerscape: 701-net-0231-enetc-Use-DT-protocol-information-to-set-up-the-port.patch Build system: x86_64 Build-tested: ath79/generic, bcm27xx/bcm2708, bcm27xx/bcm2711, imx6, mvebu/cortexa9, sunxi/a53 Run-tested: Netgear R7800 (ipq806x) No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> Tested-By: Lucian Cristian <Lucian.cristian@gmail.com> [mvebu] Tested-By: Curtis Deptuck <curtdept@me.com> [x86/64] [do not remove 395-v5.8-net-sch_cake-Take-advantage-... patch, adjust and refresh patches, adjust commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Tested-By: John Audia <graysky@archlinux.us> [ipq806x]
* mediatek: fix mt7622-rfb1 board supportFelix Fietkau2020-08-065-60/+64
| | | | | | | Make GPIO keys active-low. Add DSA support Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mediatek: mt7623: fix Ethernet setup for TRGMII modeDavid Woodhouse2020-07-261-0/+62
| | | | | | This fixes the TX performance issues seen on MT7623 boards. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* mediatek: fix Ethernet support on UniElec U7623David Woodhouse2020-07-261-10/+4
| | | | | | | The definition of the switch in the device-tree was not correct. Make it look more like the Banana Pi R2, which works. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* mediatek: mt7623: fix sysupgrade from vendor OpenWrt on UniElec U7623David Woodhouse2020-07-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This board ships with an ancient 14.07-based OpenWrt using block2mtd, and the MBR partition table contains nonsense. It is possible to sysupgrade to an upstream OpenWrt image, but the legacy layout of the OpenWrt images start at 0xA00 in the eMMC, with a raw uImage. The legacy OpenWrt image doesn't "own" the beginning of the device, including the MBR and U-Boot. This means that when a user upgrades to upstream OpenWrt, it doesn't boot because it can't find the right partitions. So hard-code them on the kernel's command line using CONFIG_CMDLINE_PARTITION (for block). Additionally, the vendor firmware doesn't cope with images larger than about 36MiB, because it only overwrites the contents of its "firmware" MTD partition. The current layout of the legacy image wastes a lot of space, allowing over 32MiB for the kernel and another 10MiB for the FAT recovery file system which is only created as 3MiB. So pull those in to allow 4¾ MiB for the kernel, 3MiB for recovery, and then we have over 20MiB for the root file system. This doesn't affect the new images which ship with a full eMMC image including a different MBR layout and a partition for U-Boot, because our modern U-Boot can actually pass the command line to the kernel, and the built-in one doesn't get used anyway. Tested by upgrading from vendor OpenWrt to the current legacy image, from legacy to itself, to the previous legacy layout, and then to finally the full-system image. This commit probably wants backporting to 19.07, which also doesn't install over the vendor OpenWrt and doesn't even have a full-system installation option. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* mediatek: mt7623: add explicit console= to U7623 kernelDavid Woodhouse2020-07-261-1/+1
| | | | | | | The bootloader for legacy builds can't set it, so we end up unable to log in on the serial port. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* kernel: bump 5.4 to 5.4.52John Audia2020-07-174-33/+16
| | | | | | | | | update_kernel.sh refreshed all patches, no human interaction was needed Build system: x86_64 Run-tested: Netgear R7800 (ipq806x) Signed-off-by: John Audia <graysky@archlinux.us>
* mediatek: backport latest pci/e driver from upstreamJohn Crispin2020-07-164-0/+1269
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* mediatek: minor fix to eip97 driverJohn Crispin2020-07-161-2/+2
| | | | | | This patch makes the driver work on the newer v2.3 core. Signed-off-by: John Crispin <john@phrozen.org>
* mediatek: re-add u3phy2 phy-switch patchSungbo Eo2020-07-091-0/+66
| | | | | | | | | This patch is required for pcie@2,0 in mt7623 to work. The patch was originally added in kernel 4.14, but it has not been ported to 4.19 and later. Fixes: FS#3217 Tested-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* kernel: Update kernel 5.4 to version 5.4.50Hauke Mehrtens2020-07-041-1/+1
| | | | | | | Run tested: ath79, ipq40xx Build tested: ath79, ipq40xx Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: bump 5.4 to 5.4.45Petr Štetiar2020-06-097-336/+320
| | | | | | | | | | | | | | | | | | | Fixes CVE-2020-10757 via upstream commit df4988aa1c96 ("mm: Fix mremap not considering huge pmd devmap"). Resolved merge conflict in the following patches: bcm27xx: 950-0128-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch Refreshed patches, removed upstreamed patch: generic: 751-v5.8-net-dsa-mt7530-set-CPU-port-to-fallback-mode.patch generic: 754-v5.7-net-dsa-mt7530-fix-roaming-from-DSA-user-ports.patch Run tested: qemu-x86-64 Build tested: x86/64, imx6, sunxi/a53 Signed-off-by: Petr Štetiar <ynezz@true.cz>
* mediatek: add mt7531 DSA supportJohn Crispin2020-06-075-0/+1968
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* mediatek: switch over to extended upstream eip97 driverJohn Crispin2020-06-073-0/+5514
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* kernel: bump 5.4 to 5.4.39Petr Štetiar2020-05-073-22/+19
| | | | | | | | | Refreshed patches. Run tested: qemu-x86-64 Build tested: x86/64, imx6, sunxi/a53, layerscape/armv7+armv8_64b Signed-off-by: Petr Štetiar <ynezz@true.cz>
* mediatek: update patchesJohn Crispin2020-05-043-19/+125
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* mediatek: fix compile error caused by upstreamed mtk_m32 functionYong-hyu, Ban2020-04-271-23/+17
| | | | | | | | | | | | | | | | | | | | This fixes following compile error: ``` CC drivers/net/ethernet/mediatek/mtk_eth_soc.o drivers/net/ethernet/mediatek/mtk_eth_soc.c:70:5: error: conflicting types for 'mtk_m32' u32 mtk_m32(struct mtk_eth *eth, u32 mask, u32 set, unsigned reg) ^~~~~~~ In file included from drivers/net/ethernet/mediatek/mtk_eth_soc.c:25: drivers/net/ethernet/mediatek/mtk_eth_soc.h:964:6: note: previous declaration of 'mtk_m32' was here void mtk_m32(struct mtk_eth *eth, u32 clear, u32 set, unsigned reg); ^~~~~~~ ``` which caused by 5.4.34 mainlining of mtk_m32 function. Fixes: faf668be354a ("kernel: bump 5.4 to 5.4.34") Signed-off-by: Yong-hyu, Ban <perillamint@quendi.moe>
* kernel: bump 5.4 to 5.4.34Petr Štetiar2020-04-213-18/+18
| | | | | | | | | Refreshed patches. Run tested: qemu-x86-64, apalis, a64-olinuxino Build tested: x86/64, imx6, sunxi/a53 Signed-off-by: Petr Štetiar <ynezz@true.cz>
* kernel: bump 5.4 to 5.4.31Petr Štetiar2020-04-0911-77/+52
| | | | | | | | | | | | | Refreshed patches, removed upstreamed patches: oxnas: 003-ARM-dts-oxnas-Fix-clear-mask-property.patch generic: 184-USB-serial-option-add-Wistron-Neweb-D19Q1.patch Run tested: apu2, qemu-x86-64, apalis Build tested: sunxi/a53, imx6, x86/64, ipq40xx Tested-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> [apu2] Signed-off-by: Petr Štetiar <ynezz@true.cz>
* mediatek: add hw flow table offloadingJohn Crispin2020-04-061-0/+1251
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* mediatek: add support for rtl8367cJohn Crispin2020-04-061-0/+27
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* mediatek: more v5.4 fixesJohn Crispin2020-04-064-13/+118
| | | | | | These are all backports and/or on their way upstream. Signed-off-by: John Crispin <john@phrozen.org>
* mediatek: more v5.4 mtd fixesJohn Crispin2020-03-276-0/+1643
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* mediatek: mt7629: fix firmware partitionChuanhong Guo2020-03-211-0/+13
| | | | | | | rename "kernel" partition in upstream dts to "firmware" and add denx,fit as compatible string for mtdsplit. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* mediatek: backport spi-mem based mtk spinor driverChuanhong Guo2020-03-212-0/+799
| | | | | | | This new driver has full quadspi and DMA support, providing way better reading performance. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>