diff options
author | John Audia <graysky@archlinux.us> | 2020-11-11 15:30:36 -0500 |
---|---|---|
committer | Adrian Schmutzler <freifunk@adrianschmutzler.de> | 2020-11-18 21:13:46 +0100 |
commit | 667f6c7f49c94213ca43a42ad5a9e23abfd81861 (patch) | |
tree | a16e6cc807cda32e1dfbaef1a0de486d5ba1166c /target | |
parent | 79f3f1358bf993a5d7ae14eba9cea2686b40841d (diff) | |
download | upstream-667f6c7f49c94213ca43a42ad5a9e23abfd81861.tar.gz upstream-667f6c7f49c94213ca43a42ad5a9e23abfd81861.tar.bz2 upstream-667f6c7f49c94213ca43a42ad5a9e23abfd81861.zip |
kernel: bump 5.4 to 5.4.77
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>
Diffstat (limited to 'target')
38 files changed, 110 insertions, 229 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0095-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch b/target/linux/bcm27xx/patches-5.4/950-0095-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch index d09becc815..a9f3256b32 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0095-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0095-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch @@ -70,7 +70,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net> --- a/drivers/gpu/drm/vc4/vc4_drv.c +++ b/drivers/gpu/drm/vc4/vc4_drv.c -@@ -345,6 +345,7 @@ static struct platform_driver *const com +@@ -346,6 +346,7 @@ static struct platform_driver *const com &vc4_txp_driver, &vc4_hvs_driver, &vc4_crtc_driver, diff --git a/target/linux/bcm27xx/patches-5.4/950-0134-spi-spi-bcm2835-Re-enable-HW-CS.patch b/target/linux/bcm27xx/patches-5.4/950-0134-spi-spi-bcm2835-Re-enable-HW-CS.patch index d8cac64e81..06928cb19e 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0134-spi-spi-bcm2835-Re-enable-HW-CS.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0134-spi-spi-bcm2835-Re-enable-HW-CS.patch @@ -70,7 +70,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> } static int bcm2835_spi_setup(struct spi_device *spi) -@@ -1289,6 +1337,7 @@ static int bcm2835_spi_probe(struct plat +@@ -1277,6 +1325,7 @@ static int bcm2835_spi_probe(struct plat ctlr->bits_per_word_mask = SPI_BPW_MASK(8); ctlr->num_chipselect = BCM2835_SPI_NUM_CS; ctlr->setup = bcm2835_spi_setup; diff --git a/target/linux/bcm27xx/patches-5.4/950-0135-spi-spi-bcm2835-Disable-forced-software-CS.patch b/target/linux/bcm27xx/patches-5.4/950-0135-spi-spi-bcm2835-Disable-forced-software-CS.patch index 92b2378571..ce44eed0c8 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0135-spi-spi-bcm2835-Disable-forced-software-CS.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0135-spi-spi-bcm2835-Disable-forced-software-CS.patch @@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> --- a/drivers/spi/spi-bcm2835.c +++ b/drivers/spi/spi-bcm2835.c -@@ -1279,43 +1279,6 @@ static int bcm2835_spi_setup(struct spi_ +@@ -1279,31 +1279,6 @@ static int bcm2835_spi_setup(struct spi_ return -EINVAL; } @@ -31,18 +31,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> - if (!chip) - return 0; - -- /* -- * Retrieve the corresponding GPIO line used for CS. -- * The inversion semantics will be handled by the GPIO core -- * code, so we pass GPIOS_OUT_LOW for "unasserted" and -- * the correct flag for inversion semantics. The SPI_CS_HIGH -- * on spi->mode cannot be checked for polarity in this case -- * as the flag use_gpio_descriptors enforces SPI_CS_HIGH. -- */ -- if (of_property_read_bool(spi->dev.of_node, "spi-cs-high")) -- lflags = GPIO_ACTIVE_HIGH; -- else -- lflags = GPIO_ACTIVE_LOW; - spi->cs_gpiod = gpiochip_request_own_desc(chip, 8 - spi->chip_select, - DRV_NAME, - lflags, diff --git a/target/linux/bcm27xx/patches-5.4/950-0544-drm-vc4-drv-Support-BCM2711.patch b/target/linux/bcm27xx/patches-5.4/950-0544-drm-vc4-drv-Support-BCM2711.patch index 00bac3a2b9..9a0f790ff4 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0544-drm-vc4-drv-Support-BCM2711.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0544-drm-vc4-drv-Support-BCM2711.patch @@ -17,7 +17,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> --- a/drivers/gpu/drm/vc4/vc4_drv.c +++ b/drivers/gpu/drm/vc4/vc4_drv.c -@@ -368,6 +368,7 @@ static int vc4_platform_drm_remove(struc +@@ -369,6 +369,7 @@ static int vc4_platform_drm_remove(struc } static const struct of_device_id vc4_of_match[] = { diff --git a/target/linux/generic/backport-5.4/744-v5.5-net-sfp-soft-status-and-control-support.patch b/target/linux/generic/backport-5.4/744-v5.5-net-sfp-soft-status-and-control-support.patch index 6e3c87a7e4..abc9f65f09 100644 --- a/target/linux/generic/backport-5.4/744-v5.5-net-sfp-soft-status-and-control-support.patch +++ b/target/linux/generic/backport-5.4/744-v5.5-net-sfp-soft-status-and-control-support.patch @@ -187,16 +187,16 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> int err, i; sfp = sfp_alloc(&pdev->dev); -@@ -2183,7 +2253,7 @@ static int sfp_probe(struct platform_dev - +@@ -2184,7 +2254,7 @@ static int sfp_probe(struct platform_dev sfp->gpio_irq[i] = gpiod_to_irq(sfp->gpio[i]); - if (!sfp->gpio_irq[i]) { + if (sfp->gpio_irq[i] < 0) { + sfp->gpio_irq[i] = 0; - poll = true; + sfp->need_poll = true; continue; } -@@ -2195,11 +2265,11 @@ static int sfp_probe(struct platform_dev +@@ -2196,11 +2266,11 @@ static int sfp_probe(struct platform_dev dev_name(sfp->dev), sfp); if (err) { sfp->gpio_irq[i] = 0; diff --git a/target/linux/generic/pending-5.4/465-m25p80-mx-disable-software-protection.patch b/target/linux/generic/pending-5.4/465-m25p80-mx-disable-software-protection.patch index 24d2d4567d..7c11ad356b 100644 --- a/target/linux/generic/pending-5.4/465-m25p80-mx-disable-software-protection.patch +++ b/target/linux/generic/pending-5.4/465-m25p80-mx-disable-software-protection.patch @@ -8,7 +8,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -4884,6 +4884,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -4883,6 +4883,7 @@ int spi_nor_scan(struct spi_nor *nor, co */ if (JEDEC_MFR(nor->info) == SNOR_MFR_ATMEL || JEDEC_MFR(nor->info) == SNOR_MFR_INTEL || diff --git a/target/linux/generic/pending-5.4/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch b/target/linux/generic/pending-5.4/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch index c5db43b5e6..77b9b72b37 100644 --- a/target/linux/generic/pending-5.4/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch +++ b/target/linux/generic/pending-5.4/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch @@ -25,7 +25,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> nor->params.set_4byte = winbond_set_4byte; } -@@ -4886,6 +4887,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -4885,6 +4886,7 @@ int spi_nor_scan(struct spi_nor *nor, co JEDEC_MFR(nor->info) == SNOR_MFR_INTEL || JEDEC_MFR(nor->info) == SNOR_MFR_MACRONIX || JEDEC_MFR(nor->info) == SNOR_MFR_SST || diff --git a/target/linux/generic/pending-5.4/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch b/target/linux/generic/pending-5.4/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch index d3e587ff97..7773a8ec05 100644 --- a/target/linux/generic/pending-5.4/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch +++ b/target/linux/generic/pending-5.4/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch @@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> depends on OF && (ARM || ARM64 || COMPILE_TEST) --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -4464,6 +4464,7 @@ static void spi_nor_info_init_params(str +@@ -4463,6 +4463,7 @@ static void spi_nor_info_init_params(str struct spi_nor_erase_map *map = ¶ms->erase_map; const struct flash_info *info = nor->info; struct device_node *np = spi_nor_get_flash_node(nor); @@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> u8 i, erase_mask; /* Initialize legacy flash parameters and settings. */ -@@ -4527,6 +4528,21 @@ static void spi_nor_info_init_params(str +@@ -4526,6 +4527,21 @@ static void spi_nor_info_init_params(str */ erase_mask = 0; i = 0; @@ -69,7 +69,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (info->flags & SECT_4K_PMC) { erase_mask |= BIT(i); spi_nor_set_erase_type(&map->erase_type[i], 4096u, -@@ -4538,6 +4554,7 @@ static void spi_nor_info_init_params(str +@@ -4537,6 +4553,7 @@ static void spi_nor_info_init_params(str SPINOR_OP_BE_4K); i++; } diff --git a/target/linux/generic/pending-5.4/481-mtd-spi-nor-rework-broken-flash-reset-support.patch b/target/linux/generic/pending-5.4/481-mtd-spi-nor-rework-broken-flash-reset-support.patch index b2f73a5cbd..8add1f7795 100644 --- a/target/linux/generic/pending-5.4/481-mtd-spi-nor-rework-broken-flash-reset-support.patch +++ b/target/linux/generic/pending-5.4/481-mtd-spi-nor-rework-broken-flash-reset-support.patch @@ -148,7 +148,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com> spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE); return ret; } -@@ -4726,9 +4768,13 @@ static int spi_nor_init(struct spi_nor * +@@ -4725,9 +4767,13 @@ static int spi_nor_init(struct spi_nor * * reboots (e.g., crashes). Warn the user (or hopefully, system * designer) that this is bad. */ diff --git a/target/linux/generic/pending-5.4/754-net-sfp-fix-unbind.patch b/target/linux/generic/pending-5.4/754-net-sfp-fix-unbind.patch index d5f3645025..8d98a5d7a1 100644 --- a/target/linux/generic/pending-5.4/754-net-sfp-fix-unbind.patch +++ b/target/linux/generic/pending-5.4/754-net-sfp-fix-unbind.patch @@ -15,7 +15,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> --- a/drivers/net/phy/sfp.c +++ b/drivers/net/phy/sfp.c -@@ -2343,6 +2343,10 @@ static int sfp_remove(struct platform_de +@@ -2344,6 +2344,10 @@ static int sfp_remove(struct platform_de sfp_unregister_socket(sfp->sfp_bus); diff --git a/target/linux/imx6/patches-5.4/006-v5.7-ARM-dts-imx6qdl-gw5910-add-CC1352-UART.patch b/target/linux/imx6/patches-5.4/006-v5.7-ARM-dts-imx6qdl-gw5910-add-CC1352-UART.patch index 5873e92626..72a98a2b15 100644 --- a/target/linux/imx6/patches-5.4/006-v5.7-ARM-dts-imx6qdl-gw5910-add-CC1352-UART.patch +++ b/target/linux/imx6/patches-5.4/006-v5.7-ARM-dts-imx6qdl-gw5910-add-CC1352-UART.patch @@ -13,7 +13,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> --- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi +++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi -@@ -220,6 +220,14 @@ +@@ -218,6 +218,14 @@ status = "okay"; }; @@ -28,7 +28,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> /* Sterling-LWB Bluetooth */ &uart4 { pinctrl-names = "default"; -@@ -411,6 +419,23 @@ +@@ -409,6 +417,23 @@ >; }; diff --git a/target/linux/imx6/patches-5.4/009-v5.8-ARM-dts-imx6qdl-gw5910-add-support-for-bcm4330-bt.patch b/target/linux/imx6/patches-5.4/009-v5.8-ARM-dts-imx6qdl-gw5910-add-support-for-bcm4330-bt.patch index 6cbd6fdd03..545a6fddd5 100644 --- a/target/linux/imx6/patches-5.4/009-v5.8-ARM-dts-imx6qdl-gw5910-add-support-for-bcm4330-bt.patch +++ b/target/linux/imx6/patches-5.4/009-v5.8-ARM-dts-imx6qdl-gw5910-add-support-for-bcm4330-bt.patch @@ -18,7 +18,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> --- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi +++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi -@@ -83,19 +83,6 @@ +@@ -81,19 +81,6 @@ regulator-max-microvolt = <3300000>; regulator-always-on; }; @@ -38,7 +38,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> }; -@@ -231,9 +218,14 @@ +@@ -229,9 +216,14 @@ /* Sterling-LWB Bluetooth */ &uart4 { pinctrl-names = "default"; @@ -54,7 +54,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> }; /* GPS */ -@@ -288,6 +280,12 @@ +@@ -286,6 +278,12 @@ >; }; @@ -67,7 +67,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> pinctrl_ecspi3: escpi3grp { fsl,pins = < MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1 -@@ -393,12 +391,6 @@ +@@ -391,12 +389,6 @@ >; }; diff --git a/target/linux/imx6/patches-5.4/010-v5.8-ARM-dts-imx6qdl-gw5910-fix-wlan-regulator.patch b/target/linux/imx6/patches-5.4/010-v5.8-ARM-dts-imx6qdl-gw5910-fix-wlan-regulator.patch index c4cce19b93..ce2fa2ee90 100644 --- a/target/linux/imx6/patches-5.4/010-v5.8-ARM-dts-imx6qdl-gw5910-fix-wlan-regulator.patch +++ b/target/linux/imx6/patches-5.4/010-v5.8-ARM-dts-imx6qdl-gw5910-fix-wlan-regulator.patch @@ -14,7 +14,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> --- a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi +++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi -@@ -81,7 +81,6 @@ +@@ -79,7 +79,6 @@ enable-active-high; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; @@ -22,7 +22,7 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org> }; }; -@@ -251,7 +250,7 @@ +@@ -249,7 +248,7 @@ &usdhc2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usdhc2>; diff --git a/target/linux/ipq40xx/patches-5.4/700-net-add-qualcomm-mdio.patch b/target/linux/ipq40xx/patches-5.4/700-net-add-qualcomm-mdio.patch index 8786330d3b..3345d84fb8 100644 --- a/target/linux/ipq40xx/patches-5.4/700-net-add-qualcomm-mdio.patch +++ b/target/linux/ipq40xx/patches-5.4/700-net-add-qualcomm-mdio.patch @@ -1,6 +1,6 @@ --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig -@@ -581,6 +581,13 @@ config XILINX_GMII2RGMII +@@ -577,6 +577,13 @@ config XILINX_GMII2RGMII the Reduced Gigabit Media Independent Interface(RGMII) between Ethernet physical media devices and the Gigabit Ethernet controller. @@ -16,7 +16,7 @@ config MICREL_KS8995MA --- a/drivers/net/phy/Makefile +++ b/drivers/net/phy/Makefile -@@ -51,6 +51,7 @@ obj-$(CONFIG_MDIO_CAVIUM) += mdio-cavium +@@ -50,6 +50,7 @@ obj-$(CONFIG_MDIO_CAVIUM) += mdio-cavium obj-$(CONFIG_MDIO_GPIO) += mdio-gpio.o obj-$(CONFIG_MDIO_HISI_FEMAC) += mdio-hisi-femac.o obj-$(CONFIG_MDIO_I2C) += mdio-i2c.o diff --git a/target/linux/ipq40xx/patches-5.4/705-net-add-qualcomm-ar40xx-phy.patch b/target/linux/ipq40xx/patches-5.4/705-net-add-qualcomm-ar40xx-phy.patch index 4cdeab637a..6f080892d5 100644 --- a/target/linux/ipq40xx/patches-5.4/705-net-add-qualcomm-ar40xx-phy.patch +++ b/target/linux/ipq40xx/patches-5.4/705-net-add-qualcomm-ar40xx-phy.patch @@ -1,6 +1,6 @@ --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig -@@ -588,6 +588,13 @@ config MDIO_IPQ40XX +@@ -584,6 +584,13 @@ config MDIO_IPQ40XX This driver supports the MDIO interface found in Qualcomm Atheros ipq40xx Soc chip. @@ -16,7 +16,7 @@ config MICREL_KS8995MA --- a/drivers/net/phy/Makefile +++ b/drivers/net/phy/Makefile -@@ -70,6 +70,7 @@ ifdef CONFIG_HWMON +@@ -69,6 +69,7 @@ ifdef CONFIG_HWMON aquantia-objs += aquantia_hwmon.o endif obj-$(CONFIG_AQUANTIA_PHY) += aquantia.o diff --git a/target/linux/layerscape/patches-5.4/303-core-0002-drivers-base-add-sysfs-entries-for-suppliers-and-con.patch b/target/linux/layerscape/patches-5.4/303-core-0002-drivers-base-add-sysfs-entries-for-suppliers-and-con.patch index 1e45217307..6307ba839c 100644 --- a/target/linux/layerscape/patches-5.4/303-core-0002-drivers-base-add-sysfs-entries-for-suppliers-and-con.patch +++ b/target/linux/layerscape/patches-5.4/303-core-0002-drivers-base-add-sysfs-entries-for-suppliers-and-con.patch @@ -32,7 +32,7 @@ Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> + a specific device. --- a/drivers/base/core.c +++ b/drivers/base/core.c -@@ -1320,6 +1320,34 @@ static ssize_t online_store(struct devic +@@ -1318,6 +1318,34 @@ static ssize_t online_store(struct devic } static DEVICE_ATTR_RW(online); @@ -67,7 +67,7 @@ Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> int device_add_groups(struct device *dev, const struct attribute_group **groups) { return sysfs_create_groups(&dev->kobj, groups); -@@ -1491,8 +1519,20 @@ static int device_add_attrs(struct devic +@@ -1489,8 +1517,20 @@ static int device_add_attrs(struct devic goto err_remove_dev_groups; } @@ -88,7 +88,7 @@ Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> err_remove_dev_groups: device_remove_groups(dev, dev->groups); err_remove_type_groups: -@@ -1510,6 +1550,8 @@ static void device_remove_attrs(struct d +@@ -1508,6 +1548,8 @@ static void device_remove_attrs(struct d struct class *class = dev->class; const struct device_type *type = dev->type; diff --git a/target/linux/layerscape/patches-5.4/819-uart-0001-tty-serial-lpuart-add-power-domain-support.patch b/target/linux/layerscape/patches-5.4/819-uart-0001-tty-serial-lpuart-add-power-domain-support.patch index aa14f17500..ce93640b55 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0001-tty-serial-lpuart-add-power-domain-support.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0001-tty-serial-lpuart-add-power-domain-support.patch @@ -27,7 +27,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> #include <linux/serial_core.h> #include <linux/slab.h> #include <linux/tty_flip.h> -@@ -2367,6 +2369,54 @@ static struct uart_driver lpuart_reg = { +@@ -2391,6 +2393,54 @@ static struct uart_driver lpuart_reg = { .cons = LPUART_CONSOLE, }; @@ -82,7 +82,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> static int lpuart_probe(struct platform_device *pdev) { const struct of_device_id *of_id = of_match_device(lpuart_dt_ids, -@@ -2404,6 +2454,10 @@ static int lpuart_probe(struct platform_ +@@ -2428,6 +2478,10 @@ static int lpuart_probe(struct platform_ sport->port.rs485_config = lpuart_config_rs485; diff --git a/target/linux/layerscape/patches-5.4/819-uart-0002-tty-serial-fsl_lpuart-add-modem-device-reset.patch b/target/linux/layerscape/patches-5.4/819-uart-0002-tty-serial-fsl_lpuart-add-modem-device-reset.patch index 9f409a1fab..a287cd7f05 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0002-tty-serial-fsl_lpuart-add-modem-device-reset.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0002-tty-serial-fsl_lpuart-add-modem-device-reset.patch @@ -20,7 +20,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> #include <linux/serial_core.h> #include <linux/slab.h> #include <linux/tty_flip.h> -@@ -1542,8 +1543,17 @@ static void lpuart32_configure(struct lp +@@ -1555,8 +1556,17 @@ static void lpuart32_configure(struct lp static int lpuart32_startup(struct uart_port *port) { struct lpuart_port *sport = container_of(port, struct lpuart_port, port); diff --git a/target/linux/layerscape/patches-5.4/819-uart-0003-tty-serial-fsl_lpuart-add-magic-SysRq-support.patch b/target/linux/layerscape/patches-5.4/819-uart-0003-tty-serial-fsl_lpuart-add-magic-SysRq-support.patch index bb94b02476..dc2ace7be2 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0003-tty-serial-fsl_lpuart-add-magic-SysRq-support.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0003-tty-serial-fsl_lpuart-add-magic-SysRq-support.patch @@ -12,7 +12,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c -@@ -918,7 +918,12 @@ static void lpuart32_rxint(struct lpuart +@@ -931,7 +931,12 @@ static void lpuart32_rxint(struct lpuart */ sr = lpuart32_read(&sport->port, UARTSTAT); rx = lpuart32_read(&sport->port, UARTDATA); diff --git a/target/linux/layerscape/patches-5.4/819-uart-0004-MLK-18137-fsl_lpuart-Fix-loopback-mode.patch b/target/linux/layerscape/patches-5.4/819-uart-0004-MLK-18137-fsl_lpuart-Fix-loopback-mode.patch index aab529fc76..f3ff330281 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0004-MLK-18137-fsl_lpuart-Fix-loopback-mode.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0004-MLK-18137-fsl_lpuart-Fix-loopback-mode.patch @@ -17,7 +17,7 @@ Signed-off-by: Adriana Reus <adriana.reus@nxp.com> --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c -@@ -2452,7 +2452,7 @@ static int lpuart_probe(struct platform_ +@@ -2476,7 +2476,7 @@ static int lpuart_probe(struct platform_ return PTR_ERR(sport->port.membase); sport->port.membase += sdata->reg_off; diff --git a/target/linux/layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch b/target/linux/layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch index d4034bb9db..6edcc398d0 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch @@ -60,7 +60,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> /* Rx DMA timeout in ms, which is used to calculate Rx ring buffer size */ #define DMA_RX_TIMEOUT (10) -@@ -253,6 +260,9 @@ struct lpuart_port { +@@ -254,6 +261,9 @@ struct lpuart_port { unsigned int txfifo_size; unsigned int rxfifo_size; @@ -70,7 +70,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> bool lpuart_dma_tx_use; bool lpuart_dma_rx_use; struct dma_chan *dma_tx_chan; -@@ -278,28 +288,38 @@ struct lpuart_soc_data { +@@ -279,33 +289,45 @@ struct lpuart_soc_data { enum lpuart_type devtype; char iotype; u8 reg_off; @@ -85,13 +85,20 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> + .rx_dma_cyclic = true, }; - static const struct lpuart_soc_data ls_data = { + static const struct lpuart_soc_data ls1021a_data = { .devtype = LS1021A_LPUART, .iotype = UPIO_MEM32BE, + .rx_watermark = 0, + .rx_dma_cyclic = true, }; + static const struct lpuart_soc_data ls1028a_data = { + .devtype = LS1028A_LPUART, + .iotype = UPIO_MEM32, ++ .rx_watermark = 0, ++ .rx_dma_cyclic = true, + }; + static struct lpuart_soc_data imx7ulp_data = { .devtype = IMX7ULP_LPUART, .iotype = UPIO_MEM32, @@ -109,15 +116,15 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> }; static const struct of_device_id lpuart_dt_ids[] = { -@@ -313,6 +333,7 @@ MODULE_DEVICE_TABLE(of, lpuart_dt_ids); +@@ -320,6 +342,7 @@ MODULE_DEVICE_TABLE(of, lpuart_dt_ids); /* Forward declare this for the dma callbacks*/ static void lpuart_dma_tx_complete(void *arg); +static int lpuart_sched_rx_dma(struct lpuart_port *sport); - static inline bool is_imx8qxp_lpuart(struct lpuart_port *sport) + static inline bool is_layerscape_lpuart(struct lpuart_port *sport) { -@@ -998,19 +1019,15 @@ static irqreturn_t lpuart32_int(int irq, +@@ -1011,19 +1034,15 @@ static irqreturn_t lpuart32_int(int irq, if ((sts & UARTSTAT_TDRE) && !sport->lpuart_dma_tx_use) lpuart32_txint(sport); @@ -141,7 +148,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> if (lpuart_is_32(sport)) { unsigned long sr = lpuart32_read(&sport->port, UARTSTAT); -@@ -1062,8 +1079,21 @@ static void lpuart_copy_rx_to_tty(struct +@@ -1075,8 +1094,21 @@ static void lpuart_copy_rx_to_tty(struct writeb(cr2, sport->port.membase + UARTCR2); } } @@ -164,7 +171,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> spin_lock_irqsave(&sport->port.lock, flags); -@@ -1126,7 +1156,33 @@ static void lpuart_copy_rx_to_tty(struct +@@ -1139,7 +1171,33 @@ static void lpuart_copy_rx_to_tty(struct spin_unlock_irqrestore(&sport->port.lock, flags); tty_flip_buffer_push(port); @@ -199,7 +206,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> } static void lpuart_dma_rx_complete(void *arg) -@@ -1134,6 +1190,8 @@ static void lpuart_dma_rx_complete(void +@@ -1147,6 +1205,8 @@ static void lpuart_dma_rx_complete(void struct lpuart_port *sport = arg; lpuart_copy_rx_to_tty(sport); @@ -208,7 +215,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> } static void lpuart_timer_func(struct timer_list *t) -@@ -1141,13 +1199,78 @@ static void lpuart_timer_func(struct tim +@@ -1154,13 +1214,78 @@ static void lpuart_timer_func(struct tim struct lpuart_port *sport = from_timer(sport, t, lpuart_timer); lpuart_copy_rx_to_tty(sport); @@ -291,7 +298,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> int bits, baud; struct tty_port *port = &sport->port.state->port; struct tty_struct *tty = port->tty; -@@ -1167,6 +1290,18 @@ static inline int lpuart_start_rx_dma(st +@@ -1180,6 +1305,18 @@ static inline int lpuart_start_rx_dma(st sport->rx_dma_rng_buf_len = (1 << (fls(sport->rx_dma_rng_buf_len) - 1)); if (sport->rx_dma_rng_buf_len < 16) sport->rx_dma_rng_buf_len = 16; @@ -310,7 +317,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> ring->buf = kzalloc(sport->rx_dma_rng_buf_len, GFP_ATOMIC); if (!ring->buf) -@@ -1192,32 +1327,7 @@ static inline int lpuart_start_rx_dma(st +@@ -1205,32 +1342,7 @@ static inline int lpuart_start_rx_dma(st return ret; } @@ -344,7 +351,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> } static void lpuart_dma_rx_free(struct uart_port *port) -@@ -1403,8 +1513,10 @@ static void lpuart_setup_watermark(struc +@@ -1416,8 +1528,10 @@ static void lpuart_setup_watermark(struc writeb(UARTSFIFO_RXUF, sport->port.membase + UARTSFIFO); } @@ -356,7 +363,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> /* Restore cr2 */ writeb(cr2_saved, sport->port.membase + UARTCR2); -@@ -1425,6 +1537,7 @@ static void lpuart32_setup_watermark(str +@@ -1438,6 +1552,7 @@ static void lpuart32_setup_watermark(str { unsigned long val, ctrl; unsigned long ctrl_saved; @@ -364,7 +371,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> ctrl = lpuart32_read(&sport->port, UARTCTRL); ctrl_saved = ctrl; -@@ -1436,12 +1549,26 @@ static void lpuart32_setup_watermark(str +@@ -1449,12 +1564,26 @@ static void lpuart32_setup_watermark(str val = lpuart32_read(&sport->port, UARTFIFO); val |= UARTFIFO_TXFE | UARTFIFO_RXFE; val |= UARTFIFO_TXFLUSH | UARTFIFO_RXFLUSH; @@ -392,7 +399,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> /* Restore cr2 */ lpuart32_write(&sport->port, ctrl_saved, UARTCTRL); } -@@ -1453,17 +1580,29 @@ static void lpuart32_setup_watermark_ena +@@ -1466,17 +1595,29 @@ static void lpuart32_setup_watermark_ena lpuart32_setup_watermark(sport); temp = lpuart32_read(&sport->port, UARTCTRL); @@ -423,7 +430,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> static void lpuart_tx_dma_startup(struct lpuart_port *sport) { u32 uartbaud; -@@ -1527,19 +1666,23 @@ static int lpuart_startup(struct uart_po +@@ -1540,19 +1681,23 @@ static int lpuart_startup(struct uart_po return 0; } @@ -454,7 +461,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> if (!sport->lpuart_dma_tx_use) temp |= UARTCTRL_TIE; lpuart32_write(&sport->port, temp, UARTCTRL); -@@ -1572,12 +1715,12 @@ static int lpuart32_startup(struct uart_ +@@ -1596,12 +1741,12 @@ static int lpuart32_startup(struct uart_ spin_lock_irqsave(&sport->port.lock, flags); @@ -469,7 +476,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> lpuart32_configure(sport); spin_unlock_irqrestore(&sport->port.lock, flags); -@@ -1587,7 +1730,7 @@ static int lpuart32_startup(struct uart_ +@@ -1611,7 +1756,7 @@ static int lpuart32_startup(struct uart_ static void lpuart_dma_shutdown(struct lpuart_port *sport) { if (sport->lpuart_dma_rx_use) { @@ -478,7 +485,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> lpuart_dma_rx_free(&sport->port); } -@@ -1628,11 +1771,22 @@ static void lpuart32_shutdown(struct uar +@@ -1652,11 +1797,22 @@ static void lpuart32_shutdown(struct uar spin_lock_irqsave(&port->lock, flags); @@ -503,7 +510,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> spin_unlock_irqrestore(&port->lock, flags); -@@ -1729,10 +1883,10 @@ lpuart_set_termios(struct uart_port *por +@@ -1753,10 +1909,10 @@ lpuart_set_termios(struct uart_port *por * baud rate and restart Rx DMA path. * * Since timer function acqures sport->port.lock, need to stop before @@ -516,7 +523,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> lpuart_dma_rx_free(&sport->port); } -@@ -1944,10 +2098,10 @@ lpuart32_set_termios(struct uart_port *p +@@ -1968,10 +2124,10 @@ lpuart32_set_termios(struct uart_port *p * baud rate and restart Rx DMA path. * * Since timer function acqures sport->port.lock, need to stop before @@ -529,7 +536,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> lpuart_dma_rx_free(&sport->port); } -@@ -2456,6 +2610,10 @@ static int lpuart_probe(struct platform_ +@@ -2480,6 +2636,10 @@ static int lpuart_probe(struct platform_ sport->port.dev = &pdev->dev; sport->port.type = PORT_LPUART; sport->devtype = sdata->devtype; @@ -540,7 +547,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> ret = platform_get_irq(pdev, 0); if (ret < 0) return ret; -@@ -2618,7 +2776,7 @@ static int lpuart_suspend(struct device +@@ -2642,7 +2802,7 @@ static int lpuart_suspend(struct device * Rx DMA path before suspend and start Rx DMA path on resume. */ if (irq_wake) { diff --git a/target/linux/layerscape/patches-5.4/819-uart-0006-tty-serial-fsl_lpuart-enable-loopback-mode.patch b/target/linux/layerscape/patches-5.4/819-uart-0006-tty-serial-fsl_lpuart-enable-loopback-mode.patch index cfcb6e83fc..303aa3b011 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0006-tty-serial-fsl_lpuart-enable-loopback-mode.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0006-tty-serial-fsl_lpuart-enable-loopback-mode.patch @@ -12,7 +12,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c -@@ -1462,6 +1462,14 @@ static void lpuart32_set_mctrl(struct ua +@@ -1477,6 +1477,14 @@ static void lpuart32_set_mctrl(struct ua temp |= UARTMODIR_TXCTSE; lpuart32_write(port, temp, UARTMODIR); diff --git a/target/linux/layerscape/patches-5.4/819-uart-0007-MLK-15094-tty-serial-fsl_lpuart-check-dma_tx_in_prog.patch b/target/linux/layerscape/patches-5.4/819-uart-0007-MLK-15094-tty-serial-fsl_lpuart-check-dma_tx_in_prog.patch index 58f44e86b0..41271f9dfd 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0007-MLK-15094-tty-serial-fsl_lpuart-check-dma_tx_in_prog.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0007-MLK-15094-tty-serial-fsl_lpuart-check-dma_tx_in_prog.patch @@ -16,7 +16,7 @@ Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com> --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c -@@ -490,6 +490,10 @@ static void lpuart_dma_tx_complete(void +@@ -505,6 +505,10 @@ static void lpuart_dma_tx_complete(void unsigned long flags; spin_lock_irqsave(&sport->port.lock, flags); diff --git a/target/linux/layerscape/patches-5.4/819-uart-0008-MLK-21445-serial-fsl_lpuart-do-HW-reset-for-communic.patch b/target/linux/layerscape/patches-5.4/819-uart-0008-MLK-21445-serial-fsl_lpuart-do-HW-reset-for-communic.patch index edb0bd20cf..ab52567a3c 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0008-MLK-21445-serial-fsl_lpuart-do-HW-reset-for-communic.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0008-MLK-21445-serial-fsl_lpuart-do-HW-reset-for-communic.patch @@ -59,9 +59,9 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com> #define UARTFIFO_RXIDEN_RDRF 0x3 #define UARTCTRL_IDLECFG 0x7 -@@ -335,6 +345,11 @@ MODULE_DEVICE_TABLE(of, lpuart_dt_ids); - static void lpuart_dma_tx_complete(void *arg); - static int lpuart_sched_rx_dma(struct lpuart_port *sport); +@@ -350,6 +360,11 @@ static inline bool is_layerscape_lpuart( + sport->devtype == LS1028A_LPUART); + } +static inline bool is_imx7ulp_lpuart(struct lpuart_port *sport) +{ @@ -71,7 +71,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com> static inline bool is_imx8qxp_lpuart(struct lpuart_port *sport) { return sport->devtype == IMX8QXP_LPUART; -@@ -398,6 +413,33 @@ static unsigned int lpuart_get_baud_clk_ +@@ -413,6 +428,33 @@ static unsigned int lpuart_get_baud_clk_ #define lpuart_enable_clks(x) __lpuart_enable_clks(x, true) #define lpuart_disable_clks(x) __lpuart_enable_clks(x, false) @@ -105,7 +105,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com> static void lpuart_stop_tx(struct uart_port *port) { unsigned char temp; -@@ -2702,6 +2744,10 @@ static int lpuart_probe(struct platform_ +@@ -2728,6 +2770,10 @@ static int lpuart_probe(struct platform_ if (ret) goto failed_attach_port; @@ -116,7 +116,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com> uart_get_rs485_mode(&pdev->dev, &sport->port.rs485); if (sport->port.rs485.flags & SER_RS485_RX_DURING_TX) -@@ -2725,6 +2771,8 @@ static int lpuart_probe(struct platform_ +@@ -2751,6 +2797,8 @@ static int lpuart_probe(struct platform_ return 0; diff --git a/target/linux/layerscape/patches-5.4/819-uart-0009-MLK-17133-02-tty-serial-lpuart-add-runtime-pm-suppor.patch b/target/linux/layerscape/patches-5.4/819-uart-0009-MLK-17133-02-tty-serial-lpuart-add-runtime-pm-suppor.patch index 7021a6e3c7..d819f4790a 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0009-MLK-17133-02-tty-serial-lpuart-add-runtime-pm-suppor.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0009-MLK-17133-02-tty-serial-lpuart-add-runtime-pm-suppor.patch @@ -22,7 +22,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com> #define DRIVER_NAME "fsl-lpuart" #define DEV_NAME "ttyLP" -@@ -844,6 +845,20 @@ static void lpuart32_start_tx(struct uar +@@ -859,6 +860,20 @@ static void lpuart32_start_tx(struct uar } } @@ -43,7 +43,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com> /* return TIOCSER_TEMT when transmitter is not busy */ static unsigned int lpuart_tx_empty(struct uart_port *port) { -@@ -2257,6 +2272,7 @@ static const struct uart_ops lpuart_pops +@@ -2283,6 +2298,7 @@ static const struct uart_ops lpuart_pops .break_ctl = lpuart_break_ctl, .startup = lpuart_startup, .shutdown = lpuart_shutdown, @@ -51,7 +51,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com> .set_termios = lpuart_set_termios, .type = lpuart_type, .request_port = lpuart_request_port, -@@ -2281,6 +2297,7 @@ static const struct uart_ops lpuart32_po +@@ -2307,6 +2323,7 @@ static const struct uart_ops lpuart32_po .break_ctl = lpuart32_break_ctl, .startup = lpuart32_startup, .shutdown = lpuart32_shutdown, @@ -59,7 +59,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com> .set_termios = lpuart32_set_termios, .type = lpuart_type, .request_port = lpuart_request_port, -@@ -2740,6 +2757,11 @@ static int lpuart_probe(struct platform_ +@@ -2766,6 +2783,11 @@ static int lpuart_probe(struct platform_ if (ret) goto failed_irq_request; @@ -71,7 +71,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com> ret = uart_add_one_port(&lpuart_reg, &sport->port); if (ret) goto failed_attach_port; -@@ -2774,6 +2796,9 @@ static int lpuart_probe(struct platform_ +@@ -2800,6 +2822,9 @@ static int lpuart_probe(struct platform_ failed_reset: uart_remove_one_port(&lpuart_reg, &sport->port); failed_attach_port: @@ -81,7 +81,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com> failed_irq_request: lpuart_disable_clks(sport); failed_clock_enable: -@@ -2800,15 +2825,41 @@ static int lpuart_remove(struct platform +@@ -2826,15 +2851,41 @@ static int lpuart_remove(struct platform if (sport->dma_rx_chan) dma_release_channel(sport->dma_rx_chan); @@ -123,7 +123,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com> if (lpuart_is_32(sport)) { /* disable Rx/Tx and interrupts */ -@@ -2822,10 +2873,14 @@ static int lpuart_suspend(struct device +@@ -2848,10 +2899,14 @@ static int lpuart_suspend(struct device writeb(temp, sport->port.membase + UARTCR2); } @@ -138,7 +138,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com> if (sport->lpuart_dma_rx_use) { /* -@@ -2856,9 +2911,6 @@ static int lpuart_suspend(struct device +@@ -2882,9 +2937,6 @@ static int lpuart_suspend(struct device dmaengine_terminate_all(sport->dma_tx_chan); } @@ -148,7 +148,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com> return 0; } -@@ -2866,9 +2918,11 @@ static int lpuart_resume(struct device * +@@ -2892,9 +2944,11 @@ static int lpuart_resume(struct device * { struct lpuart_port *sport = dev_get_drvdata(dev); bool irq_wake = irqd_is_wakeup_set(irq_get_irq_data(sport->port.irq)); @@ -162,7 +162,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com> if (lpuart_is_32(sport)) lpuart32_setup_watermark_enable(sport); -@@ -2889,13 +2943,23 @@ static int lpuart_resume(struct device * +@@ -2915,13 +2969,23 @@ static int lpuart_resume(struct device * if (lpuart_is_32(sport)) lpuart32_configure(sport); @@ -188,7 +188,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com> static struct platform_driver lpuart_driver = { .probe = lpuart_probe, -@@ -2903,7 +2967,7 @@ static struct platform_driver lpuart_dri +@@ -2929,7 +2993,7 @@ static struct platform_driver lpuart_dri .driver = { .name = "fsl-lpuart", .of_match_table = lpuart_dt_ids, diff --git a/target/linux/layerscape/patches-5.4/819-uart-0010-tty-serial-lpuart-enable-wakeup-source-for-lpuart.patch b/target/linux/layerscape/patches-5.4/819-uart-0010-tty-serial-lpuart-enable-wakeup-source-for-lpuart.patch index 71c75584b8..69dc1b465a 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0010-tty-serial-lpuart-enable-wakeup-source-for-lpuart.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0010-tty-serial-lpuart-enable-wakeup-source-for-lpuart.patch @@ -28,7 +28,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> #include <linux/pm_domain.h> #include <linux/pm_runtime.h> #include <linux/reset.h> -@@ -1707,10 +1708,23 @@ static void lpuart_rx_dma_startup(struct +@@ -1722,10 +1723,23 @@ static void lpuart_rx_dma_startup(struct } } @@ -53,7 +53,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> unsigned char temp; /* determine FIFO size and enable FIFO mode */ -@@ -1723,14 +1737,7 @@ static int lpuart_startup(struct uart_po +@@ -1738,14 +1752,7 @@ static int lpuart_startup(struct uart_po sport->rxfifo_size = UARTFIFO_DEPTH((temp >> UARTPFIFO_RXSIZE_OFF) & UARTPFIFO_FIFOSIZE_MASK); @@ -69,7 +69,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> return 0; } -@@ -1757,11 +1764,27 @@ static void lpuart32_configure(struct lp +@@ -1772,11 +1779,27 @@ static void lpuart32_configure(struct lp lpuart32_write(&sport->port, temp, UARTCTRL); } @@ -98,9 +98,9 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> unsigned long temp; int ret; -@@ -1782,17 +1805,8 @@ static int lpuart32_startup(struct uart_ - sport->rxfifo_size = UARTFIFO_DEPTH((temp >> UARTFIFO_RXSIZE_OFF) & - UARTFIFO_FIFOSIZE_MASK); +@@ -1808,17 +1831,8 @@ static int lpuart32_startup(struct uart_ + sport->port.fifosize = sport->txfifo_size; + } - spin_lock_irqsave(&sport->port.lock, flags); - @@ -117,7 +117,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> return 0; } -@@ -2850,108 +2864,205 @@ static int lpuart_runtime_resume(struct +@@ -2876,108 +2890,205 @@ static int lpuart_runtime_resume(struct return lpuart_enable_clks(sport); }; diff --git a/target/linux/layerscape/patches-5.4/819-uart-0011-serial-fsl_lpuart-enable-two-stop-bits.patch b/target/linux/layerscape/patches-5.4/819-uart-0011-serial-fsl_lpuart-enable-two-stop-bits.patch index 3f92a1491e..2d4c14922a 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0011-serial-fsl_lpuart-enable-two-stop-bits.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0011-serial-fsl_lpuart-enable-two-stop-bits.patch @@ -14,7 +14,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c -@@ -2109,11 +2109,12 @@ lpuart32_set_termios(struct uart_port *p +@@ -2135,11 +2135,12 @@ lpuart32_set_termios(struct uart_port *p { struct lpuart_port *sport = container_of(port, struct lpuart_port, port); unsigned long flags; @@ -28,7 +28,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> modem = lpuart32_read(&sport->port, UARTMODIR); /* * only support CS8 and CS7, and for CS7 must enable PE. -@@ -2150,7 +2151,9 @@ lpuart32_set_termios(struct uart_port *p +@@ -2176,7 +2177,9 @@ lpuart32_set_termios(struct uart_port *p } if (termios->c_cflag & CSTOPB) @@ -39,7 +39,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com> /* parity must be enabled when CS7 to match 8-bits format */ if ((termios->c_cflag & CSIZE) == CS7) -@@ -2220,6 +2223,7 @@ lpuart32_set_termios(struct uart_port *p +@@ -2246,6 +2249,7 @@ lpuart32_set_termios(struct uart_port *p lpuart32_write(&sport->port, old_ctrl & ~(UARTCTRL_TE | UARTCTRL_RE), UARTCTRL); diff --git a/target/linux/layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch b/target/linux/layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch deleted file mode 100644 index a4cb65cfec..0000000000 --- a/target/linux/layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 932dac0380bbf7276d4111c35674679bc9ad6384 Mon Sep 17 00:00:00 2001 -From: Vabhav Sharma <vabhav.sharma@nxp.com> -Date: Thu, 31 Oct 2019 19:20:47 +0530 -Subject: [PATCH] tty: serial: lpuart: add LS1028A support - -NXP LS1028A lpuart is the same IP as LS1021A, but it is -little endian for register accessing instead of big endian -on LS1021A. - -So add LS1028A matching data to distiguish the chips. - -Signed-off-by: Fugang Duan <fugang.duan@nxp.com> -Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com> -Acked-by: Fugang Duan <fugang.duan@nxp.com> ---- - drivers/tty/serial/fsl_lpuart.c | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - ---- a/drivers/tty/serial/fsl_lpuart.c -+++ b/drivers/tty/serial/fsl_lpuart.c -@@ -3,6 +3,7 @@ - * Freescale lpuart serial port driver - * - * Copyright 2012-2014 Freescale Semiconductor, Inc. -+ * Copyright 2019 NXP - */ - - #if defined(CONFIG_SERIAL_FSL_LPUART_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) -@@ -260,6 +261,7 @@ static DEFINE_IDA(fsl_lpuart_ida); - enum lpuart_type { - VF610_LPUART, - LS1021A_LPUART, -+ LS1028A_LPUART, - IMX7ULP_LPUART, - IMX8QXP_LPUART, - }; -@@ -311,13 +313,20 @@ static const struct lpuart_soc_data vf_d - .rx_dma_cyclic = true, - }; - --static const struct lpuart_soc_data ls_data = { -+static const struct lpuart_soc_data ls1021a_data = { - .devtype = LS1021A_LPUART, - .iotype = UPIO_MEM32BE, - .rx_watermark = 0, - .rx_dma_cyclic = true, - }; - -+static const struct lpuart_soc_data ls1028a_data = { -+ .devtype = LS1028A_LPUART, -+ .iotype = UPIO_MEM32, -+ .rx_watermark = 0, -+ .rx_dma_cyclic = true, -+}; -+ - static struct lpuart_soc_data imx7ulp_data = { - .devtype = IMX7ULP_LPUART, - .iotype = UPIO_MEM32, -@@ -336,7 +345,8 @@ static struct lpuart_soc_data imx8qxp_da - - static const struct of_device_id lpuart_dt_ids[] = { - { .compatible = "fsl,vf610-lpuart", .data = &vf_data, }, -- { .compatible = "fsl,ls1021a-lpuart", .data = &ls_data, }, -+ { .compatible = "fsl,ls1021a-lpuart", .data = &ls1021a_data, }, -+ { .compatible = "fsl,ls1028a-lpuart", .data = &ls1028a_data, }, - { .compatible = "fsl,imx7ulp-lpuart", .data = &imx7ulp_data, }, - { .compatible = "fsl,imx8qxp-lpuart", .data = &imx8qxp_data, }, - { /* sentinel */ } diff --git a/target/linux/layerscape/patches-5.4/819-uart-0013-LF-484-tty-serial-lpuart-support-UPIO_MEM32-for-lpua.patch b/target/linux/layerscape/patches-5.4/819-uart-0013-LF-484-tty-serial-lpuart-support-UPIO_MEM32-for-lpua.patch index 125502ff9d..4223d1e2f2 100644 --- a/target/linux/layerscape/patches-5.4/819-uart-0013-LF-484-tty-serial-lpuart-support-UPIO_MEM32-for-lpua.patch +++ b/target/linux/layerscape/patches-5.4/819-uart-0013-LF-484-tty-serial-lpuart-support-UPIO_MEM32-for-lpua.patch @@ -24,7 +24,7 @@ Signed-off-by: Peng Fan <peng.fan@nxp.com> --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c -@@ -2598,7 +2598,9 @@ static int __init lpuart32_early_console +@@ -2614,7 +2614,9 @@ static int __init lpuart32_early_console if (!device->port.membase) return -ENODEV; diff --git a/target/linux/mediatek/patches-5.4/0003-switch-add-mt7531.patch b/target/linux/mediatek/patches-5.4/0003-switch-add-mt7531.patch index 2512ed3142..6fae99c1f4 100644 --- a/target/linux/mediatek/patches-5.4/0003-switch-add-mt7531.patch +++ b/target/linux/mediatek/patches-5.4/0003-switch-add-mt7531.patch @@ -1,6 +1,6 @@ --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig -@@ -333,6 +333,8 @@ config RTL8367B_PHY +@@ -329,6 +329,8 @@ config RTL8367B_PHY endif # RTL8366_SMI @@ -11,7 +11,7 @@ config SFP --- a/drivers/net/phy/Makefile +++ b/drivers/net/phy/Makefile -@@ -110,3 +110,5 @@ obj-$(CONFIG_STE10XP) += ste10Xp.o +@@ -109,3 +109,5 @@ obj-$(CONFIG_STE10XP) += ste10Xp.o obj-$(CONFIG_TERANETICS_PHY) += teranetics.o obj-$(CONFIG_VITESSE_PHY) += vitesse.o obj-$(CONFIG_XILINX_GMII2RGMII) += xilinx_gmii2rgmii.o diff --git a/target/linux/mediatek/patches-5.4/0005-dts-mt7622-add-gsw.patch b/target/linux/mediatek/patches-5.4/0005-dts-mt7622-add-gsw.patch index 6b89a39668..d40cbfb853 100644 --- a/target/linux/mediatek/patches-5.4/0005-dts-mt7622-add-gsw.patch +++ b/target/linux/mediatek/patches-5.4/0005-dts-mt7622-add-gsw.patch @@ -122,7 +122,7 @@ }; reg_1p8v: regulator-1p8v { -@@ -101,23 +115,82 @@ +@@ -101,23 +113,82 @@ }; ð { @@ -212,7 +212,7 @@ }; }; }; -@@ -185,15 +258,28 @@ +@@ -185,15 +256,28 @@ &pcie { pinctrl-names = "default"; @@ -242,7 +242,7 @@ /* eMMC is shared pin with parallel NAND */ emmc_pins_default: emmc-pins-default { mux { -@@ -460,11 +546,11 @@ +@@ -460,11 +544,11 @@ }; &sata { diff --git a/target/linux/mediatek/patches-5.4/0308-dts-mt7622-add-snand-support.patch b/target/linux/mediatek/patches-5.4/0308-dts-mt7622-add-snand-support.patch index 378ccb8338..b287780d6c 100644 --- a/target/linux/mediatek/patches-5.4/0308-dts-mt7622-add-snand-support.patch +++ b/target/linux/mediatek/patches-5.4/0308-dts-mt7622-add-snand-support.patch @@ -22,7 +22,7 @@ "mediatek,mt8173-nor"; --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts -@@ -101,7 +101,7 @@ +@@ -99,7 +99,7 @@ }; &bch { @@ -31,7 +31,7 @@ }; &btif { -@@ -553,6 +553,62 @@ +@@ -551,6 +551,62 @@ status = "disable"; }; diff --git a/target/linux/mediatek/patches-5.4/0310-dts-add-wmac-support-for-mt7622-rfb1.patch b/target/linux/mediatek/patches-5.4/0310-dts-add-wmac-support-for-mt7622-rfb1.patch index bf16062cb7..92296060c3 100644 --- a/target/linux/mediatek/patches-5.4/0310-dts-add-wmac-support-for-mt7622-rfb1.patch +++ b/target/linux/mediatek/patches-5.4/0310-dts-add-wmac-support-for-mt7622-rfb1.patch @@ -20,7 +20,7 @@ "syscon"; --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts -@@ -591,7 +591,7 @@ +@@ -589,7 +589,7 @@ reg = <0x140000 0x0080000>; }; @@ -29,7 +29,7 @@ label = "Factory"; reg = <0x1c0000 0x0040000>; }; -@@ -648,3 +648,8 @@ +@@ -646,3 +646,8 @@ pinctrl-0 = <&watchdog_pins>; status = "okay"; }; diff --git a/target/linux/mediatek/patches-5.4/0990-gsw-rtl8367s-mt7622-support.patch b/target/linux/mediatek/patches-5.4/0990-gsw-rtl8367s-mt7622-support.patch index e4cd77bdc8..a3d49e903e 100644 --- a/target/linux/mediatek/patches-5.4/0990-gsw-rtl8367s-mt7622-support.patch +++ b/target/linux/mediatek/patches-5.4/0990-gsw-rtl8367s-mt7622-support.patch @@ -15,7 +15,7 @@ depends on HAS_IOMEM --- a/drivers/net/phy/Makefile +++ b/drivers/net/phy/Makefile -@@ -111,4 +111,5 @@ obj-$(CONFIG_TERANETICS_PHY) += teraneti +@@ -110,4 +110,5 @@ obj-$(CONFIG_TERANETICS_PHY) += teraneti obj-$(CONFIG_VITESSE_PHY) += vitesse.o obj-$(CONFIG_XILINX_GMII2RGMII) += xilinx_gmii2rgmii.o obj-$(CONFIG_MT753X_GSW) += mtk/mt753x/ diff --git a/target/linux/mediatek/patches-5.4/0993-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch b/target/linux/mediatek/patches-5.4/0993-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch index 3283746e30..cea83710b7 100644 --- a/target/linux/mediatek/patches-5.4/0993-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch +++ b/target/linux/mediatek/patches-5.4/0993-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch @@ -389,7 +389,7 @@ Signed-off-by: chuanjia.liu <Chuanjia.Liu@mediatek.com> <0 0 0 2 &pcie_intc1 1>, --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts -@@ -256,18 +256,16 @@ +@@ -254,18 +254,16 @@ }; }; diff --git a/target/linux/mediatek/patches-5.4/1003-dts-mt7622-rfb-change-to-ax-mtd-layout.patch b/target/linux/mediatek/patches-5.4/1003-dts-mt7622-rfb-change-to-ax-mtd-layout.patch index 817948986b..74a294f098 100644 --- a/target/linux/mediatek/patches-5.4/1003-dts-mt7622-rfb-change-to-ax-mtd-layout.patch +++ b/target/linux/mediatek/patches-5.4/1003-dts-mt7622-rfb-change-to-ax-mtd-layout.patch @@ -1,6 +1,6 @@ --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts -@@ -591,17 +591,17 @@ +@@ -589,17 +589,17 @@ factory: partition@1c0000 { label = "Factory"; diff --git a/target/linux/mvebu/patches-5.4/521-arm64-dts-marvell-espressobin-Add-ethernet-switch-al.patch b/target/linux/mvebu/patches-5.4/521-arm64-dts-marvell-espressobin-Add-ethernet-switch-al.patch index 61225387dd..927670d8b3 100644 --- a/target/linux/mvebu/patches-5.4/521-arm64-dts-marvell-espressobin-Add-ethernet-switch-al.patch +++ b/target/linux/mvebu/patches-5.4/521-arm64-dts-marvell-espressobin-Add-ethernet-switch-al.patch @@ -30,7 +30,6 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com> --- .../dts/marvell/armada-3720-espressobin-v7-emmc.dts | 10 ++++++++-- .../boot/dts/marvell/armada-3720-espressobin-v7.dts | 10 ++++++++-- - .../boot/dts/marvell/armada-3720-espressobin.dtsi | 12 ++++++++---- 3 files changed, 24 insertions(+), 8 deletions(-) --- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin-v7-emmc.dts @@ -87,48 +86,3 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com> reg = <3>; label = "wan"; phy-handle = <&switch0phy2>; ---- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts -+++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts -@@ -21,6 +21,10 @@ - - aliases { - ethernet0 = ð0; -+ /* for dsa slave device */ -+ ethernet1 = &switch0port1; -+ ethernet2 = &switch0port2; -+ ethernet3 = &switch0port3; - serial0 = &uart0; - serial1 = &uart1; - }; -@@ -147,7 +151,7 @@ - #address-cells = <1>; - #size-cells = <0>; - -- port@0 { -+ switch0port0: port@0 { - reg = <0>; - label = "cpu"; - ethernet = <ð0>; -@@ -158,19 +162,19 @@ - }; - }; - -- port@1 { -+ switch0port1: port@1 { - reg = <1>; - label = "wan"; - phy-handle = <&switch0phy0>; - }; - -- port@2 { -+ switch0port2: port@2 { - reg = <2>; - label = "lan0"; - phy-handle = <&switch0phy1>; - }; - -- port@3 { -+ switch0port3: port@3 { - reg = <3>; - label = "lan1"; - phy-handle = <&switch0phy2>; diff --git a/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch index 4b600d7e8a..f156e968af 100644 --- a/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch +++ b/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch @@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com> --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -4931,6 +4931,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -4930,6 +4930,7 @@ int spi_nor_scan(struct spi_nor *nor, co struct mtd_info *mtd = &nor->mtd; struct device_node *np = spi_nor_get_flash_node(nor); struct spi_nor_flash_parameter *params = &nor->params; @@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com> int ret; int i; -@@ -4993,7 +4994,12 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -4992,7 +4993,12 @@ int spi_nor_scan(struct spi_nor *nor, co /* Init flash parameters based on flash_info struct and SFDP */ spi_nor_init_params(nor); |