Refreshed all patches.
Altered patches:
- 080-sata_support.patch
Remove upstreamed:
- 034-v4.20-MIPS-BCM47XX-Enable-USB-power-on-Netgear-WNDR3400v3.patch
- 001-4.21-01-BCM63XX-fix-switch-core-reset-on-BCM6368.patch
- 073-qcom-ipq4019-fix-cpu0-s-qcom-saw2-reg-value.patch
Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
LINUX_VERSION-4.9 = .202
LINUX_VERSION-4.14 = .155
-LINUX_VERSION-4.19 = .84
+LINUX_VERSION-4.19 = .85
LINUX_KERNEL_HASH-4.9.202 = 8108ec1cd10fc40821c84e9f087dba10b1767aad66596f4a36925faef55e4ebf
LINUX_KERNEL_HASH-4.14.155 = 77d61979556b81c95b81452fa10e1fe9368cbe2f9f80a13e4669b0464722e481
-LINUX_KERNEL_HASH-4.19.84 = 868b4a92619cb00ab142a20a67f000525b9605820d1b66faa4a183133eac0660
+LINUX_KERNEL_HASH-4.19.85 = 7bf435970aeeafd46263f49730087a61c4858d8b8fc5a4002ceac971b45f4fb7
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
/* Device and char device-related information */
static DEFINE_IDA(gpio_ida);
static dev_t gpio_devt;
-@@ -2634,7 +2636,7 @@ int gpiod_direction_output(struct gpio_d
+@@ -2654,7 +2656,7 @@ int gpiod_direction_output(struct gpio_d
value = !!value;
/* GPIOs used for IRQs shall not be set as output */
gpiod_err(desc,
"%s: tried to set a GPIO tied to an IRQ as output\n",
__func__);
-@@ -3333,7 +3335,7 @@ int gpiochip_lock_as_irq(struct gpio_chi
+@@ -3353,7 +3355,7 @@ int gpiochip_lock_as_irq(struct gpio_chi
}
}
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
{
u32 *buf = kmalloc(sizeof(u32), GFP_KERNEL);
-@@ -3006,8 +3015,14 @@ static int lan78xx_bind(struct lan78xx_n
+@@ -3011,8 +3020,14 @@ static int lan78xx_bind(struct lan78xx_n
if (DEFAULT_RX_CSUM_ENABLE)
dev->net->features |= NETIF_F_RXCSUM;
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
{
u32 *buf = kmalloc(sizeof(u32), GFP_KERNEL);
-@@ -3819,7 +3824,12 @@ static int lan78xx_probe(struct usb_inte
+@@ -3824,7 +3829,12 @@ static int lan78xx_probe(struct usb_inte
dev->pipe_intr = usb_rcvintpipe(dev->udev,
dev->ep_intr->desc.bEndpointAddress &
USB_ENDPOINT_NUMBER_MASK);
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
-@@ -3253,7 +3253,7 @@ static int rx_submit(struct lan78xx_net
+@@ -3258,7 +3258,7 @@ static int rx_submit(struct lan78xx_net
size_t size = dev->rx_urb_size;
int ret = 0;
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
-@@ -286,6 +286,8 @@ int bcmgenet_mii_probe(struct net_device
+@@ -285,6 +285,8 @@ int bcmgenet_mii_probe(struct net_device
/* Communicate the integrated PHY revision */
if (priv->internal_phy)
phy_flags = priv->gphy_rev;
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
-@@ -3959,8 +3959,23 @@ struct gpio_desc *__must_check gpiod_get
+@@ -3979,8 +3979,23 @@ struct gpio_desc *__must_check gpiod_get
* the device name as label
*/
status = gpiod_request(desc, con_id ? con_id : devname);
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
-@@ -4033,6 +4033,8 @@ struct gpio_desc *gpiod_get_from_of_node
+@@ -4053,6 +4053,8 @@ struct gpio_desc *gpiod_get_from_of_node
transitory = flags & OF_GPIO_TRANSITORY;
ret = gpiod_request(desc, label);
+++ /dev/null
-From feef7918667b84f9d5653c501542dd8d84ae32af Mon Sep 17 00:00:00 2001
-From: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
-Date: Sun, 19 Aug 2018 22:20:23 +0300
-Subject: [PATCH] MIPS: BCM47XX: Enable USB power on Netgear WNDR3400v3
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Setting GPIO 21 high seems to be required to enable power to USB ports
-on the WNDR3400v3. As there is already similar code for WNR3500L,
-make the existing USB power GPIO code generic and use that.
-
-Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
-Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
-Signed-off-by: Paul Burton <paul.burton@mips.com>
-Patchwork: https://patchwork.linux-mips.org/patch/20259/
-Cc: Rafał Miłecki <zajec5@gmail.com>
-Cc: linux-mips@linux-mips.org
-Cc: linux-kernel@vger.kernel.org
----
- arch/mips/bcm47xx/workarounds.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
---- a/arch/mips/bcm47xx/workarounds.c
-+++ b/arch/mips/bcm47xx/workarounds.c
-@@ -5,9 +5,8 @@
- #include <bcm47xx_board.h>
- #include <bcm47xx.h>
-
--static void __init bcm47xx_workarounds_netgear_wnr3500l(void)
-+static void __init bcm47xx_workarounds_enable_usb_power(int usb_power)
- {
-- const int usb_power = 12;
- int err;
-
- err = gpio_request_one(usb_power, GPIOF_OUT_INIT_HIGH, "usb_power");
-@@ -23,7 +22,10 @@ void __init bcm47xx_workarounds(void)
-
- switch (board) {
- case BCM47XX_BOARD_NETGEAR_WNR3500L:
-- bcm47xx_workarounds_netgear_wnr3500l();
-+ bcm47xx_workarounds_enable_usb_power(12);
-+ break;
-+ case BCM47XX_BOARD_NETGEAR_WNDR3400_V3:
-+ bcm47xx_workarounds_enable_usb_power(21);
- break;
- default:
- /* No workaround(s) needed */
+++ /dev/null
-From f1af8bb8e0879a3c2d9679a7274c2774335e9876 Mon Sep 17 00:00:00 2001
-From: Jonas Gorski <jonas.gorski@gmail.com>
-Date: Wed, 14 Nov 2018 12:06:41 +0100
-Subject: [PATCH] MIPS: BCM63XX: fix switch core reset on BCM6368
-
-The Ethernet Switch core mask was set to 0, causing the switch core to
-be not reset on BCM6368 on boot. Provide the proper mask so the switch
-core gets reset to a known good state.
-
-Fixes: 799faa626c71 ("MIPS: BCM63XX: add core reset helper")
-Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
----
- arch/mips/bcm63xx/reset.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/mips/bcm63xx/reset.c
-+++ b/arch/mips/bcm63xx/reset.c
-@@ -120,7 +120,7 @@
- #define BCM6368_RESET_DSL 0
- #define BCM6368_RESET_SAR SOFTRESET_6368_SAR_MASK
- #define BCM6368_RESET_EPHY SOFTRESET_6368_EPHY_MASK
--#define BCM6368_RESET_ENETSW 0
-+#define BCM6368_RESET_ENETSW SOFTRESET_6368_ENETSW_MASK
- #define BCM6368_RESET_PCM SOFTRESET_6368_PCM_MASK
- #define BCM6368_RESET_MPI SOFTRESET_6368_MPI_MASK
- #define BCM6368_RESET_PCIE 0
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
-@@ -1633,7 +1633,7 @@ static int bcm_enet_change_mtu(struct ne
+@@ -1634,7 +1634,7 @@ static int bcm_enet_change_mtu(struct ne
return -EBUSY;
/* add ethernet header + vlan tag size */
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
-@@ -866,10 +866,8 @@ static int bcm_enet_open(struct net_devi
+@@ -867,10 +867,8 @@ static int bcm_enet_open(struct net_devi
struct bcm_enet_priv *priv;
struct sockaddr addr;
struct device *kdev;
void *p;
u32 val;
-@@ -877,40 +875,10 @@ static int bcm_enet_open(struct net_devi
+@@ -878,40 +876,10 @@ static int bcm_enet_open(struct net_devi
kdev = &priv->pdev->dev;
if (priv->has_phy) {
}
/* mask all interrupts and request them */
-@@ -920,7 +888,7 @@ static int bcm_enet_open(struct net_devi
+@@ -921,7 +889,7 @@ static int bcm_enet_open(struct net_devi
ret = request_irq(dev->irq, bcm_enet_isr_mac, 0, dev->name, dev);
if (ret)
ret = request_irq(priv->irq_rx, bcm_enet_isr_dma, 0,
dev->name, dev);
-@@ -1082,8 +1050,8 @@ static int bcm_enet_open(struct net_devi
+@@ -1083,8 +1051,8 @@ static int bcm_enet_open(struct net_devi
enet_dmac_writel(priv, priv->dma_chan_int_mask,
ENETDMAC_IRMASK, priv->tx_chan);
else
bcm_enet_adjust_link(dev);
-@@ -1124,10 +1092,6 @@ out_freeirq_rx:
+@@ -1125,10 +1093,6 @@ out_freeirq_rx:
out_freeirq:
free_irq(dev->irq, dev);
return ret;
}
-@@ -1232,10 +1196,6 @@ static int bcm_enet_stop(struct net_devi
+@@ -1233,10 +1197,6 @@ static int bcm_enet_stop(struct net_devi
free_irq(priv->irq_rx, dev);
free_irq(dev->irq, dev);
return 0;
}
-@@ -1801,14 +1761,47 @@ static int bcm_enet_probe(struct platfor
+@@ -1802,14 +1762,47 @@ static int bcm_enet_probe(struct platfor
/* do minimal hardware init to be able to probe mii bus */
bcm_enet_hw_preinit(priv);
}
bus = priv->mii_bus;
-@@ -1832,6 +1825,35 @@ static int bcm_enet_probe(struct platfor
+@@ -1833,6 +1826,35 @@ static int bcm_enet_probe(struct platfor
dev_err(&pdev->dev, "unable to register mdio bus\n");
goto out_free_mdio;
}
} else {
/* run platform code to initialize PHY device */
-@@ -1839,45 +1861,16 @@ static int bcm_enet_probe(struct platfor
+@@ -1840,45 +1862,16 @@ static int bcm_enet_probe(struct platfor
pd->mii_config(dev, 1, bcm_enet_mdio_read_mii,
bcm_enet_mdio_write_mii)) {
dev_err(&pdev->dev, "unable to configure mdio bus\n");
if (priv->mii_bus)
mdiobus_unregister(priv->mii_bus);
-@@ -1885,6 +1878,9 @@ out_free_mdio:
+@@ -1886,6 +1879,9 @@ out_free_mdio:
if (priv->mii_bus)
mdiobus_free(priv->mii_bus);
out_uninit_hw:
/* turn off mdc clock */
enet_writel(priv, 0, ENET_MIISC_REG);
-@@ -1915,6 +1911,7 @@ static int bcm_enet_remove(struct platfo
+@@ -1916,6 +1912,7 @@ static int bcm_enet_remove(struct platfo
enet_writel(priv, 0, ENET_MIISC_REG);
if (priv->has_phy) {
#define ENETSW_MDIOC_EXT_MASK (1 << 16)
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
-@@ -2184,6 +2184,18 @@ static int bcm_enetsw_open(struct net_de
+@@ -2185,6 +2185,18 @@ static int bcm_enetsw_open(struct net_de
priv->sw_port_link[i] = 0;
}
#include <bcm63xx_dev_enet.h>
#include "bcm63xx_enet.h"
-@@ -1931,7 +1932,8 @@ static int bcm_enet_remove(struct platfo
+@@ -1932,7 +1933,8 @@ static int bcm_enet_remove(struct platfo
return 0;
}
.probe = bcm_enet_probe,
.remove = bcm_enet_remove,
.driver = {
-@@ -1940,6 +1942,42 @@ struct platform_driver bcm63xx_enet_driv
+@@ -1941,6 +1943,42 @@ struct platform_driver bcm63xx_enet_driv
},
};
/*
* switch mii access callbacks
*/
-@@ -2196,29 +2234,6 @@ static int bcm_enetsw_open(struct net_de
+@@ -2197,29 +2235,6 @@ static int bcm_enetsw_open(struct net_de
enetsw_writeb(priv, rgmii_ctrl, ENETSW_RGMII_CTRL_REG(i));
}
/* initialize flow control buffer allocation */
enet_dma_writel(priv, ENETDMA_BUFALLOC_FORCE_MASK | 0,
ENETDMA_BUFALLOC_REG(priv->rx_chan));
-@@ -2674,6 +2689,9 @@ static int bcm_enetsw_probe(struct platf
+@@ -2675,6 +2690,9 @@ static int bcm_enetsw_probe(struct platf
struct bcm63xx_enetsw_platform_data *pd;
struct resource *res_mem;
int ret, irq_rx, irq_tx;
if (!bcm_enet_shared_base[0])
return -EPROBE_DEFER;
-@@ -2754,6 +2772,43 @@ static int bcm_enetsw_probe(struct platf
+@@ -2755,6 +2773,43 @@ static int bcm_enetsw_probe(struct platf
priv->pdev = pdev;
priv->net_dev = dev;
return 0;
out_disable_clk:
-@@ -2775,6 +2830,9 @@ static int bcm_enetsw_remove(struct plat
+@@ -2776,6 +2831,9 @@ static int bcm_enetsw_remove(struct plat
priv = netdev_priv(dev);
unregister_netdev(dev);
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
-@@ -2733,9 +2733,9 @@ static int bcm_enetsw_probe(struct platf
+@@ -2734,9 +2734,9 @@ static int bcm_enetsw_probe(struct platf
if (ret)
goto out;
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
-@@ -2231,6 +2231,10 @@ static int bcm_enetsw_open(struct net_de
+@@ -2232,6 +2232,10 @@ static int bcm_enetsw_open(struct net_de
rgmii_ctrl = enetsw_readb(priv, ENETSW_RGMII_CTRL_REG(i));
rgmii_ctrl |= ENETSW_RGMII_CTRL_GMII_CLK_EN;
--- a/drivers/ata/ahci_platform.c
+++ b/drivers/ata/ahci_platform.c
-@@ -37,12 +37,23 @@ static struct scsi_host_template ahci_pl
+@@ -44,11 +44,18 @@ static struct scsi_host_template ahci_pl
AHCI_SHT(DRV_NAME),
};
{
struct device *dev = &pdev->dev;
struct ahci_host_priv *hpriv;
-+ const struct ata_port_info *info = &ahci_port_info;
+- const struct ata_port_info *port;
++ const struct ata_port_info *port = &ahci_port_info;
int rc;
-+ if (IS_ENABLED(CONFIG_ARCH_CNS3XXX))
-+ info = &cns3xxx_port_info;
-+
hpriv = ahci_platform_get_resources(pdev,
- AHCI_PLATFORM_GET_RESETS);
- if (IS_ERR(hpriv))
+@@ -66,9 +73,14 @@ static int ahci_probe(struct platform_de
+ if (of_device_is_compatible(dev->of_node, "hisilicon,hisi-ahci"))
+ hpriv->flags |= AHCI_HFLAG_NO_FBS | AHCI_HFLAG_NO_NCQ;
+
+- port = acpi_device_get_match_data(dev);
+- if (!port)
+- port = &ahci_port_info;
++ if (IS_ENABLED(CONFIG_ARCH_CNS3XXX)) {
++ port = &cns3xxx_port_info;
++ }
++ else {
++ port = acpi_device_get_match_data(dev);
++ if (!port)
++ port = &ahci_port_info;
++ }
+
+ rc = ahci_platform_init_host(pdev, hpriv, port,
+ &ahci_platform_sht);
+MODULE_ALIAS("nf-flow-table-hw");
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
-@@ -5471,6 +5471,13 @@ static int nf_tables_flowtable_parse_hoo
+@@ -5473,6 +5473,13 @@ static int nf_tables_flowtable_parse_hoo
if (err < 0)
return err;
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
if (!ops)
return -ENOMEM;
-@@ -5602,10 +5609,19 @@ static int nf_tables_newflowtable(struct
+@@ -5604,10 +5611,19 @@ static int nf_tables_newflowtable(struct
}
flowtable->data.type = type;
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
flowtable);
if (err < 0)
-@@ -5731,7 +5747,8 @@ static int nf_tables_fill_flowtable_info
+@@ -5733,7 +5749,8 @@ static int nf_tables_fill_flowtable_info
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
+++ /dev/null
-From bd73a3dd257fb838bd456a18eeee0ef0224b7a40 Mon Sep 17 00:00:00 2001
-From: Christian Lamparter <chunkeey@gmail.com>
-Date: Wed, 25 Jul 2018 10:37:47 +0200
-Subject: [PATCH] ARM: dts: qcom: ipq4019: fix cpu0's qcom,saw2 reg value
-
-while compiling an ipq4019 target, dtc will complain:
-regulator@b089000 unit address format error, expected "2089000"
-
-The saw0 regulator reg value seems to be
-copied and pasted from qcom-ipq8064.dtsi.
-
-This patch fixes the reg value to match that of the
-unit address which in turn silences the warning.
-(There is no driver for qcom,saw2 right now.
-So this went unnoticed)
-
-Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
-Signed-off-by: John Crispin <john@phrozen.org>
-Signed-off-by: Andy Gross <andy.gross@linaro.org>
----
- arch/arm/boot/dts/qcom-ipq4019.dtsi | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
-+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi
-@@ -325,7 +325,7 @@
-
- saw0: regulator@b089000 {
- compatible = "qcom,saw2";
-- reg = <0x02089000 0x1000>, <0x0b009000 0x1000>;
-+ reg = <0x0b089000 0x1000>, <0x0b009000 0x1000>;
- regulator;
- };
-
return err;
}
-@@ -1125,34 +1126,6 @@ static int mtk_pcie_request_resources(st
+@@ -1127,34 +1128,6 @@ static int mtk_pcie_request_resources(st
return 0;
}
static int mtk_pcie_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
-@@ -1179,7 +1152,14 @@ static int mtk_pcie_probe(struct platfor
+@@ -1181,7 +1154,14 @@ static int mtk_pcie_probe(struct platfor
if (err)
goto put_resources;
if (err)
goto put_resources;
-@@ -1192,6 +1172,80 @@ put_resources:
+@@ -1194,6 +1174,80 @@ put_resources:
return err;
}
static const struct mtk_pcie_soc mtk_pcie_soc_v1 = {
.ops = &mtk_pcie_ops,
.startup = mtk_pcie_startup_port,
-@@ -1220,10 +1274,13 @@ static const struct of_device_id mtk_pci
+@@ -1222,10 +1276,13 @@ static const struct of_device_id mtk_pci
static struct platform_driver mtk_pcie_driver = {
.probe = mtk_pcie_probe,