kernel: bump 5.4 to 5.4.77
authorJohn Audia <graysky@archlinux.us>
Wed, 11 Nov 2020 20:30:36 +0000 (15:30 -0500)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 18 Nov 2020 20:13:46 +0000 (21:13 +0100)
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>
39 files changed:
include/kernel-version.mk
target/linux/bcm27xx/patches-5.4/950-0095-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch
target/linux/bcm27xx/patches-5.4/950-0134-spi-spi-bcm2835-Re-enable-HW-CS.patch
target/linux/bcm27xx/patches-5.4/950-0135-spi-spi-bcm2835-Disable-forced-software-CS.patch
target/linux/bcm27xx/patches-5.4/950-0544-drm-vc4-drv-Support-BCM2711.patch
target/linux/generic/backport-5.4/744-v5.5-net-sfp-soft-status-and-control-support.patch
target/linux/generic/pending-5.4/465-m25p80-mx-disable-software-protection.patch
target/linux/generic/pending-5.4/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch
target/linux/generic/pending-5.4/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch
target/linux/generic/pending-5.4/481-mtd-spi-nor-rework-broken-flash-reset-support.patch
target/linux/generic/pending-5.4/754-net-sfp-fix-unbind.patch
target/linux/imx6/patches-5.4/006-v5.7-ARM-dts-imx6qdl-gw5910-add-CC1352-UART.patch
target/linux/imx6/patches-5.4/009-v5.8-ARM-dts-imx6qdl-gw5910-add-support-for-bcm4330-bt.patch
target/linux/imx6/patches-5.4/010-v5.8-ARM-dts-imx6qdl-gw5910-fix-wlan-regulator.patch
target/linux/ipq40xx/patches-5.4/700-net-add-qualcomm-mdio.patch
target/linux/ipq40xx/patches-5.4/705-net-add-qualcomm-ar40xx-phy.patch
target/linux/layerscape/patches-5.4/303-core-0002-drivers-base-add-sysfs-entries-for-suppliers-and-con.patch
target/linux/layerscape/patches-5.4/819-uart-0001-tty-serial-lpuart-add-power-domain-support.patch
target/linux/layerscape/patches-5.4/819-uart-0002-tty-serial-fsl_lpuart-add-modem-device-reset.patch
target/linux/layerscape/patches-5.4/819-uart-0003-tty-serial-fsl_lpuart-add-magic-SysRq-support.patch
target/linux/layerscape/patches-5.4/819-uart-0004-MLK-18137-fsl_lpuart-Fix-loopback-mode.patch
target/linux/layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch
target/linux/layerscape/patches-5.4/819-uart-0006-tty-serial-fsl_lpuart-enable-loopback-mode.patch
target/linux/layerscape/patches-5.4/819-uart-0007-MLK-15094-tty-serial-fsl_lpuart-check-dma_tx_in_prog.patch
target/linux/layerscape/patches-5.4/819-uart-0008-MLK-21445-serial-fsl_lpuart-do-HW-reset-for-communic.patch
target/linux/layerscape/patches-5.4/819-uart-0009-MLK-17133-02-tty-serial-lpuart-add-runtime-pm-suppor.patch
target/linux/layerscape/patches-5.4/819-uart-0010-tty-serial-lpuart-enable-wakeup-source-for-lpuart.patch
target/linux/layerscape/patches-5.4/819-uart-0011-serial-fsl_lpuart-enable-two-stop-bits.patch
target/linux/layerscape/patches-5.4/819-uart-0012-tty-serial-lpuart-add-LS1028A-support.patch [deleted file]
target/linux/layerscape/patches-5.4/819-uart-0013-LF-484-tty-serial-lpuart-support-UPIO_MEM32-for-lpua.patch
target/linux/mediatek/patches-5.4/0003-switch-add-mt7531.patch
target/linux/mediatek/patches-5.4/0005-dts-mt7622-add-gsw.patch
target/linux/mediatek/patches-5.4/0308-dts-mt7622-add-snand-support.patch
target/linux/mediatek/patches-5.4/0310-dts-add-wmac-support-for-mt7622-rfb1.patch
target/linux/mediatek/patches-5.4/0990-gsw-rtl8367s-mt7622-support.patch
target/linux/mediatek/patches-5.4/0993-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch
target/linux/mediatek/patches-5.4/1003-dts-mt7622-rfb-change-to-ax-mtd-layout.patch
target/linux/mvebu/patches-5.4/521-arm64-dts-marvell-espressobin-Add-ethernet-switch-al.patch
target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch

index 69dfaa54767f0f73f4ff93730bd882085518dba3..96daf1b105b5cfc2dc711910ef1e392a427f207d 100644 (file)
@@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
 endif
 
-LINUX_VERSION-5.4 = .75
+LINUX_VERSION-5.4 = .77
 
-LINUX_KERNEL_HASH-5.4.75 = d2466fd6eb5433e7bf287b617b11b2640c65a7ea93a57eb7a80d7f537cbc1470
+LINUX_KERNEL_HASH-5.4.77 = a3e03e6970240dddc8174bf9f49b56d774c40125eabe1582d2ebe85b01addbf7
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
index d09becc815621a6c47bed238aab9cd2eb81b5c6c..a9f3256b3226f3fb938f1e7e315669ab64b64c8c 100644 (file)
@@ -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,
index d8cac64e810e07f3040bbd57e1988e027d5dee55..06928cb19e57d27f6407122695c879a3dca5b998 100644 (file)
@@ -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;
index 92b23785718c486885276d6303d3a9c9db9aad98..ce44eed0c820d88fae4c784408e9eb594260780e 100644 (file)
@@ -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,
index 00bac3a2b93cae506266f169075b2e2d18e05f73..9a0f790ff4ff59a6609dab267103f8960ecc2df5 100644 (file)
@@ -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[] = {
index 6e3c87a7e4e9e2ccab14eaf88e2bbab477c3b826..abc9f65f09a3846f571304fc0cb02ae707cc11a8 100644 (file)
@@ -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;
index 24d2d4567d7ba727abd9c11b78d629b613e02bed..7c11ad356b93935f6dc94a417130fe2fcb87a467 100644 (file)
@@ -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 ||
index c5db43b5e632ca9d9b5c4d0550935f8ab2a57a1a..77b9b72b37849f3726440293a28a6179a771793e 100644 (file)
@@ -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 ||
index d3e587ff97dd5e29ead16eb7c37f5e701c7a2400..7773a8ec05a3dee22ec582e9bc158c15fa955c76 100644 (file)
@@ -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 = &params->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++;
        }
index b2f73a5cbd7dc70dee9756be7705fe4e103cbd78..8add1f7795326e8b4135538fee26bca6be984bd1 100644 (file)
@@ -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.
                 */
index d5f3645025d269e3ed1986cae14a7acdf4b5f994..8d98a5d7a1f3116c17d5fc86ea88f282f21cc37e 100644 (file)
@@ -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);
  
index 5873e926268eca3b100cca760859b8f3f59746ec..72a98a2b15715533f8d401fdefe97eeb1059d046 100644 (file)
@@ -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 @@
                >;
        };
  
index 6cbd6fdd036671c5d5d7825eb60d8c77e9690c55..545a6fddd5225a88944273378528365d517b4a03 100644 (file)
@@ -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 @@
                >;
        };
  
index c4cce19b93f83a2e2742390471bc1f1d2e5fd333..ce2fa2ee9049ffc737c0c978a7606588aa3504f6 100644 (file)
@@ -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>;
index 8786330d3bb1ad6191a7ae6cd975ee23656ab557..3345d84fb84532b70c7bcb808ca75d6261e8da11 100644 (file)
@@ -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
index 4cdeab637aa123f9d6435991e3963a7f3c68f47e..6f080892d55a8497adc0a0e280a438d69737fdf3 100644 (file)
@@ -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
index 1e45217307b4fafa923c77f0d9898a4fd1d64659..6307ba839c95d5b9895fff771417430c71f57fa0 100644 (file)
@@ -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;
  
index aa14f175003e8c1e04ca23faefef9899fd9ad127..ce93640b553df3717a9f5221dd9d5f05cf805838 100644 (file)
@@ -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;
  
index 9f409a1fabcdec35dac5ff48b23ad53126b92bd1..a287cd7f05b9f207ddb7a7c2d2b6bcd4bb845144 100644 (file)
@@ -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);
index bb94b024763b59a3a8adaef9fc5881f9955be0ea..dc2ace7be2e0868207dc8b1376638ef3772d59e0 100644 (file)
@@ -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);
index aab529fc7691f7cb7e6c9680fc1556328db38c36..f3ff33028113e64de2ad63b3e9a7d71eb9375e12 100644 (file)
@@ -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;
index d4034bb9dbccc16d5a8c819a76f3238770f534a1..6edcc398d032993ba9c78577a03c19ceb2a8b0b8 100644 (file)
@@ -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) {
index cfcb6e83fc1b2ca07f1f4c85b87340c0f391419f..303aa3b0116e641e44aa32c861ceac7724526734 100644 (file)
@@ -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);
index 58f44e86b08985431f79d67733963780712f2f4c..41271f9dfdd2df9a454d0f7bbff7b8479e6281d4 100644 (file)
@@ -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);
index edb0bd20cf2d6ecaaa3c19b58be805fe1eec288c..ab52567a3cff8a9677120568e069d85b50cd7396 100644 (file)
@@ -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;
  
index 7021a6e3c7c0de486be093c5fd4f4e292ae914a2..d819f4790a1a8f27dff48fe1325ed0168ade3a95 100644 (file)
@@ -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,
index 71c75584b81baab638f7b64f534b09d2125e1361..69dc1b465a04dd8f7281568588b219e74c2a1ed2 100644 (file)
@@ -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);
  };
  
index 3f92a1491ee368e549be721550e33c822b25e088..2d4c14922a8204146a6fc0cb94e9c1096d92df50 100644 (file)
@@ -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 (file)
index a4cb65c..0000000
+++ /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 */ }
index 125502ff9d081f5a9b424d09fa8c584bf9e09abd..4223d1e2f23803d6720225be113aae08e9ffdfe0 100644 (file)
@@ -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;
  
index 2512ed3142dafedb184a9256d9f6934ecc0779a5..6fae99c1f4e85321eed329a4d3bc0bb707f8c7f0 100644 (file)
@@ -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
index 6b89a39668f34bd86ac7f0239cad409fbc56b5d1..d40cbfb853ff9b100c3421211c4ec88fefd5e765 100644 (file)
        };
  
        reg_1p8v: regulator-1p8v {
-@@ -101,23 +115,82 @@
+@@ -101,23 +113,82 @@
  };
  
  &eth {
                };
        };
  };
-@@ -185,15 +258,28 @@
+@@ -185,15 +256,28 @@
  
  &pcie {
        pinctrl-names = "default";
        /* eMMC is shared pin with parallel NAND */
        emmc_pins_default: emmc-pins-default {
                mux {
-@@ -460,11 +546,11 @@
+@@ -460,11 +544,11 @@
  };
  
  &sata {
index 378ccb8338f1971b77f5204028678c6c645ff98f..b287780d6c1972f119d20d9adb8a33f231df1c2d 100644 (file)
@@ -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";
  };
  
index bf16062cb7c71c218b1e13dc0bff793f6dde1631..92296060c354b20c5b793948885c997fbac5e143 100644 (file)
@@ -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";
  };
index e4cd77bdc87700a05ce1b7c701a9e57744fac275..a3d49e903eb320ac2a937af8241dcae306957440 100644 (file)
@@ -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/
index 3283746e30aff19b55921cb99105bc7776b29017..cea83710b7e7482cda4d17815ea63b1878123832 100644 (file)
@@ -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 @@
        };
  };
  
index 817948986bc08880567cfb7ad11ac60b9bb1d751..74a294f098920113716a0dea5deefaadc7f0e413 100644 (file)
@@ -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";
index 61225387dd951940578c4b7fe5f7ae82c2e6cc39..927670d8b3009bf5a67f4410154d7f2b9afac037 100644 (file)
@@ -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 = &eth0;
-+              /* 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 = <&eth0>;
-@@ -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>;
index 4b600d7e8a6ab52d38c7b5b05056634d2ca8a181..f156e968af73ef0d45efab0cac0d6a48e68221cc 100644 (file)
@@ -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);