diff options
69 files changed, 286 insertions, 284 deletions
diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 2e92bbf5fd..8890168e88 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -3,10 +3,10 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .43 -LINUX_VERSION-4.4 = .132 +LINUX_VERSION-4.4 = .135 LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c -LINUX_KERNEL_HASH-4.4.132 = c415b01c810ad88284f9ffaebe0526efce8b1643d930dac6d8ef6a55cf6e0634 +LINUX_KERNEL_HASH-4.4.135 = 03ccb008824e363d9f83245676b9e0602f604c880dd10577653f3328c37781dc ifdef KERNEL_PATCHVER LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) diff --git a/target/linux/apm821xx/patches-4.4/011-dmaengine-core-Introduce-new-universal-API-to-reques.patch b/target/linux/apm821xx/patches-4.4/011-dmaengine-core-Introduce-new-universal-API-to-reques.patch index 7a0e26f6a3..ca58c31bd1 100644 --- a/target/linux/apm821xx/patches-4.4/011-dmaengine-core-Introduce-new-universal-API-to-reques.patch +++ b/target/linux/apm821xx/patches-4.4/011-dmaengine-core-Introduce-new-universal-API-to-reques.patch @@ -283,7 +283,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com> dma_cap_mask_t cap_mask; unsigned short max_xor; unsigned short max_pq; -@@ -1140,9 +1168,11 @@ enum dma_status dma_wait_for_async_tx(st +@@ -1158,9 +1186,11 @@ enum dma_status dma_wait_for_async_tx(st void dma_issue_pending_all(void); struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param); @@ -297,7 +297,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com> void dma_release_channel(struct dma_chan *chan); int dma_get_slave_caps(struct dma_chan *chan, struct dma_slave_caps *caps); #else -@@ -1166,16 +1196,21 @@ static inline struct dma_chan *__dma_req +@@ -1184,16 +1214,21 @@ static inline struct dma_chan *__dma_req { return NULL; } @@ -324,7 +324,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com> static inline void dma_release_channel(struct dma_chan *chan) { } -@@ -1186,6 +1221,8 @@ static inline int dma_get_slave_caps(str +@@ -1204,6 +1239,8 @@ static inline int dma_get_slave_caps(str } #endif diff --git a/target/linux/apm821xx/patches-4.4/012-dmaengine-Add-transfer-termination-synchronization-s.patch b/target/linux/apm821xx/patches-4.4/012-dmaengine-Add-transfer-termination-synchronization-s.patch index 21efb046c2..e5df425947 100644 --- a/target/linux/apm821xx/patches-4.4/012-dmaengine-Add-transfer-termination-synchronization-s.patch +++ b/target/linux/apm821xx/patches-4.4/012-dmaengine-Add-transfer-termination-synchronization-s.patch @@ -179,7 +179,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com> enum dma_status (*device_tx_status)(struct dma_chan *chan, dma_cookie_t cookie, -@@ -856,6 +859,13 @@ static inline struct dma_async_tx_descri +@@ -874,6 +877,13 @@ static inline struct dma_async_tx_descri src_sg, src_nents, flags); } @@ -193,7 +193,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com> static inline int dmaengine_terminate_all(struct dma_chan *chan) { if (chan->device->device_terminate_all) -@@ -864,6 +874,86 @@ static inline int dmaengine_terminate_al +@@ -882,6 +892,86 @@ static inline int dmaengine_terminate_al return -ENOSYS; } diff --git a/target/linux/apm821xx/patches-4.4/040-backport_leds-convert-IDE-trigger-to-common-disk-trigger.patch b/target/linux/apm821xx/patches-4.4/040-backport_leds-convert-IDE-trigger-to-common-disk-trigger.patch index c753342d5b..d5eda621ea 100644 --- a/target/linux/apm821xx/patches-4.4/040-backport_leds-convert-IDE-trigger-to-common-disk-trigger.patch +++ b/target/linux/apm821xx/patches-4.4/040-backport_leds-convert-IDE-trigger-to-common-disk-trigger.patch @@ -47,7 +47,7 @@ Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com> #include <linux/pm_runtime.h> #include <linux/platform_device.h> -@@ -4939,6 +4940,9 @@ void ata_qc_complete(struct ata_queued_c +@@ -4945,6 +4946,9 @@ void ata_qc_complete(struct ata_queued_c { struct ata_port *ap = qc->ap; diff --git a/target/linux/ar71xx/patches-4.4/601-MIPS-ath79-add-more-register-defines.patch b/target/linux/ar71xx/patches-4.4/601-MIPS-ath79-add-more-register-defines.patch index 0126f6a3b9..9ece104c40 100644 --- a/target/linux/ar71xx/patches-4.4/601-MIPS-ath79-add-more-register-defines.patch +++ b/target/linux/ar71xx/patches-4.4/601-MIPS-ath79-add-more-register-defines.patch @@ -66,7 +66,7 @@ +#define AR71XX_ETH1_PLL_SHIFT 19 + #define AR724X_PLL_REG_CPU_CONFIG 0x00 - #define AR724X_PLL_REG_PCIE_CONFIG 0x18 + #define AR724X_PLL_REG_PCIE_CONFIG 0x10 @@ -186,6 +205,8 @@ #define AR724X_DDR_DIV_SHIFT 22 diff --git a/target/linux/arm64/config-4.4 b/target/linux/arm64/config-4.4 index d3f7f754d4..53793ef6b1 100644 --- a/target/linux/arm64/config-4.4 +++ b/target/linux/arm64/config-4.4 @@ -49,6 +49,7 @@ CONFIG_ARM64=y CONFIG_ARM64_4K_PAGES=y # CONFIG_ARM64_64K_PAGES is not set # CONFIG_ARM64_CRYPTO is not set +# CONFIG_ARM64_ERRATUM_1024718 is not set CONFIG_ARM64_ERRATUM_819472=y CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_826319=y diff --git a/target/linux/brcm2708/patches-4.4/0344-clk-Allow-clocks-to-be-marked-as-CRITICAL.patch b/target/linux/brcm2708/patches-4.4/0344-clk-Allow-clocks-to-be-marked-as-CRITICAL.patch index 959a0e1553..c5d6013cf8 100644 --- a/target/linux/brcm2708/patches-4.4/0344-clk-Allow-clocks-to-be-marked-as-CRITICAL.patch +++ b/target/linux/brcm2708/patches-4.4/0344-clk-Allow-clocks-to-be-marked-as-CRITICAL.patch @@ -19,7 +19,7 @@ Link: lkml.kernel.org/r/1455225554-13267-2-git-send-email-mturquette@baylibre.co --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c -@@ -2466,6 +2466,11 @@ static int __clk_init(struct device *dev +@@ -2469,6 +2469,11 @@ static int __clk_init(struct device *dev if (core->ops->init) core->ops->init(core->hw); diff --git a/target/linux/generic/patches-4.4/070-v4.6-0001-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch b/target/linux/generic/patches-4.4/070-v4.6-0001-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch index 94a37d4437..1847e3bfa6 100644 --- a/target/linux/generic/patches-4.4/070-v4.6-0001-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch +++ b/target/linux/generic/patches-4.4/070-v4.6-0001-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch @@ -36,7 +36,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> static bool bgmac_wait_value(struct bcma_device *core, u16 reg, u32 mask, u32 value, int timeout) { -@@ -991,11 +1002,9 @@ static void bgmac_mac_speed(struct bgmac +@@ -992,11 +1003,9 @@ static void bgmac_mac_speed(struct bgmac static void bgmac_miiconfig(struct bgmac *bgmac) { struct bcma_device *core = bgmac->core; @@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bcma_awrite32(core, BCMA_IOCTL, bcma_aread32(core, BCMA_IOCTL) | 0x40 | BGMAC_BCMA_IOCTL_SW_CLKEN); -@@ -1059,9 +1068,7 @@ static void bgmac_chip_reset(struct bgma +@@ -1060,9 +1069,7 @@ static void bgmac_chip_reset(struct bgma } /* Request Misc PLL for corerev > 2 */ @@ -60,7 +60,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bgmac_set(bgmac, BCMA_CLKCTLST, BGMAC_BCMA_CLKCTLST_MISC_PLL_REQ); bgmac_wait_value(bgmac->core, BCMA_CLKCTLST, -@@ -1197,8 +1204,7 @@ static void bgmac_enable(struct bgmac *b +@@ -1198,8 +1205,7 @@ static void bgmac_enable(struct bgmac *b break; } @@ -70,7 +70,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> rxq_ctl = bgmac_read(bgmac, BGMAC_RXQ_CTL); rxq_ctl &= ~BGMAC_RXQ_CTL_MDP_MASK; bp_clk = bcma_pmu_get_bus_clock(&bgmac->core->bus->drv_cc) / -@@ -1477,14 +1483,12 @@ static int bgmac_fixed_phy_register(stru +@@ -1478,14 +1484,12 @@ static int bgmac_fixed_phy_register(stru static int bgmac_mii_register(struct bgmac *bgmac) { @@ -86,7 +86,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> return bgmac_fixed_phy_register(bgmac); mii_bus = mdiobus_alloc(); -@@ -1555,7 +1559,6 @@ static void bgmac_mii_unregister(struct +@@ -1556,7 +1560,6 @@ static void bgmac_mii_unregister(struct /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipattach */ static int bgmac_probe(struct bcma_device *core) { @@ -94,7 +94,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> struct net_device *net_dev; struct bgmac *bgmac; struct ssb_sprom *sprom = &core->bus->sprom; -@@ -1641,8 +1644,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1642,8 +1645,7 @@ static int bgmac_probe(struct bcma_devic bgmac_chip_reset(bgmac); /* For Northstar, we have to take all GMAC core out of reset */ diff --git a/target/linux/generic/patches-4.4/070-v4.6-0002-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch b/target/linux/generic/patches-4.4/070-v4.6-0002-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch index 41e470b314..3c46af1f61 100644 --- a/target/linux/generic/patches-4.4/070-v4.6-0002-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch +++ b/target/linux/generic/patches-4.4/070-v4.6-0002-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch @@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> case BCMA_CHIP_ID_BCM53018: return true; default: -@@ -1056,8 +1057,9 @@ static void bgmac_chip_reset(struct bgma +@@ -1057,8 +1058,9 @@ static void bgmac_chip_reset(struct bgma (ci->id == BCMA_CHIP_ID_BCM53572 && ci->pkg == BCMA_PKG_ID_BCM47188)) iost &= ~BGMAC_BCMA_IOST_ATTACHED; diff --git a/target/linux/generic/patches-4.4/070-v4.8-0001-bgmac-Bind-net_device-with-backing-device-structure.patch b/target/linux/generic/patches-4.4/070-v4.8-0001-bgmac-Bind-net_device-with-backing-device-structure.patch index 8f6d9a9ee7..4377195b4a 100644 --- a/target/linux/generic/patches-4.4/070-v4.8-0001-bgmac-Bind-net_device-with-backing-device-structure.patch +++ b/target/linux/generic/patches-4.4/070-v4.8-0001-bgmac-Bind-net_device-with-backing-device-structure.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1604,6 +1604,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1605,6 +1605,7 @@ static int bgmac_probe(struct bcma_devic bgmac->net_dev = net_dev; bgmac->core = core; bcma_set_drvdata(core, bgmac); diff --git a/target/linux/generic/patches-4.4/070-v4.8-0002-bgmac-Add-support-for-ethtool-statistics.patch b/target/linux/generic/patches-4.4/070-v4.8-0002-bgmac-Add-support-for-ethtool-statistics.patch index 585282b0aa..777466acb3 100644 --- a/target/linux/generic/patches-4.4/070-v4.8-0002-bgmac-Add-support-for-ethtool-statistics.patch +++ b/target/linux/generic/patches-4.4/070-v4.8-0002-bgmac-Add-support-for-ethtool-statistics.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1387,6 +1387,127 @@ static const struct net_device_ops bgmac +@@ -1388,6 +1388,127 @@ static const struct net_device_ops bgmac * ethtool_ops **************************************************/ @@ -143,7 +143,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> static int bgmac_get_settings(struct net_device *net_dev, struct ethtool_cmd *cmd) { -@@ -1411,6 +1532,9 @@ static void bgmac_get_drvinfo(struct net +@@ -1412,6 +1533,9 @@ static void bgmac_get_drvinfo(struct net } static const struct ethtool_ops bgmac_ethtool_ops = { diff --git a/target/linux/generic/patches-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch b/target/linux/generic/patches-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch index 7ce6a09ec3..205c1237fb 100644 --- a/target/linux/generic/patches-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch +++ b/target/linux/generic/patches-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1324,7 +1324,7 @@ static int bgmac_open(struct net_device +@@ -1325,7 +1325,7 @@ static int bgmac_open(struct net_device } napi_enable(&bgmac->napi); @@ -26,7 +26,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> netif_start_queue(net_dev); -@@ -1337,7 +1337,7 @@ static int bgmac_stop(struct net_device +@@ -1338,7 +1338,7 @@ static int bgmac_stop(struct net_device netif_carrier_off(net_dev); @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> napi_disable(&bgmac->napi); bgmac_chip_intrs_off(bgmac); -@@ -1375,12 +1375,10 @@ static int bgmac_set_mac_address(struct +@@ -1376,12 +1376,10 @@ static int bgmac_set_mac_address(struct static int bgmac_ioctl(struct net_device *net_dev, struct ifreq *ifr, int cmd) { @@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } static const struct net_device_ops bgmac_netdev_ops = { -@@ -1523,7 +1521,7 @@ static int bgmac_get_settings(struct net +@@ -1524,7 +1522,7 @@ static int bgmac_get_settings(struct net { struct bgmac *bgmac = netdev_priv(net_dev); @@ -58,7 +58,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } static int bgmac_set_settings(struct net_device *net_dev, -@@ -1531,7 +1529,7 @@ static int bgmac_set_settings(struct net +@@ -1532,7 +1530,7 @@ static int bgmac_set_settings(struct net { struct bgmac *bgmac = netdev_priv(net_dev); @@ -67,7 +67,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } static void bgmac_get_drvinfo(struct net_device *net_dev, -@@ -1568,7 +1566,7 @@ static int bgmac_mii_write(struct mii_bu +@@ -1569,7 +1567,7 @@ static int bgmac_mii_write(struct mii_bu static void bgmac_adjust_link(struct net_device *net_dev) { struct bgmac *bgmac = netdev_priv(net_dev); @@ -76,7 +76,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bool update = false; if (phy_dev->link) { -@@ -1612,8 +1610,6 @@ static int bgmac_fixed_phy_register(stru +@@ -1613,8 +1611,6 @@ static int bgmac_fixed_phy_register(stru return err; } @@ -85,7 +85,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> return err; } -@@ -1666,7 +1662,6 @@ static int bgmac_mii_register(struct bgm +@@ -1667,7 +1663,6 @@ static int bgmac_mii_register(struct bgm err = PTR_ERR(phy_dev); goto err_unregister_bus; } diff --git a/target/linux/generic/patches-4.4/071-v4.8-0001-net-ethernet-bgmac-change-bgmac_-prints-to-dev_-prin.patch b/target/linux/generic/patches-4.4/071-v4.8-0001-net-ethernet-bgmac-change-bgmac_-prints-to-dev_-prin.patch index 3837b60943..096295d4cf 100644 --- a/target/linux/generic/patches-4.4/071-v4.8-0001-net-ethernet-bgmac-change-bgmac_-prints-to-dev_-prin.patch +++ b/target/linux/generic/patches-4.4/071-v4.8-0001-net-ethernet-bgmac-change-bgmac_-prints-to-dev_-prin.patch @@ -140,7 +140,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> put_page(virt_to_head_page(buf)); bgmac->net_dev->stats.rx_errors++; break; -@@ -644,7 +644,7 @@ static int bgmac_dma_alloc(struct bgmac +@@ -645,7 +645,7 @@ static int bgmac_dma_alloc(struct bgmac BUILD_BUG_ON(BGMAC_MAX_RX_RINGS > ARRAY_SIZE(ring_base)); if (!(bcma_aread32(bgmac->core, BCMA_IOST) & BCMA_IOST_DMA64)) { @@ -149,7 +149,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> return -ENOTSUPP; } -@@ -658,8 +658,8 @@ static int bgmac_dma_alloc(struct bgmac +@@ -659,8 +659,8 @@ static int bgmac_dma_alloc(struct bgmac &ring->dma_base, GFP_KERNEL); if (!ring->cpu_base) { @@ -160,7 +160,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> goto err_dma_free; } -@@ -683,8 +683,8 @@ static int bgmac_dma_alloc(struct bgmac +@@ -684,8 +684,8 @@ static int bgmac_dma_alloc(struct bgmac &ring->dma_base, GFP_KERNEL); if (!ring->cpu_base) { @@ -171,7 +171,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> err = -ENOMEM; goto err_dma_free; } -@@ -803,8 +803,8 @@ static u16 bgmac_phy_read(struct bgmac * +@@ -804,8 +804,8 @@ static u16 bgmac_phy_read(struct bgmac * bcma_write32(core, phy_access_addr, tmp); if (!bgmac_wait_value(core, phy_access_addr, BGMAC_PA_START, 0, 1000)) { @@ -182,7 +182,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> return 0xffff; } -@@ -836,7 +836,7 @@ static int bgmac_phy_write(struct bgmac +@@ -837,7 +837,7 @@ static int bgmac_phy_write(struct bgmac bgmac_write(bgmac, BGMAC_INT_STATUS, BGMAC_IS_MDIO); if (bgmac_read(bgmac, BGMAC_INT_STATUS) & BGMAC_IS_MDIO) @@ -191,7 +191,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> tmp = BGMAC_PA_START; tmp |= BGMAC_PA_WRITE; -@@ -846,8 +846,8 @@ static int bgmac_phy_write(struct bgmac +@@ -847,8 +847,8 @@ static int bgmac_phy_write(struct bgmac bcma_write32(core, phy_access_addr, tmp); if (!bgmac_wait_value(core, phy_access_addr, BGMAC_PA_START, 0, 1000)) { @@ -202,7 +202,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> return -ETIMEDOUT; } -@@ -900,7 +900,7 @@ static void bgmac_phy_reset(struct bgmac +@@ -901,7 +901,7 @@ static void bgmac_phy_reset(struct bgmac bgmac_phy_write(bgmac, bgmac->phyaddr, MII_BMCR, BMCR_RESET); udelay(100); if (bgmac_phy_read(bgmac, bgmac->phyaddr, MII_BMCR) & BMCR_RESET) @@ -211,7 +211,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bgmac_phy_init(bgmac); } -@@ -1001,7 +1001,8 @@ static void bgmac_mac_speed(struct bgmac +@@ -1002,7 +1002,8 @@ static void bgmac_mac_speed(struct bgmac set |= BGMAC_CMDCFG_ES_2500; break; default: @@ -221,7 +221,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } if (bgmac->mac_duplex == DUPLEX_HALF) -@@ -1100,8 +1101,8 @@ static void bgmac_chip_reset(struct bgma +@@ -1101,8 +1102,8 @@ static void bgmac_chip_reset(struct bgma if (bcm47xx_nvram_getenv("et_swtype", buf, sizeof(buf)) > 0) { if (kstrtou8(buf, 0, &et_swtype)) @@ -232,7 +232,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> et_swtype &= 0x0f; et_swtype <<= 4; sw_type = et_swtype; -@@ -1264,7 +1265,7 @@ static irqreturn_t bgmac_interrupt(int i +@@ -1265,7 +1266,7 @@ static irqreturn_t bgmac_interrupt(int i int_status &= ~(BGMAC_IS_TX0 | BGMAC_IS_RX); if (int_status) @@ -241,7 +241,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Disable new interrupts until handling existing ones */ bgmac_chip_intrs_off(bgmac); -@@ -1318,7 +1319,7 @@ static int bgmac_open(struct net_device +@@ -1319,7 +1320,7 @@ static int bgmac_open(struct net_device err = request_irq(bgmac->core->irq, bgmac_interrupt, IRQF_SHARED, KBUILD_MODNAME, net_dev); if (err < 0) { @@ -250,7 +250,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bgmac_dma_cleanup(bgmac); return err; } -@@ -1599,14 +1600,14 @@ static int bgmac_fixed_phy_register(stru +@@ -1600,14 +1601,14 @@ static int bgmac_fixed_phy_register(stru phy_dev = fixed_phy_register(PHY_POLL, &fphy_status, -1, NULL); if (!phy_dev || IS_ERR(phy_dev)) { @@ -267,7 +267,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> return err; } -@@ -1646,7 +1647,7 @@ static int bgmac_mii_register(struct bgm +@@ -1647,7 +1648,7 @@ static int bgmac_mii_register(struct bgm err = mdiobus_register(mii_bus); if (err) { @@ -276,7 +276,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> goto err_free_irq; } -@@ -1658,7 +1659,7 @@ static int bgmac_mii_register(struct bgm +@@ -1659,7 +1660,7 @@ static int bgmac_mii_register(struct bgm phy_dev = phy_connect(bgmac->net_dev, bus_id, &bgmac_adjust_link, PHY_INTERFACE_MODE_MII); if (IS_ERR(phy_dev)) { @@ -285,7 +285,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> err = PTR_ERR(phy_dev); goto err_unregister_bus; } -@@ -1707,7 +1708,8 @@ static int bgmac_probe(struct bcma_devic +@@ -1708,7 +1709,8 @@ static int bgmac_probe(struct bcma_devic mac = sprom->et2mac; break; default: @@ -295,7 +295,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> return -ENOTSUPP; } -@@ -1730,6 +1732,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1731,6 +1733,7 @@ static int bgmac_probe(struct bcma_devic net_dev->irq = core->irq; net_dev->ethtool_ops = &bgmac_ethtool_ops; bgmac = netdev_priv(net_dev); @@ -303,7 +303,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bgmac->net_dev = net_dev; bgmac->core = core; bcma_set_drvdata(core, bgmac); -@@ -1741,7 +1744,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1742,7 +1745,7 @@ static int bgmac_probe(struct bcma_devic /* On BCM4706 we need common core to access PHY */ if (core->id.id == BCMA_CORE_4706_MAC_GBIT && !core->bus->drv_gmac_cmn.core) { @@ -312,7 +312,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> err = -ENODEV; goto err_netdev_free; } -@@ -1760,15 +1763,15 @@ static int bgmac_probe(struct bcma_devic +@@ -1761,15 +1764,15 @@ static int bgmac_probe(struct bcma_devic } bgmac->phyaddr &= BGMAC_PHY_MASK; if (bgmac->phyaddr == BGMAC_PHY_MASK) { @@ -332,7 +332,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> err = -ENOTSUPP; goto err_netdev_free; } -@@ -1797,7 +1800,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1798,7 +1801,7 @@ static int bgmac_probe(struct bcma_devic err = bgmac_dma_alloc(bgmac); if (err) { @@ -341,7 +341,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> goto err_netdev_free; } -@@ -1811,16 +1814,16 @@ static int bgmac_probe(struct bcma_devic +@@ -1812,16 +1815,16 @@ static int bgmac_probe(struct bcma_devic bgmac->has_robosw = !!(core->bus->sprom.boardflags_lo & BGMAC_BFL_ENETROBO); if (bgmac->has_robosw) @@ -361,7 +361,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> goto err_dma_free; } -@@ -1830,7 +1833,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1831,7 +1834,7 @@ static int bgmac_probe(struct bcma_devic err = register_netdev(bgmac->net_dev); if (err) { diff --git a/target/linux/generic/patches-4.4/071-v4.8-0002-net-ethernet-bgmac-add-dma_dev-pointer.patch b/target/linux/generic/patches-4.4/071-v4.8-0002-net-ethernet-bgmac-add-dma_dev-pointer.patch index dd5b8772e3..63036926ee 100644 --- a/target/linux/generic/patches-4.4/071-v4.8-0002-net-ethernet-bgmac-add-dma_dev-pointer.patch +++ b/target/linux/generic/patches-4.4/071-v4.8-0002-net-ethernet-bgmac-add-dma_dev-pointer.patch @@ -65,7 +65,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> struct bgmac_dma_desc *dma_desc = ring->cpu_base; struct bgmac_slot_info *slot; int i; -@@ -573,7 +573,7 @@ static void bgmac_dma_tx_ring_free(struc +@@ -574,7 +574,7 @@ static void bgmac_dma_tx_ring_free(struc static void bgmac_dma_rx_ring_free(struct bgmac *bgmac, struct bgmac_dma_ring *ring) { @@ -74,7 +74,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> struct bgmac_slot_info *slot; int i; -@@ -594,7 +594,7 @@ static void bgmac_dma_ring_desc_free(str +@@ -595,7 +595,7 @@ static void bgmac_dma_ring_desc_free(str struct bgmac_dma_ring *ring, int num_slots) { @@ -83,7 +83,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> int size; if (!ring->cpu_base) -@@ -632,7 +632,7 @@ static void bgmac_dma_free(struct bgmac +@@ -633,7 +633,7 @@ static void bgmac_dma_free(struct bgmac static int bgmac_dma_alloc(struct bgmac *bgmac) { @@ -92,7 +92,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> struct bgmac_dma_ring *ring; static const u16 ring_base[] = { BGMAC_DMA_BASE0, BGMAC_DMA_BASE1, BGMAC_DMA_BASE2, BGMAC_DMA_BASE3, }; -@@ -1733,6 +1733,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1734,6 +1734,7 @@ static int bgmac_probe(struct bcma_devic net_dev->ethtool_ops = &bgmac_ethtool_ops; bgmac = netdev_priv(net_dev); bgmac->dev = &core->dev; diff --git a/target/linux/generic/patches-4.4/071-v4.8-0003-net-ethernet-bgmac-move-BCMA-MDIO-Phy-code-into-a-se.patch b/target/linux/generic/patches-4.4/071-v4.8-0003-net-ethernet-bgmac-move-BCMA-MDIO-Phy-code-into-a-se.patch index bc7b246cc1..bf0971f208 100644 --- a/target/linux/generic/patches-4.4/071-v4.8-0003-net-ethernet-bgmac-move-BCMA-MDIO-Phy-code-into-a-se.patch +++ b/target/linux/generic/patches-4.4/071-v4.8-0003-net-ethernet-bgmac-move-BCMA-MDIO-Phy-code-into-a-se.patch @@ -317,7 +317,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> +MODULE_LICENSE("GPL"); --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -759,150 +759,6 @@ error: +@@ -760,150 +760,6 @@ error: return err; } @@ -468,7 +468,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /************************************************** * Chip ops -@@ -1159,7 +1015,8 @@ static void bgmac_chip_reset(struct bgma +@@ -1160,7 +1016,8 @@ static void bgmac_chip_reset(struct bgma else bgmac_set(bgmac, BGMAC_PHY_CNTL, BGMAC_PC_MTE); bgmac_miiconfig(bgmac); @@ -478,7 +478,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> netdev_reset_queue(bgmac->net_dev); } -@@ -1553,17 +1410,6 @@ static const struct ethtool_ops bgmac_et +@@ -1554,17 +1411,6 @@ static const struct ethtool_ops bgmac_et * MII **************************************************/ @@ -496,7 +496,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> static void bgmac_adjust_link(struct net_device *net_dev) { struct bgmac *bgmac = netdev_priv(net_dev); -@@ -1588,7 +1434,7 @@ static void bgmac_adjust_link(struct net +@@ -1589,7 +1435,7 @@ static void bgmac_adjust_link(struct net } } @@ -505,7 +505,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> { struct fixed_phy_status fphy_status = { .link = 1, -@@ -1614,81 +1460,24 @@ static int bgmac_fixed_phy_register(stru +@@ -1615,81 +1461,24 @@ static int bgmac_fixed_phy_register(stru return err; } @@ -591,7 +591,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> static int bgmac_probe(struct bcma_device *core) { struct net_device *net_dev; -@@ -1809,9 +1598,6 @@ static int bgmac_probe(struct bcma_devic +@@ -1810,9 +1599,6 @@ static int bgmac_probe(struct bcma_devic if (bcm47xx_nvram_getenv("et0_no_txint", NULL, 0) == 0) bgmac->int_mask &= ~BGMAC_IS_TX_MASK; @@ -601,7 +601,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bgmac->has_robosw = !!(core->bus->sprom.boardflags_lo & BGMAC_BFL_ENETROBO); if (bgmac->has_robosw) -@@ -1822,10 +1608,25 @@ static int bgmac_probe(struct bcma_devic +@@ -1823,10 +1609,25 @@ static int bgmac_probe(struct bcma_devic netif_napi_add(net_dev, &bgmac->napi, bgmac_poll, BGMAC_WEIGHT); @@ -629,7 +629,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } net_dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; -@@ -1835,18 +1636,19 @@ static int bgmac_probe(struct bcma_devic +@@ -1836,18 +1637,19 @@ static int bgmac_probe(struct bcma_devic err = register_netdev(bgmac->net_dev); if (err) { dev_err(bgmac->dev, "Cannot register net device\n"); @@ -652,7 +652,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> err_netdev_free: bcma_set_drvdata(core, NULL); free_netdev(net_dev); -@@ -1859,7 +1661,8 @@ static void bgmac_remove(struct bcma_dev +@@ -1860,7 +1662,8 @@ static void bgmac_remove(struct bcma_dev struct bgmac *bgmac = bcma_get_drvdata(core); unregister_netdev(bgmac->net_dev); diff --git a/target/linux/generic/patches-4.4/071-v4.8-0004-net-ethernet-bgmac-convert-to-feature-flags.patch b/target/linux/generic/patches-4.4/071-v4.8-0004-net-ethernet-bgmac-convert-to-feature-flags.patch index 0f627919d0..8904e7e283 100644 --- a/target/linux/generic/patches-4.4/071-v4.8-0004-net-ethernet-bgmac-convert-to-feature-flags.patch +++ b/target/linux/generic/patches-4.4/071-v4.8-0004-net-ethernet-bgmac-convert-to-feature-flags.patch @@ -41,7 +41,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> ctl &= ~BGMAC_DMA_RX_BL_MASK; ctl |= BGMAC_DMA_RX_BL_128 << BGMAC_DMA_RX_BL_SHIFT; -@@ -772,14 +772,20 @@ static void bgmac_cmdcfg_maskset(struct +@@ -773,14 +773,20 @@ static void bgmac_cmdcfg_maskset(struct { u32 cmdcfg = bgmac_read(bgmac, BGMAC_CMDCFG); u32 new_val = (cmdcfg & mask) | set; @@ -64,7 +64,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> udelay(2); } -@@ -808,7 +814,7 @@ static void bgmac_chip_stats_update(stru +@@ -809,7 +815,7 @@ static void bgmac_chip_stats_update(stru { int i; @@ -73,7 +73,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> for (i = 0; i < BGMAC_NUM_MIB_TX_REGS; i++) bgmac->mib_tx_regs[i] = bgmac_read(bgmac, -@@ -827,7 +833,7 @@ static void bgmac_clear_mib(struct bgmac +@@ -828,7 +834,7 @@ static void bgmac_clear_mib(struct bgmac { int i; @@ -82,7 +82,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> return; bgmac_set(bgmac, BGMAC_DEV_CTL, BGMAC_DC_MROR); -@@ -870,9 +876,8 @@ static void bgmac_mac_speed(struct bgmac +@@ -871,9 +877,8 @@ static void bgmac_mac_speed(struct bgmac static void bgmac_miiconfig(struct bgmac *bgmac) { struct bcma_device *core = bgmac->core; @@ -93,7 +93,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bcma_awrite32(core, BCMA_IOCTL, bcma_aread32(core, BCMA_IOCTL) | 0x40 | BGMAC_BCMA_IOCTL_SW_CLKEN); -@@ -880,6 +885,8 @@ static void bgmac_miiconfig(struct bgmac +@@ -881,6 +886,8 @@ static void bgmac_miiconfig(struct bgmac bgmac->mac_duplex = DUPLEX_FULL; bgmac_mac_speed(bgmac); } else { @@ -102,7 +102,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> imode = (bgmac_read(bgmac, BGMAC_DEV_STATUS) & BGMAC_DS_MM_MASK) >> BGMAC_DS_MM_SHIFT; if (imode == 0 || imode == 1) { -@@ -894,9 +901,7 @@ static void bgmac_miiconfig(struct bgmac +@@ -895,9 +902,7 @@ static void bgmac_miiconfig(struct bgmac static void bgmac_chip_reset(struct bgmac *bgmac) { struct bcma_device *core = bgmac->core; @@ -113,7 +113,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> u32 iost; int i; -@@ -919,15 +924,12 @@ static void bgmac_chip_reset(struct bgma +@@ -920,15 +925,12 @@ static void bgmac_chip_reset(struct bgma } iost = bcma_aread32(core, BCMA_IOST); @@ -132,7 +132,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> if (iost & BGMAC_BCMA_IOST_ATTACHED) { flags = BGMAC_BCMA_IOCTL_SW_CLKEN; if (!bgmac->has_robosw) -@@ -937,7 +939,7 @@ static void bgmac_chip_reset(struct bgma +@@ -938,7 +940,7 @@ static void bgmac_chip_reset(struct bgma } /* Request Misc PLL for corerev > 2 */ @@ -141,7 +141,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bgmac_set(bgmac, BCMA_CLKCTLST, BGMAC_BCMA_CLKCTLST_MISC_PLL_REQ); bgmac_wait_value(bgmac->core, BCMA_CLKCTLST, -@@ -946,9 +948,7 @@ static void bgmac_chip_reset(struct bgma +@@ -947,9 +949,7 @@ static void bgmac_chip_reset(struct bgma 1000); } @@ -152,7 +152,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> struct bcma_drv_cc *cc = &bgmac->core->bus->drv_cc; u8 et_swtype = 0; u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY | -@@ -962,11 +962,9 @@ static void bgmac_chip_reset(struct bgma +@@ -963,11 +963,9 @@ static void bgmac_chip_reset(struct bgma et_swtype &= 0x0f; et_swtype <<= 4; sw_type = et_swtype; @@ -166,7 +166,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> sw_type = BGMAC_CHIPCTL_1_IF_TYPE_RGMII | BGMAC_CHIPCTL_1_SW_TYPE_RGMII; } -@@ -986,6 +984,11 @@ static void bgmac_chip_reset(struct bgma +@@ -987,6 +985,11 @@ static void bgmac_chip_reset(struct bgma * BGMAC_CMDCFG is read _after_ putting chip in a reset. So it has to * be keps until taking MAC out of the reset. */ @@ -178,7 +178,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bgmac_cmdcfg_maskset(bgmac, ~(BGMAC_CMDCFG_TE | BGMAC_CMDCFG_RE | -@@ -1003,13 +1006,13 @@ static void bgmac_chip_reset(struct bgma +@@ -1004,13 +1007,13 @@ static void bgmac_chip_reset(struct bgma BGMAC_CMDCFG_PROM | BGMAC_CMDCFG_NLC | BGMAC_CMDCFG_CFE | @@ -194,7 +194,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bcma_maskset32(bgmac->cmn, BCMA_GMAC_CMN_PHY_CTL, ~0, BCMA_GMAC_CMN_PC_MTE); else -@@ -1035,46 +1038,48 @@ static void bgmac_chip_intrs_off(struct +@@ -1036,46 +1039,48 @@ static void bgmac_chip_intrs_off(struct /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/gmac_enable */ static void bgmac_enable(struct bgmac *bgmac) { @@ -263,7 +263,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> rxq_ctl = bgmac_read(bgmac, BGMAC_RXQ_CTL); rxq_ctl &= ~BGMAC_RXQ_CTL_MDP_MASK; bp_clk = bcma_pmu_get_bus_clock(&bgmac->core->bus->drv_cc) / -@@ -1606,6 +1611,74 @@ static int bgmac_probe(struct bcma_devic +@@ -1607,6 +1612,74 @@ static int bgmac_probe(struct bcma_devic if (core->bus->sprom.boardflags_lo & BGMAC_BFL_ENETADM) dev_warn(bgmac->dev, "Support for ADMtek ethernet switch not implemented\n"); diff --git a/target/linux/generic/patches-4.4/071-v4.8-0005-net-ethernet-bgmac-Add-platform-device-support.patch b/target/linux/generic/patches-4.4/071-v4.8-0005-net-ethernet-bgmac-Add-platform-device-support.patch index 5755184949..aabe39df43 100644 --- a/target/linux/generic/patches-4.4/071-v4.8-0005-net-ethernet-bgmac-Add-platform-device-support.patch +++ b/target/linux/generic/patches-4.4/071-v4.8-0005-net-ethernet-bgmac-Add-platform-device-support.patch @@ -689,7 +689,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> ring->mmio_base + BGMAC_DMA_RX_STATUS, BGMAC_DMA_RX_STAT, BGMAC_DMA_RX_STAT_DISABLED, 10000)) -@@ -643,7 +619,7 @@ static int bgmac_dma_alloc(struct bgmac +@@ -644,7 +620,7 @@ static int bgmac_dma_alloc(struct bgmac BUILD_BUG_ON(BGMAC_MAX_TX_RINGS > ARRAY_SIZE(ring_base)); BUILD_BUG_ON(BGMAC_MAX_RX_RINGS > ARRAY_SIZE(ring_base)); @@ -698,7 +698,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> dev_err(bgmac->dev, "Core does not report 64-bit DMA\n"); return -ENOTSUPP; } -@@ -875,12 +851,10 @@ static void bgmac_mac_speed(struct bgmac +@@ -876,12 +852,10 @@ static void bgmac_mac_speed(struct bgmac static void bgmac_miiconfig(struct bgmac *bgmac) { @@ -714,7 +714,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bgmac->mac_speed = SPEED_2500; bgmac->mac_duplex = DUPLEX_FULL; bgmac_mac_speed(bgmac); -@@ -900,12 +874,11 @@ static void bgmac_miiconfig(struct bgmac +@@ -901,12 +875,11 @@ static void bgmac_miiconfig(struct bgmac /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipreset */ static void bgmac_chip_reset(struct bgmac *bgmac) { @@ -728,7 +728,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> if (!bgmac->stats_grabbed) { /* bgmac_chip_stats_update(bgmac); */ bgmac->stats_grabbed = true; -@@ -923,7 +896,7 @@ static void bgmac_chip_reset(struct bgma +@@ -924,7 +897,7 @@ static void bgmac_chip_reset(struct bgma /* TODO: Clear software multicast filter list */ } @@ -737,7 +737,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> if (bgmac->feature_flags & BGMAC_FEAT_IOST_ATTACHED) iost &= ~BGMAC_BCMA_IOST_ATTACHED; -@@ -935,21 +908,20 @@ static void bgmac_chip_reset(struct bgma +@@ -936,21 +909,20 @@ static void bgmac_chip_reset(struct bgma if (!bgmac->has_robosw) flags |= BGMAC_BCMA_IOCTL_SW_RESET; } @@ -761,7 +761,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> u8 et_swtype = 0; u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY | BGMAC_CHIPCTL_1_IF_TYPE_MII; -@@ -968,16 +940,15 @@ static void bgmac_chip_reset(struct bgma +@@ -969,16 +941,15 @@ static void bgmac_chip_reset(struct bgma sw_type = BGMAC_CHIPCTL_1_IF_TYPE_RGMII | BGMAC_CHIPCTL_1_SW_TYPE_RGMII; } @@ -784,7 +784,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/gmac_reset * Specs don't say about using BGMAC_CMDCFG_SR, but in this routine -@@ -1013,8 +984,8 @@ static void bgmac_chip_reset(struct bgma +@@ -1014,8 +985,8 @@ static void bgmac_chip_reset(struct bgma bgmac_clear_mib(bgmac); if (bgmac->feature_flags & BGMAC_FEAT_CMN_PHY_CTL) @@ -795,7 +795,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> else bgmac_set(bgmac, BGMAC_PHY_CNTL, BGMAC_PC_MTE); bgmac_miiconfig(bgmac); -@@ -1059,8 +1030,8 @@ static void bgmac_enable(struct bgmac *b +@@ -1060,8 +1031,8 @@ static void bgmac_enable(struct bgmac *b if (bgmac->feature_flags & BGMAC_FEAT_CLKCTLST || mode != 0) bgmac_set(bgmac, BCMA_CLKCTLST, BCMA_CLKCTLST_FORCEHT); if (bgmac->feature_flags & BGMAC_FEAT_CLKCTLST && mode == 2) @@ -806,7 +806,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> if (bgmac->feature_flags & (BGMAC_FEAT_FLW_CTRL1 | BGMAC_FEAT_FLW_CTRL2)) { -@@ -1082,8 +1053,7 @@ static void bgmac_enable(struct bgmac *b +@@ -1083,8 +1054,7 @@ static void bgmac_enable(struct bgmac *b rxq_ctl = bgmac_read(bgmac, BGMAC_RXQ_CTL); rxq_ctl &= ~BGMAC_RXQ_CTL_MDP_MASK; @@ -816,7 +816,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mdp = (bp_clk * 128 / 1000) - 3; rxq_ctl |= (mdp << BGMAC_RXQ_CTL_MDP_SHIFT); bgmac_write(bgmac, BGMAC_RXQ_CTL, rxq_ctl); -@@ -1178,7 +1148,7 @@ static int bgmac_open(struct net_device +@@ -1179,7 +1149,7 @@ static int bgmac_open(struct net_device /* Specs say about reclaiming rings here, but we do that in DMA init */ bgmac_chip_init(bgmac); @@ -825,7 +825,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> KBUILD_MODNAME, net_dev); if (err < 0) { dev_err(bgmac->dev, "IRQ request error: %d!\n", err); -@@ -1204,7 +1174,7 @@ static int bgmac_stop(struct net_device +@@ -1205,7 +1175,7 @@ static int bgmac_stop(struct net_device napi_disable(&bgmac->napi); bgmac_chip_intrs_off(bgmac); @@ -834,7 +834,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bgmac_chip_reset(bgmac); bgmac_dma_cleanup(bgmac); -@@ -1399,7 +1369,7 @@ static void bgmac_get_drvinfo(struct net +@@ -1400,7 +1370,7 @@ static void bgmac_get_drvinfo(struct net struct ethtool_drvinfo *info) { strlcpy(info->driver, KBUILD_MODNAME, sizeof(info->driver)); @@ -843,7 +843,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } static const struct ethtool_ops bgmac_ethtool_ops = { -@@ -1483,116 +1453,41 @@ static int bgmac_phy_connect(struct bgma +@@ -1484,116 +1454,41 @@ static int bgmac_phy_connect(struct bgma return 0; } @@ -976,7 +976,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> err = bgmac_dma_alloc(bgmac); if (err) { dev_err(bgmac->dev, "Unable to alloc memory for DMA\n"); -@@ -1603,103 +1498,15 @@ static int bgmac_probe(struct bcma_devic +@@ -1604,103 +1499,15 @@ static int bgmac_probe(struct bcma_devic if (bcm47xx_nvram_getenv("et0_no_txint", NULL, 0) == 0) bgmac->int_mask &= ~BGMAC_IS_TX_MASK; @@ -1081,7 +1081,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } net_dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; -@@ -1718,56 +1525,24 @@ static int bgmac_probe(struct bcma_devic +@@ -1719,56 +1526,24 @@ static int bgmac_probe(struct bcma_devic err_phy_disconnect: phy_disconnect(net_dev->phydev); diff --git a/target/linux/generic/patches-4.4/071-v4.9-0001-net-bgmac-support-Ethernet-core-on-BCM53573-SoCs.patch b/target/linux/generic/patches-4.4/071-v4.9-0001-net-bgmac-support-Ethernet-core-on-BCM53573-SoCs.patch index 82d3fe4d6d..b1e4a7ce94 100644 --- a/target/linux/generic/patches-4.4/071-v4.9-0001-net-bgmac-support-Ethernet-core-on-BCM53573-SoCs.patch +++ b/target/linux/generic/patches-4.4/071-v4.9-0001-net-bgmac-support-Ethernet-core-on-BCM53573-SoCs.patch @@ -75,7 +75,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK; --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -943,6 +943,27 @@ static void bgmac_chip_reset(struct bgma +@@ -944,6 +944,27 @@ static void bgmac_chip_reset(struct bgma bgmac_cco_ctl_maskset(bgmac, 1, ~(BGMAC_CHIPCTL_1_IF_TYPE_MASK | BGMAC_CHIPCTL_1_SW_TYPE_MASK), sw_type); @@ -103,7 +103,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } if (iost & BGMAC_BCMA_IOST_ATTACHED && !bgmac->has_robosw) -@@ -1486,6 +1507,10 @@ int bgmac_enet_probe(struct bgmac *info) +@@ -1487,6 +1508,10 @@ int bgmac_enet_probe(struct bgmac *info) */ bgmac_clk_enable(bgmac, 0); diff --git a/target/linux/generic/patches-4.4/071-v4.9-0002-net-bgmac-make-it-clear-when-setting-interface-type-.patch b/target/linux/generic/patches-4.4/071-v4.9-0002-net-bgmac-make-it-clear-when-setting-interface-type-.patch index 272ec5c3f3..b0092f48ff 100644 --- a/target/linux/generic/patches-4.4/071-v4.9-0002-net-bgmac-make-it-clear-when-setting-interface-type-.patch +++ b/target/linux/generic/patches-4.4/071-v4.9-0002-net-bgmac-make-it-clear-when-setting-interface-type-.patch @@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -935,7 +935,8 @@ static void bgmac_chip_reset(struct bgma +@@ -936,7 +936,8 @@ static void bgmac_chip_reset(struct bgma et_swtype <<= 4; sw_type = et_swtype; } else if (bgmac->feature_flags & BGMAC_FEAT_SW_TYPE_EPHYRMII) { diff --git a/target/linux/generic/patches-4.4/071-v4.9-0003-net-bgmac-Fix-errant-feature-flag-check.patch b/target/linux/generic/patches-4.4/071-v4.9-0003-net-bgmac-Fix-errant-feature-flag-check.patch index 830d8ccde4..2fcee207c0 100644 --- a/target/linux/generic/patches-4.4/071-v4.9-0003-net-bgmac-Fix-errant-feature-flag-check.patch +++ b/target/linux/generic/patches-4.4/071-v4.9-0003-net-bgmac-Fix-errant-feature-flag-check.patch @@ -22,7 +22,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1049,7 +1049,7 @@ static void bgmac_enable(struct bgmac *b +@@ -1050,7 +1050,7 @@ static void bgmac_enable(struct bgmac *b mode = (bgmac_read(bgmac, BGMAC_DEV_STATUS) & BGMAC_DS_MM_MASK) >> BGMAC_DS_MM_SHIFT; diff --git a/target/linux/generic/patches-4.4/071-v4.9-0004-net-bgmac-fix-spelling-mistake-connecton-connection.patch b/target/linux/generic/patches-4.4/071-v4.9-0004-net-bgmac-fix-spelling-mistake-connecton-connection.patch index 5721abcf95..ccd1e9782b 100644 --- a/target/linux/generic/patches-4.4/071-v4.9-0004-net-bgmac-fix-spelling-mistake-connecton-connection.patch +++ b/target/linux/generic/patches-4.4/071-v4.9-0004-net-bgmac-fix-spelling-mistake-connecton-connection.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1468,7 +1468,7 @@ static int bgmac_phy_connect(struct bgma +@@ -1469,7 +1469,7 @@ static int bgmac_phy_connect(struct bgma phy_dev = phy_connect(bgmac->net_dev, bus_id, &bgmac_adjust_link, PHY_INTERFACE_MODE_MII); if (IS_ERR(phy_dev)) { diff --git a/target/linux/generic/patches-4.4/071-v4.9-0005-net-bgmac-fix-reversed-checks-for-clock-control-flag.patch b/target/linux/generic/patches-4.4/071-v4.9-0005-net-bgmac-fix-reversed-checks-for-clock-control-flag.patch index e9bf06c870..aec57a956e 100644 --- a/target/linux/generic/patches-4.4/071-v4.9-0005-net-bgmac-fix-reversed-checks-for-clock-control-flag.patch +++ b/target/linux/generic/patches-4.4/071-v4.9-0005-net-bgmac-fix-reversed-checks-for-clock-control-flag.patch @@ -21,7 +21,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1049,9 +1049,9 @@ static void bgmac_enable(struct bgmac *b +@@ -1050,9 +1050,9 @@ static void bgmac_enable(struct bgmac *b mode = (bgmac_read(bgmac, BGMAC_DEV_STATUS) & BGMAC_DS_MM_MASK) >> BGMAC_DS_MM_SHIFT; diff --git a/target/linux/generic/patches-4.4/073-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch b/target/linux/generic/patches-4.4/073-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch index 544a074a78..956f8adfbb 100644 --- a/target/linux/generic/patches-4.4/073-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch +++ b/target/linux/generic/patches-4.4/073-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch @@ -68,7 +68,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1475,22 +1475,32 @@ static int bgmac_phy_connect(struct bgma +@@ -1476,22 +1476,32 @@ static int bgmac_phy_connect(struct bgma return 0; } @@ -106,7 +106,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> net_dev->irq = bgmac->irq; SET_NETDEV_DEV(net_dev, bgmac->dev); -@@ -1517,7 +1527,7 @@ int bgmac_enet_probe(struct bgmac *info) +@@ -1518,7 +1528,7 @@ int bgmac_enet_probe(struct bgmac *info) err = bgmac_dma_alloc(bgmac); if (err) { dev_err(bgmac->dev, "Unable to alloc memory for DMA\n"); @@ -115,7 +115,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } bgmac->int_mask = BGMAC_IS_ERRMASK | BGMAC_IS_RX | BGMAC_IS_TX_MASK; -@@ -1553,8 +1563,7 @@ err_phy_disconnect: +@@ -1554,8 +1564,7 @@ err_phy_disconnect: phy_disconnect(net_dev->phydev); err_dma_free: bgmac_dma_free(bgmac); diff --git a/target/linux/generic/patches-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch b/target/linux/generic/patches-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch index 0408353138..b0cb2099b2 100644 --- a/target/linux/generic/patches-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch +++ b/target/linux/generic/patches-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch @@ -36,7 +36,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> dmam_alloc_coherent() --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c -@@ -2595,6 +2595,22 @@ fail_out: +@@ -2598,6 +2598,22 @@ fail_out: } EXPORT_SYMBOL_GPL(clk_register); @@ -59,7 +59,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /* Free memory allocated for a clock. */ static void __clk_release(struct kref *ref) { -@@ -2696,11 +2712,26 @@ void clk_unregister(struct clk *clk) +@@ -2699,11 +2715,26 @@ void clk_unregister(struct clk *clk) } EXPORT_SYMBOL_GPL(clk_unregister); @@ -86,7 +86,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /** * devm_clk_register - resource managed clk_register() * @dev: device that is registering this clock -@@ -2731,6 +2762,36 @@ struct clk *devm_clk_register(struct dev +@@ -2734,6 +2765,36 @@ struct clk *devm_clk_register(struct dev } EXPORT_SYMBOL_GPL(devm_clk_register); @@ -123,7 +123,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> static int devm_clk_match(struct device *dev, void *res, void *data) { struct clk *c = res; -@@ -2739,6 +2800,15 @@ static int devm_clk_match(struct device +@@ -2742,6 +2803,15 @@ static int devm_clk_match(struct device return c == data; } @@ -139,7 +139,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /** * devm_clk_unregister - resource managed clk_unregister() * @clk: clock to unregister -@@ -2753,6 +2823,22 @@ void devm_clk_unregister(struct device * +@@ -2756,6 +2826,22 @@ void devm_clk_unregister(struct device * } EXPORT_SYMBOL_GPL(devm_clk_unregister); diff --git a/target/linux/generic/patches-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch b/target/linux/generic/patches-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch index 0bcb5bb805..983cf14aec 100644 --- a/target/linux/generic/patches-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch +++ b/target/linux/generic/patches-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch @@ -30,7 +30,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c -@@ -3001,6 +3001,7 @@ struct of_clk_provider { +@@ -3004,6 +3004,7 @@ struct of_clk_provider { struct device_node *node; struct clk *(*get)(struct of_phandle_args *clkspec, void *data); @@ -38,7 +38,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> void *data; }; -@@ -3017,6 +3018,12 @@ struct clk *of_clk_src_simple_get(struct +@@ -3020,6 +3021,12 @@ struct clk *of_clk_src_simple_get(struct } EXPORT_SYMBOL_GPL(of_clk_src_simple_get); @@ -51,7 +51,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> struct clk *of_clk_src_onecell_get(struct of_phandle_args *clkspec, void *data) { struct clk_onecell_data *clk_data = data; -@@ -3031,6 +3038,21 @@ struct clk *of_clk_src_onecell_get(struc +@@ -3034,6 +3041,21 @@ struct clk *of_clk_src_onecell_get(struc } EXPORT_SYMBOL_GPL(of_clk_src_onecell_get); @@ -73,7 +73,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> /** * of_clk_add_provider() - Register a clock provider for a node * @np: Device node pointer associated with clock provider -@@ -3067,6 +3089,41 @@ int of_clk_add_provider(struct device_no +@@ -3070,6 +3092,41 @@ int of_clk_add_provider(struct device_no EXPORT_SYMBOL_GPL(of_clk_add_provider); /** @@ -115,7 +115,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> * of_clk_del_provider() - Remove a previously registered clock provider * @np: Device node pointer associated with clock provider */ -@@ -3087,11 +3144,32 @@ void of_clk_del_provider(struct device_n +@@ -3090,11 +3147,32 @@ void of_clk_del_provider(struct device_n } EXPORT_SYMBOL_GPL(of_clk_del_provider); @@ -148,7 +148,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> if (!clkspec) return ERR_PTR(-EINVAL); -@@ -3100,10 +3178,9 @@ struct clk *__of_clk_get_from_provider(s +@@ -3103,10 +3181,9 @@ struct clk *__of_clk_get_from_provider(s mutex_lock(&of_clk_mutex); list_for_each_entry(provider, &of_clk_providers, link) { if (provider->node == clkspec->np) diff --git a/target/linux/generic/patches-4.4/099-0007-qmi_wwan-add-support-for-Quectel-EC21-and-EC25.patch b/target/linux/generic/patches-4.4/099-0007-qmi_wwan-add-support-for-Quectel-EC21-and-EC25.patch index 3dad08008b..5940ac4994 100644 --- a/target/linux/generic/patches-4.4/099-0007-qmi_wwan-add-support-for-Quectel-EC21-and-EC25.patch +++ b/target/linux/generic/patches-4.4/099-0007-qmi_wwan-add-support-for-Quectel-EC21-and-EC25.patch @@ -82,8 +82,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Gobi 1000 QMI/wwan interface number is 3 according to qcserial */ #define QMI_GOBI1K_DEVICE(vend, prod) \ QMI_FIXED_INTF(vend, prod, 3) -@@ -909,6 +933,8 @@ static const struct usb_device_id produc - {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */ +@@ -914,6 +938,8 @@ static const struct usb_device_id produc + {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */ {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */ {QMI_FIXED_INTF(0x1e0e, 0x9001, 5)}, /* SIMCom 7230E */ + {QMI_QUIRK_SET_DTR(0x2c7c, 0x0125, 4)}, /* Quectel EC25, EC20 R2.0 Mini PCIe */ diff --git a/target/linux/generic/patches-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch b/target/linux/generic/patches-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch index b7ff845343..3b640c7073 100644 --- a/target/linux/generic/patches-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch +++ b/target/linux/generic/patches-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> .get_acl = jffs2_get_acl, .set_acl = jffs2_set_acl, .setattr = jffs2_setattr, -@@ -754,8 +754,27 @@ static int jffs2_mknod (struct inode *di +@@ -750,8 +750,27 @@ static int jffs2_mknod (struct inode *di return ret; } @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> { int ret; struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb); -@@ -763,6 +782,9 @@ static int jffs2_rename (struct inode *o +@@ -759,6 +778,9 @@ static int jffs2_rename (struct inode *o uint8_t type; uint32_t now; @@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /* The VFS will check for us and prevent trying to rename a * file over a directory and vice versa, but if it's a directory, * the VFS can't check whether the victim is empty. The filesystem -@@ -826,9 +848,14 @@ static int jffs2_rename (struct inode *o +@@ -822,9 +844,14 @@ static int jffs2_rename (struct inode *o if (d_is_dir(old_dentry) && !victim_f) inc_nlink(new_dir_i); diff --git a/target/linux/generic/patches-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch b/target/linux/generic/patches-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch index 37eb073df9..ac231272e2 100644 --- a/target/linux/generic/patches-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch +++ b/target/linux/generic/patches-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch @@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/fs/jffs2/dir.c +++ b/fs/jffs2/dir.c -@@ -779,18 +779,31 @@ static int jffs2_rename (struct inode *o +@@ -775,18 +775,31 @@ static int jffs2_rename (struct inode *o int ret; struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb); struct jffs2_inode_info *victim_f = NULL; @@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> victim_f = JFFS2_INODE_INFO(d_inode(new_dentry)); if (d_is_dir(new_dentry)) { struct jffs2_full_dirent *fd; -@@ -825,7 +838,7 @@ static int jffs2_rename (struct inode *o +@@ -821,7 +834,7 @@ static int jffs2_rename (struct inode *o if (ret) return ret; @@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /* There was a victim. Kill it off nicely */ if (d_is_dir(new_dentry)) clear_nlink(d_inode(new_dentry)); -@@ -845,12 +858,18 @@ static int jffs2_rename (struct inode *o +@@ -841,12 +854,18 @@ static int jffs2_rename (struct inode *o /* If it was a directory we moved, and there was no victim, increase i_nlink on its new parent */ @@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> else /* Unlink the original */ ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i), -@@ -882,7 +901,7 @@ static int jffs2_rename (struct inode *o +@@ -878,7 +897,7 @@ static int jffs2_rename (struct inode *o return ret; } diff --git a/target/linux/generic/patches-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch b/target/linux/generic/patches-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch index 9065369040..4edc16eb7f 100644 --- a/target/linux/generic/patches-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch +++ b/target/linux/generic/patches-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch @@ -24,7 +24,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> /* * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble -@@ -135,11 +136,13 @@ +@@ -136,11 +137,13 @@ * This is an Ethernet frame header. */ diff --git a/target/linux/generic/patches-4.4/630-packet_socket_type.patch b/target/linux/generic/patches-4.4/630-packet_socket_type.patch index f3fe51fc8e..dcd9928e7a 100644 --- a/target/linux/generic/patches-4.4/630-packet_socket_type.patch +++ b/target/linux/generic/patches-4.4/630-packet_socket_type.patch @@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3135,6 +3137,7 @@ static int packet_create(struct net *net +@@ -3137,6 +3139,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3793,6 +3796,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3795,6 +3798,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> default: return -ENOPROTOOPT; } -@@ -3845,6 +3858,13 @@ static int packet_getsockopt(struct sock +@@ -3847,6 +3860,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch b/target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch index b3cb087235..df11a7e7f7 100644 --- a/target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch +++ b/target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch @@ -12,7 +12,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> #include <linux/bcm47xx_nvram.h> #include "bgmac.h" -@@ -1403,6 +1404,17 @@ static const struct ethtool_ops bgmac_et +@@ -1404,6 +1405,17 @@ static const struct ethtool_ops bgmac_et .get_drvinfo = bgmac_get_drvinfo, }; @@ -30,7 +30,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> /************************************************** * MII **************************************************/ -@@ -1549,6 +1561,14 @@ int bgmac_enet_probe(struct bgmac *bgmac +@@ -1550,6 +1562,14 @@ int bgmac_enet_probe(struct bgmac *bgmac net_dev->hw_features = net_dev->features; net_dev->vlan_features = net_dev->features; @@ -45,7 +45,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> err = register_netdev(bgmac->net_dev); if (err) { dev_err(bgmac->dev, "Cannot register net device\n"); -@@ -1571,6 +1591,10 @@ EXPORT_SYMBOL_GPL(bgmac_enet_probe); +@@ -1572,6 +1592,10 @@ EXPORT_SYMBOL_GPL(bgmac_enet_probe); void bgmac_enet_remove(struct bgmac *bgmac) { diff --git a/target/linux/generic/patches-4.4/834-ledtrig-libata.patch b/target/linux/generic/patches-4.4/834-ledtrig-libata.patch index fd804cae9a..ddac711bbd 100644 --- a/target/linux/generic/patches-4.4/834-ledtrig-libata.patch +++ b/target/linux/generic/patches-4.4/834-ledtrig-libata.patch @@ -69,7 +69,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> /** * ata_build_rw_tf - Build ATA taskfile for given read/write request * @tf: Target ATA taskfile -@@ -4805,6 +4818,9 @@ struct ata_queued_cmd *ata_qc_new_init(s +@@ -4811,6 +4824,9 @@ struct ata_queued_cmd *ata_qc_new_init(s if (tag < 0) return NULL; } @@ -79,7 +79,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> qc = __ata_qc_from_tag(ap, tag); qc->tag = tag; -@@ -5701,6 +5717,9 @@ struct ata_port *ata_port_alloc(struct a +@@ -5707,6 +5723,9 @@ struct ata_port *ata_port_alloc(struct a ap->stats.unhandled_irq = 1; ap->stats.idle_irq = 1; #endif @@ -89,7 +89,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> ata_sff_port_init(ap); return ap; -@@ -5722,6 +5741,12 @@ static void ata_host_release(struct devi +@@ -5728,6 +5747,12 @@ static void ata_host_release(struct devi kfree(ap->pmp_link); kfree(ap->slave_link); @@ -102,7 +102,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> kfree(ap); host->ports[i] = NULL; } -@@ -6168,7 +6193,23 @@ int ata_host_register(struct ata_host *h +@@ -6174,7 +6199,23 @@ int ata_host_register(struct ata_host *h host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->local_port_no = i + 1; } diff --git a/target/linux/generic/patches-4.4/901-debloat_sock_diag.patch b/target/linux/generic/patches-4.4/901-debloat_sock_diag.patch index 4733d1b79c..b304e141b9 100644 --- a/target/linux/generic/patches-4.4/901-debloat_sock_diag.patch +++ b/target/linux/generic/patches-4.4/901-debloat_sock_diag.patch @@ -30,7 +30,7 @@ static void __sk_free(struct sock *sk) { +#ifdef CONFIG_SOCK_DIAG - if (unlikely(sock_diag_has_destroy_listeners(sk) && sk->sk_net_refcnt)) + if (unlikely(sk->sk_net_refcnt && sock_diag_has_destroy_listeners(sk))) sock_diag_broadcast_destroy(sk); else +#endif diff --git a/target/linux/ipq806x/patches-4.4/096-04-usb-dwc3-DWC_usb31-controller-check.patch b/target/linux/ipq806x/patches-4.4/096-04-usb-dwc3-DWC_usb31-controller-check.patch index b6f583053f..d522bb7e8d 100644 --- a/target/linux/ipq806x/patches-4.4/096-04-usb-dwc3-DWC_usb31-controller-check.patch +++ b/target/linux/ipq806x/patches-4.4/096-04-usb-dwc3-DWC_usb31-controller-check.patch @@ -13,7 +13,7 @@ Signed-off-by: Felipe Balbi <balbi@kernel.org> --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h -@@ -1019,6 +1019,12 @@ struct dwc3_gadget_ep_cmd_params { +@@ -1021,6 +1021,12 @@ struct dwc3_gadget_ep_cmd_params { void dwc3_set_mode(struct dwc3 *dwc, u32 mode); int dwc3_gadget_resize_tx_fifos(struct dwc3 *dwc); diff --git a/target/linux/ipq806x/patches-4.4/096-05-usb-dwc3-Update-register-fields-for-SuperSpeedPlus.patch b/target/linux/ipq806x/patches-4.4/096-05-usb-dwc3-Update-register-fields-for-SuperSpeedPlus.patch index 264893d53d..0030446eab 100644 --- a/target/linux/ipq806x/patches-4.4/096-05-usb-dwc3-Update-register-fields-for-SuperSpeedPlus.patch +++ b/target/linux/ipq806x/patches-4.4/096-05-usb-dwc3-Update-register-fields-for-SuperSpeedPlus.patch @@ -14,7 +14,7 @@ Signed-off-by: Felipe Balbi <balbi@kernel.org> --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h -@@ -220,7 +220,8 @@ +@@ -222,7 +222,8 @@ /* Global HWPARAMS3 Register */ #define DWC3_GHWPARAMS3_SSPHY_IFC(n) ((n) & 3) #define DWC3_GHWPARAMS3_SSPHY_IFC_DIS 0 @@ -24,7 +24,7 @@ Signed-off-by: Felipe Balbi <balbi@kernel.org> #define DWC3_GHWPARAMS3_HSPHY_IFC(n) (((n) & (3 << 2)) >> 2) #define DWC3_GHWPARAMS3_HSPHY_IFC_DIS 0 #define DWC3_GHWPARAMS3_HSPHY_IFC_UTMI 1 -@@ -246,6 +247,7 @@ +@@ -248,6 +249,7 @@ #define DWC3_DCFG_DEVADDR_MASK DWC3_DCFG_DEVADDR(0x7f) #define DWC3_DCFG_SPEED_MASK (7 << 0) @@ -32,7 +32,7 @@ Signed-off-by: Felipe Balbi <balbi@kernel.org> #define DWC3_DCFG_SUPERSPEED (4 << 0) #define DWC3_DCFG_HIGHSPEED (0 << 0) #define DWC3_DCFG_FULLSPEED2 (1 << 0) -@@ -336,6 +338,7 @@ +@@ -338,6 +340,7 @@ #define DWC3_DSTS_CONNECTSPD (7 << 0) diff --git a/target/linux/ipq806x/patches-4.4/096-07-usb-dwc3-drop-FIFO-resizing-logic.patch b/target/linux/ipq806x/patches-4.4/096-07-usb-dwc3-drop-FIFO-resizing-logic.patch index 132d131dfb..963a02af14 100644 --- a/target/linux/ipq806x/patches-4.4/096-07-usb-dwc3-drop-FIFO-resizing-logic.patch +++ b/target/linux/ipq806x/patches-4.4/096-07-usb-dwc3-drop-FIFO-resizing-logic.patch @@ -82,7 +82,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h -@@ -705,9 +705,7 @@ struct dwc3_scratchpad_array { +@@ -707,9 +707,7 @@ struct dwc3_scratchpad_array { * 0 - utmi_sleep_n * 1 - utmi_l1_suspend_n * @is_fpga: true when we are using the FPGA board @@ -92,7 +92,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> * @setup_packet_pending: true when there's a Setup Packet in FIFO. Workaround * @start_config_issued: true when StartConfig command has been issued * @three_stage_setup: set if we perform a three phase setup -@@ -850,9 +848,7 @@ struct dwc3 { +@@ -852,9 +850,7 @@ struct dwc3 { unsigned has_lpm_erratum:1; unsigned is_utmi_l1_suspend:1; unsigned is_fpga:1; @@ -102,7 +102,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> unsigned setup_packet_pending:1; unsigned three_stage_setup:1; unsigned usb3_lpm_capable:1; -@@ -1020,7 +1016,6 @@ struct dwc3_gadget_ep_cmd_params { +@@ -1022,7 +1018,6 @@ struct dwc3_gadget_ep_cmd_params { /* prototypes */ void dwc3_set_mode(struct dwc3 *dwc, u32 mode); diff --git a/target/linux/ipq806x/patches-4.4/096-08-usb-dwc3-remove-num_event_buffers.patch b/target/linux/ipq806x/patches-4.4/096-08-usb-dwc3-remove-num_event_buffers.patch index 36298ed2a9..5f989bdc06 100644 --- a/target/linux/ipq806x/patches-4.4/096-08-usb-dwc3-remove-num_event_buffers.patch +++ b/target/linux/ipq806x/patches-4.4/096-08-usb-dwc3-remove-num_event_buffers.patch @@ -143,7 +143,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> static int dwc3_alloc_scratch_buffers(struct dwc3 *dwc) --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h -@@ -663,7 +663,6 @@ struct dwc3_scratchpad_array { +@@ -665,7 +665,6 @@ struct dwc3_scratchpad_array { * @regs: base address for our registers * @regs_size: address space size * @nr_scratch: number of scratch buffers @@ -151,7 +151,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> * @u1u2: only used on revisions <1.83a for workaround * @maximum_speed: maximum speed requested (mainly for testing purposes) * @revision: revision register contents -@@ -773,7 +772,6 @@ struct dwc3 { +@@ -775,7 +774,6 @@ struct dwc3 { u32 gctl; u32 nr_scratch; diff --git a/target/linux/ipq806x/patches-4.4/096-09-usb-dwc3-drop-ev_buffs-array.patch b/target/linux/ipq806x/patches-4.4/096-09-usb-dwc3-drop-ev_buffs-array.patch index e2aa2a18b9..fef5c68a01 100644 --- a/target/linux/ipq806x/patches-4.4/096-09-usb-dwc3-drop-ev_buffs-array.patch +++ b/target/linux/ipq806x/patches-4.4/096-09-usb-dwc3-drop-ev_buffs-array.patch @@ -65,7 +65,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h -@@ -748,7 +748,7 @@ struct dwc3 { +@@ -750,7 +750,7 @@ struct dwc3 { struct platform_device *xhci; struct resource xhci_resources[DWC3_XHCI_RESOURCES_NUM]; diff --git a/target/linux/layerscape/64b/config-default b/target/linux/layerscape/64b/config-default index 960b0770e4..cc1d5eb16c 100644 --- a/target/linux/layerscape/64b/config-default +++ b/target/linux/layerscape/64b/config-default @@ -35,6 +35,7 @@ CONFIG_ARM64=y CONFIG_ARM64_4K_PAGES=y # CONFIG_ARM64_64K_PAGES is not set # CONFIG_ARM64_CRYPTO is not set +# CONFIG_ARM64_ERRATUM_1024718 is not set CONFIG_ARM64_ERRATUM_819472=y CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_826319=y diff --git a/target/linux/layerscape/patches-4.4/8138-pci-layerscape-add-MSI-interrupt-support.patch b/target/linux/layerscape/patches-4.4/8138-pci-layerscape-add-MSI-interrupt-support.patch index 906d336d38..4466b10566 100644 --- a/target/linux/layerscape/patches-4.4/8138-pci-layerscape-add-MSI-interrupt-support.patch +++ b/target/linux/layerscape/patches-4.4/8138-pci-layerscape-add-MSI-interrupt-support.patch @@ -204,7 +204,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> } } -@@ -3672,11 +3674,12 @@ static void quirk_fixed_dma_alias(struct +@@ -3677,11 +3679,12 @@ static void quirk_fixed_dma_alias(struct id = pci_match_id(fixed_dma_alias_tbl, dev); if (id) { diff --git a/target/linux/layerscape/patches-4.4/8236-clk-add-API-of-clks.patch b/target/linux/layerscape/patches-4.4/8236-clk-add-API-of-clks.patch index ce8b518303..095fa9eb1d 100644 --- a/target/linux/layerscape/patches-4.4/8236-clk-add-API-of-clks.patch +++ b/target/linux/layerscape/patches-4.4/8236-clk-add-API-of-clks.patch @@ -32,7 +32,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com> struct clk_hw * clk_hw_get_parent_by_index(const struct clk_hw *hw, unsigned int index) { -@@ -2033,6 +2046,12 @@ static const struct file_operations clk_ +@@ -2036,6 +2049,12 @@ static const struct file_operations clk_ .release = single_release, }; diff --git a/target/linux/mvebu/patches-4.4/030-mvneta-consolidate-autoneg-enabling.patch b/target/linux/mvebu/patches-4.4/030-mvneta-consolidate-autoneg-enabling.patch index fbee3d2887..1811e6920f 100644 --- a/target/linux/mvebu/patches-4.4/030-mvneta-consolidate-autoneg-enabling.patch +++ b/target/linux/mvebu/patches-4.4/030-mvneta-consolidate-autoneg-enabling.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -1071,15 +1071,28 @@ static void mvneta_defaults_set(struct m +@@ -1072,15 +1072,28 @@ static void mvneta_defaults_set(struct m MVNETA_GMAC_AN_SPEED_EN | MVNETA_GMAC_AN_DUPLEX_EN; mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val); @@ -43,7 +43,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } mvneta_set_ucast_table(pp, -1); -@@ -3232,9 +3245,6 @@ static int mvneta_port_power_up(struct m +@@ -3233,9 +3246,6 @@ static int mvneta_port_power_up(struct m return -EINVAL; } diff --git a/target/linux/mvebu/patches-4.4/031-mvneta-implement-ethtool-autonegotiation-control.patch b/target/linux/mvebu/patches-4.4/031-mvneta-implement-ethtool-autonegotiation-control.patch index 3154d7cfbe..2037a139c4 100644 --- a/target/linux/mvebu/patches-4.4/031-mvneta-implement-ethtool-autonegotiation-control.patch +++ b/target/linux/mvebu/patches-4.4/031-mvneta-implement-ethtool-autonegotiation-control.patch @@ -32,7 +32,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> u64 ethtool_stats[ARRAY_SIZE(mvneta_statistics)]; }; -@@ -977,6 +977,44 @@ static void mvneta_set_other_mcast_table +@@ -978,6 +978,44 @@ static void mvneta_set_other_mcast_table mvreg_write(pp, MVNETA_DA_FILT_OTH_MCAST + offset, val); } @@ -77,7 +77,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* This method sets defaults to the NETA port: * Clears interrupt Cause and Mask registers. * Clears all MAC tables. -@@ -1062,39 +1100,7 @@ static void mvneta_defaults_set(struct m +@@ -1063,39 +1101,7 @@ static void mvneta_defaults_set(struct m val &= ~MVNETA_PHY_POLLING_ENABLE; mvreg_write(pp, MVNETA_UNIT_CONTROL, val); @@ -118,7 +118,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvneta_set_ucast_table(pp, -1); mvneta_set_special_mcast_table(pp, -1); mvneta_set_other_mcast_table(pp, -1); -@@ -2958,10 +2964,43 @@ int mvneta_ethtool_get_settings(struct n +@@ -2959,10 +2965,43 @@ int mvneta_ethtool_get_settings(struct n int mvneta_ethtool_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) { struct mvneta_port *pp = netdev_priv(dev); diff --git a/target/linux/mvebu/patches-4.4/032-net-mvneta-Make-the-default-queue-related-for-each-p.patch b/target/linux/mvebu/patches-4.4/032-net-mvneta-Make-the-default-queue-related-for-each-p.patch index 3be47abc8a..f02f05b77c 100644 --- a/target/linux/mvebu/patches-4.4/032-net-mvneta-Make-the-default-queue-related-for-each-p.patch +++ b/target/linux/mvebu/patches-4.4/032-net-mvneta-Make-the-default-queue-related-for-each-p.patch @@ -19,16 +19,16 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Core clock */ struct clk *clk; -@@ -819,7 +820,7 @@ static void mvneta_port_up(struct mvneta - mvreg_write(pp, MVNETA_TXQ_CMD, q_map); +@@ -820,7 +821,7 @@ static void mvneta_port_up(struct mvneta + q_map = 0; /* Enable all initialized RXQs. */ - mvreg_write(pp, MVNETA_RXQ_CMD, BIT(rxq_def)); + mvreg_write(pp, MVNETA_RXQ_CMD, BIT(pp->rxq_def)); } /* Stop the Ethernet port activity */ -@@ -1071,7 +1072,7 @@ static void mvneta_defaults_set(struct m +@@ -1072,7 +1073,7 @@ static void mvneta_defaults_set(struct m mvreg_write(pp, MVNETA_ACC_MODE, val); /* Update val of portCfg register accordingly with all RxQueue types */ @@ -37,7 +37,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvreg_write(pp, MVNETA_PORT_CONFIG, val); val = 0; -@@ -2105,19 +2106,19 @@ static void mvneta_set_rx_mode(struct ne +@@ -2106,19 +2107,19 @@ static void mvneta_set_rx_mode(struct ne if (dev->flags & IFF_PROMISC) { /* Accept all: Multicast + Unicast */ mvneta_rx_unicast_promisc_set(pp, 1); @@ -63,7 +63,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } else { /* Accept only initialized multicast */ mvneta_set_special_mcast_table(pp, -1); -@@ -2126,7 +2127,7 @@ static void mvneta_set_rx_mode(struct ne +@@ -2127,7 +2128,7 @@ static void mvneta_set_rx_mode(struct ne if (!netdev_mc_empty(dev)) { netdev_for_each_mc_addr(ha, dev) { mvneta_mcast_addr_set(pp, ha->addr, @@ -72,7 +72,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } } } -@@ -2209,7 +2210,7 @@ static int mvneta_poll(struct napi_struc +@@ -2210,7 +2211,7 @@ static int mvneta_poll(struct napi_struc * RX packets */ cause_rx_tx |= port->cause_rx_tx; @@ -81,7 +81,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> budget -= rx_done; if (budget > 0) { -@@ -2422,17 +2423,17 @@ static void mvneta_cleanup_txqs(struct m +@@ -2423,17 +2424,17 @@ static void mvneta_cleanup_txqs(struct m /* Cleanup all Rx queues */ static void mvneta_cleanup_rxqs(struct mvneta_port *pp) { @@ -102,7 +102,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvneta_cleanup_rxqs(pp); return err; } -@@ -2638,7 +2639,7 @@ static int mvneta_set_mac_addr(struct ne +@@ -2639,7 +2640,7 @@ static int mvneta_set_mac_addr(struct ne mvneta_mac_addr_set(pp, dev->dev_addr, -1); /* Set new addr in hw */ @@ -111,7 +111,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> eth_commit_mac_addr_change(dev, addr); return 0; -@@ -2757,7 +2758,7 @@ static void mvneta_percpu_elect(struct m +@@ -2758,7 +2759,7 @@ static void mvneta_percpu_elect(struct m { int online_cpu_idx, cpu, i = 0; @@ -120,7 +120,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> for_each_online_cpu(cpu) { if (i == online_cpu_idx) -@@ -3365,6 +3366,8 @@ static int mvneta_probe(struct platform_ +@@ -3366,6 +3367,8 @@ static int mvneta_probe(struct platform_ strcmp(managed, "in-band-status") == 0); pp->cpu_notifier.notifier_call = mvneta_percpu_notifier; diff --git a/target/linux/mvebu/patches-4.4/033-net-mvneta-Associate-RX-queues-with-each-CPU.patch b/target/linux/mvebu/patches-4.4/033-net-mvneta-Associate-RX-queues-with-each-CPU.patch index a08d5fdcba..a3966948b6 100644 --- a/target/linux/mvebu/patches-4.4/033-net-mvneta-Associate-RX-queues-with-each-CPU.patch +++ b/target/linux/mvebu/patches-4.4/033-net-mvneta-Associate-RX-queues-with-each-CPU.patch @@ -32,9 +32,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net> #define MVNETA_INTR_NEW_CAUSE 0x25a0 #define MVNETA_INTR_NEW_MASK 0x25a4 -@@ -820,7 +827,13 @@ static void mvneta_port_up(struct mvneta - mvreg_write(pp, MVNETA_TXQ_CMD, q_map); +@@ -821,7 +828,13 @@ static void mvneta_port_up(struct mvneta + q_map = 0; /* Enable all initialized RXQs. */ - mvreg_write(pp, MVNETA_RXQ_CMD, BIT(pp->rxq_def)); + for (queue = 0; queue < rxq_number; queue++) { @@ -47,7 +47,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } /* Stop the Ethernet port activity */ -@@ -1030,6 +1043,7 @@ static void mvneta_defaults_set(struct m +@@ -1031,6 +1044,7 @@ static void mvneta_defaults_set(struct m int cpu; int queue; u32 val; @@ -55,7 +55,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Clear all Cause registers */ mvreg_write(pp, MVNETA_INTR_NEW_CAUSE, 0); -@@ -1045,13 +1059,23 @@ static void mvneta_defaults_set(struct m +@@ -1046,13 +1060,23 @@ static void mvneta_defaults_set(struct m /* Enable MBUS Retry bit16 */ mvreg_write(pp, MVNETA_MBUS_RETRY, 0x20); @@ -85,7 +85,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Reset RX and TX DMAs */ mvreg_write(pp, MVNETA_PORT_RX_RESET, MVNETA_PORT_RX_DMA_RESET); -@@ -2178,6 +2202,7 @@ static int mvneta_poll(struct napi_struc +@@ -2179,6 +2203,7 @@ static int mvneta_poll(struct napi_struc { int rx_done = 0; u32 cause_rx_tx; @@ -93,7 +93,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> struct mvneta_port *pp = netdev_priv(napi->dev); struct mvneta_pcpu_port *port = this_cpu_ptr(pp->ports); -@@ -2209,8 +2234,15 @@ static int mvneta_poll(struct napi_struc +@@ -2210,8 +2235,15 @@ static int mvneta_poll(struct napi_struc /* For the case where the last mvneta_poll did not process all * RX packets */ @@ -110,7 +110,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> budget -= rx_done; if (budget > 0) { -@@ -2423,19 +2455,27 @@ static void mvneta_cleanup_txqs(struct m +@@ -2424,19 +2456,27 @@ static void mvneta_cleanup_txqs(struct m /* Cleanup all Rx queues */ static void mvneta_cleanup_rxqs(struct mvneta_port *pp) { @@ -145,7 +145,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } return 0; -@@ -2459,6 +2499,19 @@ static int mvneta_setup_txqs(struct mvne +@@ -2460,6 +2500,19 @@ static int mvneta_setup_txqs(struct mvne return 0; } @@ -165,7 +165,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> static void mvneta_start_dev(struct mvneta_port *pp) { unsigned int cpu; -@@ -2476,11 +2529,10 @@ static void mvneta_start_dev(struct mvne +@@ -2477,11 +2530,10 @@ static void mvneta_start_dev(struct mvne napi_enable(&port->napi); } @@ -181,7 +181,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvreg_write(pp, MVNETA_INTR_MISC_MASK, MVNETA_CAUSE_PHY_STATUS_CHANGE | MVNETA_CAUSE_LINK_CHANGE | -@@ -2756,22 +2808,35 @@ static void mvneta_percpu_disable(void * +@@ -2757,22 +2809,35 @@ static void mvneta_percpu_disable(void * static void mvneta_percpu_elect(struct mvneta_port *pp) { @@ -227,7 +227,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } }; -@@ -2806,12 +2871,22 @@ static int mvneta_percpu_notifier(struct +@@ -2807,12 +2872,22 @@ static int mvneta_percpu_notifier(struct mvreg_write(pp, MVNETA_INTR_MISC_MASK, 0); napi_enable(&port->napi); @@ -251,7 +251,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvreg_write(pp, MVNETA_INTR_NEW_MASK, MVNETA_RX_INTR_MASK(rxq_number) | MVNETA_TX_INTR_MASK(txq_number) | -@@ -2862,7 +2937,7 @@ static int mvneta_percpu_notifier(struct +@@ -2863,7 +2938,7 @@ static int mvneta_percpu_notifier(struct static int mvneta_open(struct net_device *dev) { struct mvneta_port *pp = netdev_priv(dev); @@ -260,7 +260,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> pp->pkt_size = MVNETA_RX_PKT_SIZE(pp->dev->mtu); pp->frag_size = SKB_DATA_ALIGN(MVNETA_RX_BUF_SIZE(pp->pkt_size)) + -@@ -2892,8 +2967,13 @@ static int mvneta_open(struct net_device +@@ -2893,8 +2968,13 @@ static int mvneta_open(struct net_device */ mvneta_percpu_disable(pp); diff --git a/target/linux/mvebu/patches-4.4/034-net-mvneta-Add-naive-RSS-support.patch b/target/linux/mvebu/patches-4.4/034-net-mvneta-Add-naive-RSS-support.patch index ee2c71b5e9..ced1eba8ef 100644 --- a/target/linux/mvebu/patches-4.4/034-net-mvneta-Add-naive-RSS-support.patch +++ b/target/linux/mvebu/patches-4.4/034-net-mvneta-Add-naive-RSS-support.patch @@ -34,7 +34,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> }; /* The mvneta_tx_desc and mvneta_rx_desc structures describe the -@@ -1071,7 +1078,7 @@ static void mvneta_defaults_set(struct m +@@ -1072,7 +1079,7 @@ static void mvneta_defaults_set(struct m if ((rxq % max_cpu) == cpu) rxq_map |= MVNETA_CPU_RXQ_ACCESS(rxq); @@ -43,7 +43,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> txq_map = MVNETA_CPU_TXQ_ACCESS_ALL_MASK; mvreg_write(pp, MVNETA_CPU_MAP(cpu), rxq_map | txq_map); -@@ -2512,6 +2519,18 @@ static void mvneta_percpu_unmask_interru +@@ -2513,6 +2520,18 @@ static void mvneta_percpu_unmask_interru MVNETA_MISCINTR_INTR_MASK); } @@ -62,7 +62,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> static void mvneta_start_dev(struct mvneta_port *pp) { unsigned int cpu; -@@ -3233,6 +3252,106 @@ static int mvneta_ethtool_get_sset_count +@@ -3234,6 +3253,106 @@ static int mvneta_ethtool_get_sset_count return -EOPNOTSUPP; } @@ -169,7 +169,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> static const struct net_device_ops mvneta_netdev_ops = { .ndo_open = mvneta_open, .ndo_stop = mvneta_stop, -@@ -3257,6 +3376,10 @@ const struct ethtool_ops mvneta_eth_tool +@@ -3258,6 +3377,10 @@ const struct ethtool_ops mvneta_eth_tool .get_strings = mvneta_ethtool_get_strings, .get_ethtool_stats = mvneta_ethtool_get_stats, .get_sset_count = mvneta_ethtool_get_sset_count, @@ -180,7 +180,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> }; /* Initialize hw */ -@@ -3448,6 +3571,8 @@ static int mvneta_probe(struct platform_ +@@ -3449,6 +3572,8 @@ static int mvneta_probe(struct platform_ pp->rxq_def = rxq_def; diff --git a/target/linux/mvebu/patches-4.4/035-net-mvneta-Configure-XPS-support.patch b/target/linux/mvebu/patches-4.4/035-net-mvneta-Configure-XPS-support.patch index 7389466b6d..0fa6e64925 100644 --- a/target/linux/mvebu/patches-4.4/035-net-mvneta-Configure-XPS-support.patch +++ b/target/linux/mvebu/patches-4.4/035-net-mvneta-Configure-XPS-support.patch @@ -32,7 +32,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> }; struct mvneta_rx_queue { -@@ -1066,20 +1070,30 @@ static void mvneta_defaults_set(struct m +@@ -1067,20 +1071,30 @@ static void mvneta_defaults_set(struct m /* Enable MBUS Retry bit16 */ mvreg_write(pp, MVNETA_MBUS_RETRY, 0x20); @@ -69,7 +69,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvreg_write(pp, MVNETA_CPU_MAP(cpu), rxq_map | txq_map); } -@@ -2366,6 +2380,8 @@ static void mvneta_rxq_deinit(struct mvn +@@ -2367,6 +2381,8 @@ static void mvneta_rxq_deinit(struct mvn static int mvneta_txq_init(struct mvneta_port *pp, struct mvneta_tx_queue *txq) { @@ -78,7 +78,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> txq->size = pp->tx_ring_size; /* A queue must always have room for at least one skb. -@@ -2418,6 +2434,14 @@ static int mvneta_txq_init(struct mvneta +@@ -2419,6 +2435,14 @@ static int mvneta_txq_init(struct mvneta } mvneta_tx_done_pkts_coal_set(pp, txq, txq->done_pkts_coal); @@ -93,7 +93,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> return 0; } -@@ -2840,13 +2864,23 @@ static void mvneta_percpu_elect(struct m +@@ -2841,13 +2865,23 @@ static void mvneta_percpu_elect(struct m if ((rxq % max_cpu) == cpu) rxq_map |= MVNETA_CPU_RXQ_ACCESS(rxq); diff --git a/target/linux/mvebu/patches-4.4/036-net-mvneta-fix-trivial-cut-off-issue-in-mvneta_ethto.patch b/target/linux/mvebu/patches-4.4/036-net-mvneta-fix-trivial-cut-off-issue-in-mvneta_ethto.patch index e79a11a4f1..2a00ea66fd 100644 --- a/target/linux/mvebu/patches-4.4/036-net-mvneta-fix-trivial-cut-off-issue-in-mvneta_ethto.patch +++ b/target/linux/mvebu/patches-4.4/036-net-mvneta-fix-trivial-cut-off-issue-in-mvneta_ethto.patch @@ -13,7 +13,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3244,26 +3244,25 @@ static void mvneta_ethtool_update_stats( +@@ -3245,26 +3245,25 @@ static void mvneta_ethtool_update_stats( const struct mvneta_statistic *s; void __iomem *base = pp->base; u32 high, low, val; diff --git a/target/linux/mvebu/patches-4.4/038-net-mvneta-Fix-the-CPU-choice-in-mvneta_percpu_elect.patch b/target/linux/mvebu/patches-4.4/038-net-mvneta-Fix-the-CPU-choice-in-mvneta_percpu_elect.patch index 3423307c1c..b72b823671 100644 --- a/target/linux/mvebu/patches-4.4/038-net-mvneta-Fix-the-CPU-choice-in-mvneta_percpu_elect.patch +++ b/target/linux/mvebu/patches-4.4/038-net-mvneta-Fix-the-CPU-choice-in-mvneta_percpu_elect.patch @@ -20,7 +20,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -2851,9 +2851,14 @@ static void mvneta_percpu_disable(void * +@@ -2852,9 +2852,14 @@ static void mvneta_percpu_disable(void * static void mvneta_percpu_elect(struct mvneta_port *pp) { @@ -37,7 +37,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> max_cpu = num_present_cpus(); for_each_online_cpu(cpu) { -@@ -2864,7 +2869,7 @@ static void mvneta_percpu_elect(struct m +@@ -2865,7 +2870,7 @@ static void mvneta_percpu_elect(struct m if ((rxq % max_cpu) == cpu) rxq_map |= MVNETA_CPU_RXQ_ACCESS(rxq); @@ -46,7 +46,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Map the default receive queue queue to the * elected CPU */ -@@ -2875,7 +2880,7 @@ static void mvneta_percpu_elect(struct m +@@ -2876,7 +2881,7 @@ static void mvneta_percpu_elect(struct m * the CPU bound to the default RX queue */ if (txq_number == 1) diff --git a/target/linux/mvebu/patches-4.4/039-net-mvneta-Use-on_each_cpu-when-possible.patch b/target/linux/mvebu/patches-4.4/039-net-mvneta-Use-on_each_cpu-when-possible.patch index 8d22df0f9c..42ef706002 100644 --- a/target/linux/mvebu/patches-4.4/039-net-mvneta-Use-on_each_cpu-when-possible.patch +++ b/target/linux/mvebu/patches-4.4/039-net-mvneta-Use-on_each_cpu-when-possible.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -2557,7 +2557,7 @@ static void mvneta_percpu_mask_interrupt +@@ -2558,7 +2558,7 @@ static void mvneta_percpu_mask_interrupt static void mvneta_start_dev(struct mvneta_port *pp) { @@ -23,7 +23,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvneta_max_rx_size_set(pp, pp->pkt_size); mvneta_txq_max_tx_size_set(pp, pp->pkt_size); -@@ -2573,9 +2573,8 @@ static void mvneta_start_dev(struct mvne +@@ -2574,9 +2574,8 @@ static void mvneta_start_dev(struct mvne } /* Unmask interrupts. It has to be done from each CPU */ @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvreg_write(pp, MVNETA_INTR_MISC_MASK, MVNETA_CAUSE_PHY_STATUS_CHANGE | MVNETA_CAUSE_LINK_CHANGE | -@@ -2995,7 +2994,7 @@ static int mvneta_percpu_notifier(struct +@@ -2996,7 +2995,7 @@ static int mvneta_percpu_notifier(struct static int mvneta_open(struct net_device *dev) { struct mvneta_port *pp = netdev_priv(dev); @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> pp->pkt_size = MVNETA_RX_PKT_SIZE(pp->dev->mtu); pp->frag_size = SKB_DATA_ALIGN(MVNETA_RX_BUF_SIZE(pp->pkt_size)) + -@@ -3028,9 +3027,7 @@ static int mvneta_open(struct net_device +@@ -3029,9 +3028,7 @@ static int mvneta_open(struct net_device /* Enable per-CPU interrupt on all the CPU to handle our RX * queue interrupts */ @@ -55,7 +55,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Register a CPU notifier to handle the case where our CPU -@@ -3317,9 +3314,7 @@ static int mvneta_config_rss(struct mvn +@@ -3318,9 +3315,7 @@ static int mvneta_config_rss(struct mvn netif_tx_stop_all_queues(pp->dev); diff --git a/target/linux/mvebu/patches-4.4/040-net-mvneta-Modify-the-queue-related-fields-from-each.patch b/target/linux/mvebu/patches-4.4/040-net-mvneta-Modify-the-queue-related-fields-from-each.patch index acb6c94bb2..c589413107 100644 --- a/target/linux/mvebu/patches-4.4/040-net-mvneta-Modify-the-queue-related-fields-from-each.patch +++ b/target/linux/mvebu/patches-4.4/040-net-mvneta-Modify-the-queue-related-fields-from-each.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -1040,6 +1040,43 @@ static void mvneta_set_autoneg(struct mv +@@ -1041,6 +1041,43 @@ static void mvneta_set_autoneg(struct mv } } @@ -61,7 +61,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* This method sets defaults to the NETA port: * Clears interrupt Cause and Mask registers. * Clears all MAC tables. -@@ -1057,14 +1094,10 @@ static void mvneta_defaults_set(struct m +@@ -1058,14 +1095,10 @@ static void mvneta_defaults_set(struct m int max_cpu = num_present_cpus(); /* Clear all Cause registers */ @@ -78,7 +78,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvreg_write(pp, MVNETA_INTR_ENABLE, 0); /* Enable MBUS Retry bit16 */ -@@ -2530,31 +2563,6 @@ static int mvneta_setup_txqs(struct mvne +@@ -2531,31 +2564,6 @@ static int mvneta_setup_txqs(struct mvne return 0; } @@ -110,7 +110,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> static void mvneta_start_dev(struct mvneta_port *pp) { int cpu; -@@ -2605,13 +2613,10 @@ static void mvneta_stop_dev(struct mvnet +@@ -2606,13 +2614,10 @@ static void mvneta_stop_dev(struct mvnet mvneta_port_disable(pp); /* Clear all ethernet port interrupts */ @@ -126,7 +126,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvneta_tx_reset(pp); mvneta_rx_reset(pp); -@@ -2923,9 +2928,7 @@ static int mvneta_percpu_notifier(struct +@@ -2924,9 +2929,7 @@ static int mvneta_percpu_notifier(struct } /* Mask all ethernet port interrupts */ @@ -137,7 +137,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> napi_enable(&port->napi); -@@ -2940,14 +2943,8 @@ static int mvneta_percpu_notifier(struct +@@ -2941,14 +2944,8 @@ static int mvneta_percpu_notifier(struct */ mvneta_percpu_elect(pp); @@ -154,7 +154,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvreg_write(pp, MVNETA_INTR_MISC_MASK, MVNETA_CAUSE_PHY_STATUS_CHANGE | MVNETA_CAUSE_LINK_CHANGE | -@@ -2958,9 +2955,7 @@ static int mvneta_percpu_notifier(struct +@@ -2959,9 +2956,7 @@ static int mvneta_percpu_notifier(struct case CPU_DOWN_PREPARE_FROZEN: netif_tx_stop_all_queues(pp->dev); /* Mask all ethernet port interrupts */ @@ -165,7 +165,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> napi_synchronize(&port->napi); napi_disable(&port->napi); -@@ -2976,10 +2971,7 @@ static int mvneta_percpu_notifier(struct +@@ -2977,10 +2972,7 @@ static int mvneta_percpu_notifier(struct /* Check if a new CPU must be elected now this on is down */ mvneta_percpu_elect(pp); /* Unmask all ethernet port interrupts */ diff --git a/target/linux/mvebu/patches-4.4/041-net-mvneta-The-mvneta_percpu_elect-function-should-b.patch b/target/linux/mvebu/patches-4.4/041-net-mvneta-The-mvneta_percpu_elect-function-should-b.patch index 1d3d6aaf14..f2a30b33aa 100644 --- a/target/linux/mvebu/patches-4.4/041-net-mvneta-The-mvneta_percpu_elect-function-should-b.patch +++ b/target/linux/mvebu/patches-4.4/041-net-mvneta-The-mvneta_percpu_elect-function-should-b.patch @@ -31,7 +31,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Core clock */ struct clk *clk; -@@ -2857,6 +2861,12 @@ static void mvneta_percpu_elect(struct m +@@ -2858,6 +2862,12 @@ static void mvneta_percpu_elect(struct m { int elected_cpu = 0, max_cpu, cpu, i = 0; @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Use the cpu associated to the rxq when it is online, in all * the other cases, use the cpu 0 which can't be offline. */ -@@ -2900,6 +2910,7 @@ static void mvneta_percpu_elect(struct m +@@ -2901,6 +2911,7 @@ static void mvneta_percpu_elect(struct m i++; } @@ -52,7 +52,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> }; static int mvneta_percpu_notifier(struct notifier_block *nfb, -@@ -2954,8 +2965,13 @@ static int mvneta_percpu_notifier(struct +@@ -2955,8 +2966,13 @@ static int mvneta_percpu_notifier(struct case CPU_DOWN_PREPARE: case CPU_DOWN_PREPARE_FROZEN: netif_tx_stop_all_queues(pp->dev); diff --git a/target/linux/mvebu/patches-4.4/042-net-mvneta-Fix-race-condition-during-stopping.patch b/target/linux/mvebu/patches-4.4/042-net-mvneta-Fix-race-condition-during-stopping.patch index 878229cbf7..efdd08427c 100644 --- a/target/linux/mvebu/patches-4.4/042-net-mvneta-Fix-race-condition-during-stopping.patch +++ b/target/linux/mvebu/patches-4.4/042-net-mvneta-Fix-race-condition-during-stopping.patch @@ -26,7 +26,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Core clock */ struct clk *clk; -@@ -2857,16 +2858,14 @@ static void mvneta_percpu_disable(void * +@@ -2858,16 +2859,14 @@ static void mvneta_percpu_disable(void * disable_percpu_irq(pp->dev->irq); } @@ -47,7 +47,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Use the cpu associated to the rxq when it is online, in all * the other cases, use the cpu 0 which can't be offline. */ -@@ -2910,7 +2909,6 @@ static void mvneta_percpu_elect(struct m +@@ -2911,7 +2910,6 @@ static void mvneta_percpu_elect(struct m i++; } @@ -55,7 +55,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> }; static int mvneta_percpu_notifier(struct notifier_block *nfb, -@@ -2924,6 +2922,14 @@ static int mvneta_percpu_notifier(struct +@@ -2925,6 +2923,14 @@ static int mvneta_percpu_notifier(struct switch (action) { case CPU_ONLINE: case CPU_ONLINE_FROZEN: @@ -70,7 +70,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> netif_tx_stop_all_queues(pp->dev); /* We have to synchronise on tha napi of each CPU -@@ -2961,6 +2967,7 @@ static int mvneta_percpu_notifier(struct +@@ -2962,6 +2968,7 @@ static int mvneta_percpu_notifier(struct MVNETA_CAUSE_LINK_CHANGE | MVNETA_CAUSE_PSC_SYNC_CHANGE); netif_tx_start_all_queues(pp->dev); @@ -78,7 +78,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> break; case CPU_DOWN_PREPARE: case CPU_DOWN_PREPARE_FROZEN: -@@ -2985,7 +2992,9 @@ static int mvneta_percpu_notifier(struct +@@ -2986,7 +2993,9 @@ static int mvneta_percpu_notifier(struct case CPU_DEAD: case CPU_DEAD_FROZEN: /* Check if a new CPU must be elected now this on is down */ @@ -88,7 +88,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Unmask all ethernet port interrupts */ on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true); mvreg_write(pp, MVNETA_INTR_MISC_MASK, -@@ -3037,7 +3046,7 @@ static int mvneta_open(struct net_device +@@ -3038,7 +3047,7 @@ static int mvneta_open(struct net_device */ on_each_cpu(mvneta_percpu_enable, pp, true); @@ -97,7 +97,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Register a CPU notifier to handle the case where our CPU * might be taken offline. */ -@@ -3070,9 +3079,18 @@ static int mvneta_stop(struct net_device +@@ -3071,9 +3080,18 @@ static int mvneta_stop(struct net_device { struct mvneta_port *pp = netdev_priv(dev); @@ -116,7 +116,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> on_each_cpu(mvneta_percpu_disable, pp, true); free_percpu_irq(dev->irq, pp->ports); mvneta_cleanup_rxqs(pp); -@@ -3343,7 +3361,9 @@ static int mvneta_config_rss(struct mvn +@@ -3344,7 +3362,9 @@ static int mvneta_config_rss(struct mvn mvreg_write(pp, MVNETA_PORT_CONFIG, val); /* Update the elected CPU matching the new rxq_def */ diff --git a/target/linux/mvebu/patches-4.4/045-net-mvneta-bm-add-support-for-hardware-buffer-manage.patch b/target/linux/mvebu/patches-4.4/045-net-mvneta-bm-add-support-for-hardware-buffer-manage.patch index a1b5ca8c6a..b3c86cad7d 100644 --- a/target/linux/mvebu/patches-4.4/045-net-mvneta-bm-add-support-for-hardware-buffer-manage.patch +++ b/target/linux/mvebu/patches-4.4/045-net-mvneta-bm-add-support-for-hardware-buffer-manage.patch @@ -495,7 +495,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Start the Ethernet port RX and TX activity */ static void mvneta_port_up(struct mvneta_port *pp) { -@@ -1151,9 +1383,17 @@ static void mvneta_defaults_set(struct m +@@ -1152,9 +1384,17 @@ static void mvneta_defaults_set(struct m mvreg_write(pp, MVNETA_PORT_RX_RESET, 0); /* Set Port Acceleration Mode */ @@ -514,7 +514,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Update val of portCfg register accordingly with all RxQueue types */ val = MVNETA_PORT_CONFIG_DEFL_VALUE(pp->rxq_def); mvreg_write(pp, MVNETA_PORT_CONFIG, val); -@@ -1520,23 +1760,25 @@ static void mvneta_txq_done(struct mvnet +@@ -1521,23 +1761,25 @@ static void mvneta_txq_done(struct mvnet } } @@ -547,7 +547,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> static int mvneta_rx_refill(struct mvneta_port *pp, struct mvneta_rx_desc *rx_desc) -@@ -1544,7 +1786,7 @@ static int mvneta_rx_refill(struct mvnet +@@ -1545,7 +1787,7 @@ static int mvneta_rx_refill(struct mvnet dma_addr_t phys_addr; void *data; @@ -556,7 +556,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> if (!data) return -ENOMEM; -@@ -1552,7 +1794,7 @@ static int mvneta_rx_refill(struct mvnet +@@ -1553,7 +1795,7 @@ static int mvneta_rx_refill(struct mvnet MVNETA_RX_BUF_SIZE(pp->pkt_size), DMA_FROM_DEVICE); if (unlikely(dma_mapping_error(pp->dev->dev.parent, phys_addr))) { @@ -565,7 +565,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> return -ENOMEM; } -@@ -1598,22 +1840,156 @@ static void mvneta_rxq_drop_pkts(struct +@@ -1599,22 +1841,156 @@ static void mvneta_rxq_drop_pkts(struct int rx_done, i; rx_done = mvneta_rxq_busy_desc_num_get(pp, rxq); @@ -728,7 +728,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> { struct mvneta_pcpu_port *port = this_cpu_ptr(pp->ports); struct net_device *dev = pp->dev; -@@ -1632,21 +2008,29 @@ static int mvneta_rx(struct mvneta_port +@@ -1633,21 +2009,29 @@ static int mvneta_rx(struct mvneta_port /* Fairness NAPI loop */ while (rx_done < rx_todo) { struct mvneta_rx_desc *rx_desc = mvneta_rxq_next_desc_get(rxq); @@ -760,7 +760,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> dev->stats.rx_errors++; mvneta_rx_error(pp, rx_desc); /* leave the descriptor untouched */ -@@ -1657,7 +2041,7 @@ static int mvneta_rx(struct mvneta_port +@@ -1658,7 +2042,7 @@ static int mvneta_rx(struct mvneta_port /* better copy a small frame and not unmap the DMA region */ skb = netdev_alloc_skb_ip_align(dev, rx_bytes); if (unlikely(!skb)) @@ -769,7 +769,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> dma_sync_single_range_for_cpu(dev->dev.parent, rx_desc->buf_phys_addr, -@@ -1675,26 +2059,31 @@ static int mvneta_rx(struct mvneta_port +@@ -1676,26 +2060,31 @@ static int mvneta_rx(struct mvneta_port rcvd_pkts++; rcvd_bytes += rx_bytes; @@ -807,7 +807,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> if (!skb) goto err_drop_frame; -@@ -2299,7 +2688,10 @@ static int mvneta_poll(struct napi_struc +@@ -2300,7 +2689,10 @@ static int mvneta_poll(struct napi_struc if (rx_queue) { rx_queue = rx_queue - 1; @@ -819,7 +819,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } budget -= rx_done; -@@ -2388,9 +2780,17 @@ static int mvneta_rxq_init(struct mvneta +@@ -2389,9 +2781,17 @@ static int mvneta_rxq_init(struct mvneta mvneta_rx_pkts_coal_set(pp, rxq, rxq->pkts_coal); mvneta_rx_time_coal_set(pp, rxq, rxq->time_coal); @@ -840,7 +840,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvneta_rxq_fill(pp, rxq, rxq->size); return 0; -@@ -2663,6 +3063,9 @@ static int mvneta_change_mtu(struct net_ +@@ -2664,6 +3064,9 @@ static int mvneta_change_mtu(struct net_ dev->mtu = mtu; if (!netif_running(dev)) { @@ -850,7 +850,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> netdev_update_features(dev); return 0; } -@@ -2675,6 +3078,9 @@ static int mvneta_change_mtu(struct net_ +@@ -2676,6 +3079,9 @@ static int mvneta_change_mtu(struct net_ mvneta_cleanup_txqs(pp); mvneta_cleanup_rxqs(pp); @@ -860,7 +860,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> pp->pkt_size = MVNETA_RX_PKT_SIZE(dev->mtu); pp->frag_size = SKB_DATA_ALIGN(MVNETA_RX_BUF_SIZE(pp->pkt_size)) + SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); -@@ -3567,6 +3973,7 @@ static int mvneta_probe(struct platform_ +@@ -3568,6 +3974,7 @@ static int mvneta_probe(struct platform_ struct resource *res; struct device_node *dn = pdev->dev.of_node; struct device_node *phy_node; @@ -868,7 +868,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> struct mvneta_port *pp; struct net_device *dev; const char *dt_mac_addr; -@@ -3694,26 +4101,39 @@ static int mvneta_probe(struct platform_ +@@ -3695,26 +4102,39 @@ static int mvneta_probe(struct platform_ pp->tx_csum_limit = tx_csum_limit; @@ -914,7 +914,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> for_each_present_cpu(cpu) { struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu); -@@ -3748,6 +4168,13 @@ static int mvneta_probe(struct platform_ +@@ -3749,6 +4169,13 @@ static int mvneta_probe(struct platform_ return 0; @@ -928,7 +928,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> err_free_stats: free_percpu(pp->stats); err_free_ports: -@@ -3777,6 +4204,12 @@ static int mvneta_remove(struct platform +@@ -3778,6 +4205,12 @@ static int mvneta_remove(struct platform of_node_put(pp->phy_node); free_netdev(dev); diff --git a/target/linux/mvebu/patches-4.4/046-net-mvneta-Use-the-new-hwbm-framework.patch b/target/linux/mvebu/patches-4.4/046-net-mvneta-Use-the-new-hwbm-framework.patch index fb9859c5d2..889a119a02 100644 --- a/target/linux/mvebu/patches-4.4/046-net-mvneta-Use-the-new-hwbm-framework.patch +++ b/target/linux/mvebu/patches-4.4/046-net-mvneta-Use-the-new-hwbm-framework.patch @@ -64,7 +64,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> goto bm_mtu_err; } mvneta_bm_pool_bufsize_set(pp, bm_pool->buf_size, bm_pool->id); -@@ -2068,14 +2070,14 @@ err_drop_frame: +@@ -2069,14 +2071,14 @@ err_drop_frame: } /* Refill processing */ diff --git a/target/linux/mvebu/patches-4.4/047-net-mvneta-Fix-spinlock-usage.patch b/target/linux/mvebu/patches-4.4/047-net-mvneta-Fix-spinlock-usage.patch index 7058686c20..54399a1b17 100644 --- a/target/linux/mvebu/patches-4.4/047-net-mvneta-Fix-spinlock-usage.patch +++ b/target/linux/mvebu/patches-4.4/047-net-mvneta-Fix-spinlock-usage.patch @@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3488,17 +3488,17 @@ static int mvneta_stop(struct net_device +@@ -3489,17 +3489,17 @@ static int mvneta_stop(struct net_device struct mvneta_port *pp = netdev_priv(dev); /* Inform that we are stopping so we don't want to setup the @@ -42,7 +42,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> on_each_cpu(mvneta_percpu_disable, pp, true); free_percpu_irq(dev->irq, pp->ports); mvneta_cleanup_rxqs(pp); -@@ -4031,6 +4031,7 @@ static int mvneta_probe(struct platform_ +@@ -4032,6 +4032,7 @@ static int mvneta_probe(struct platform_ dev->ethtool_ops = &mvneta_eth_tool_ops; pp = netdev_priv(dev); diff --git a/target/linux/mvebu/patches-4.4/048-net-mvneta-fix-error-messages-in-mvneta_port_down-fu.patch b/target/linux/mvebu/patches-4.4/048-net-mvneta-fix-error-messages-in-mvneta_port_down-fu.patch index fd1f1ae203..edc11549e9 100644 --- a/target/linux/mvebu/patches-4.4/048-net-mvneta-fix-error-messages-in-mvneta_port_down-fu.patch +++ b/target/linux/mvebu/patches-4.4/048-net-mvneta-fix-error-messages-in-mvneta_port_down-fu.patch @@ -13,7 +13,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -1105,7 +1105,7 @@ static void mvneta_port_down(struct mvne +@@ -1106,7 +1106,7 @@ static void mvneta_port_down(struct mvne do { if (count++ >= MVNETA_RX_DISABLE_TIMEOUT_MSEC) { netdev_warn(pp->dev, @@ -22,7 +22,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> val); break; } -@@ -1144,7 +1144,7 @@ static void mvneta_port_down(struct mvne +@@ -1145,7 +1145,7 @@ static void mvneta_port_down(struct mvne do { if (count++ >= MVNETA_TX_FIFO_EMPTY_TIMEOUT) { netdev_warn(pp->dev, diff --git a/target/linux/mvebu/patches-4.4/049-net-mvneta-replace-MVNETA_CPU_D_CACHE_LINE_SIZE-with.patch b/target/linux/mvebu/patches-4.4/049-net-mvneta-replace-MVNETA_CPU_D_CACHE_LINE_SIZE-with.patch index 4b319e26a7..d72dcc847e 100644 --- a/target/linux/mvebu/patches-4.4/049-net-mvneta-replace-MVNETA_CPU_D_CACHE_LINE_SIZE-with.patch +++ b/target/linux/mvebu/patches-4.4/049-net-mvneta-replace-MVNETA_CPU_D_CACHE_LINE_SIZE-with.patch @@ -33,7 +33,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> #define IS_TSO_HEADER(txq, addr) \ ((addr >= txq->tso_hdrs_phys) && \ -@@ -2766,9 +2765,6 @@ static int mvneta_rxq_init(struct mvneta +@@ -2767,9 +2766,6 @@ static int mvneta_rxq_init(struct mvneta if (rxq->descs == NULL) return -ENOMEM; @@ -43,7 +43,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> rxq->last_desc = rxq->size - 1; /* Set Rx descriptors queue starting address */ -@@ -2839,10 +2835,6 @@ static int mvneta_txq_init(struct mvneta +@@ -2840,10 +2836,6 @@ static int mvneta_txq_init(struct mvneta if (txq->descs == NULL) return -ENOMEM; diff --git a/target/linux/mvebu/patches-4.4/050-net-mvneta-fix-changing-MTU-when-using-per-cpu-proce.patch b/target/linux/mvebu/patches-4.4/050-net-mvneta-fix-changing-MTU-when-using-per-cpu-proce.patch index fdc5663510..bcb0b4b8c7 100644 --- a/target/linux/mvebu/patches-4.4/050-net-mvneta-fix-changing-MTU-when-using-per-cpu-proce.patch +++ b/target/linux/mvebu/patches-4.4/050-net-mvneta-fix-changing-MTU-when-using-per-cpu-proce.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3044,6 +3044,20 @@ static int mvneta_check_mtu_valid(struct +@@ -3045,6 +3045,20 @@ static int mvneta_check_mtu_valid(struct return mtu; } @@ -36,7 +36,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> /* Change the device mtu */ static int mvneta_change_mtu(struct net_device *dev, int mtu) { -@@ -3068,6 +3082,7 @@ static int mvneta_change_mtu(struct net_ +@@ -3069,6 +3083,7 @@ static int mvneta_change_mtu(struct net_ * reallocation of the queues */ mvneta_stop_dev(pp); @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvneta_cleanup_txqs(pp); mvneta_cleanup_rxqs(pp); -@@ -3091,6 +3106,7 @@ static int mvneta_change_mtu(struct net_ +@@ -3092,6 +3107,7 @@ static int mvneta_change_mtu(struct net_ return ret; } @@ -52,7 +52,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> mvneta_start_dev(pp); mvneta_port_up(pp); -@@ -3244,20 +3260,6 @@ static void mvneta_mdio_remove(struct mv +@@ -3245,20 +3261,6 @@ static void mvneta_mdio_remove(struct mv pp->phy_dev = NULL; } diff --git a/target/linux/mvebu/patches-4.4/134-net-mvneta-convert-to-phylink.patch b/target/linux/mvebu/patches-4.4/134-net-mvneta-convert-to-phylink.patch index 3bfaf1582e..380b6bf670 100644 --- a/target/linux/mvebu/patches-4.4/134-net-mvneta-convert-to-phylink.patch +++ b/target/linux/mvebu/patches-4.4/134-net-mvneta-convert-to-phylink.patch @@ -79,7 +79,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> struct mvneta_bm *bm_priv; struct mvneta_bm_pool *pool_long; -@@ -1177,10 +1179,6 @@ static void mvneta_port_disable(struct m +@@ -1178,10 +1180,6 @@ static void mvneta_port_disable(struct m val &= ~MVNETA_GMAC0_PORT_ENABLE; mvreg_write(pp, MVNETA_GMAC_CTRL_0, val); @@ -90,7 +90,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> udelay(200); } -@@ -1240,44 +1238,6 @@ static void mvneta_set_other_mcast_table +@@ -1241,44 +1239,6 @@ static void mvneta_set_other_mcast_table mvreg_write(pp, MVNETA_DA_FILT_OTH_MCAST + offset, val); } @@ -135,7 +135,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> static void mvneta_percpu_unmask_interrupt(void *arg) { struct mvneta_port *pp = arg; -@@ -1425,7 +1385,6 @@ static void mvneta_defaults_set(struct m +@@ -1426,7 +1386,6 @@ static void mvneta_defaults_set(struct m val &= ~MVNETA_PHY_POLLING_ENABLE; mvreg_write(pp, MVNETA_UNIT_CONTROL, val); @@ -143,7 +143,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> mvneta_set_ucast_table(pp, -1); mvneta_set_special_mcast_table(pp, -1); mvneta_set_other_mcast_table(pp, -1); -@@ -2618,26 +2577,11 @@ static irqreturn_t mvneta_isr(int irq, v +@@ -2619,26 +2578,11 @@ static irqreturn_t mvneta_isr(int irq, v return IRQ_HANDLED; } @@ -172,7 +172,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> } /* NAPI handler -@@ -2666,12 +2610,11 @@ static int mvneta_poll(struct napi_struc +@@ -2667,12 +2611,11 @@ static int mvneta_poll(struct napi_struc u32 cause_misc = mvreg_read(pp, MVNETA_INTR_MISC_CAUSE); mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0); @@ -190,7 +190,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> } /* Release Tx descriptors */ -@@ -2987,7 +2930,7 @@ static void mvneta_start_dev(struct mvne +@@ -2988,7 +2931,7 @@ static void mvneta_start_dev(struct mvne MVNETA_CAUSE_LINK_CHANGE | MVNETA_CAUSE_PSC_SYNC_CHANGE); @@ -199,7 +199,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> netif_tx_start_all_queues(pp->dev); } -@@ -2995,7 +2938,7 @@ static void mvneta_stop_dev(struct mvnet +@@ -2996,7 +2939,7 @@ static void mvneta_stop_dev(struct mvnet { unsigned int cpu; @@ -208,7 +208,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> for_each_online_cpu(cpu) { struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu); -@@ -3165,99 +3108,219 @@ static int mvneta_set_mac_addr(struct ne +@@ -3166,99 +3109,219 @@ static int mvneta_set_mac_addr(struct ne return 0; } @@ -501,7 +501,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> } /* Electing a CPU must be done in an atomic way: it should be done -@@ -3505,10 +3568,7 @@ static int mvneta_ioctl(struct net_devic +@@ -3506,10 +3569,7 @@ static int mvneta_ioctl(struct net_devic { struct mvneta_port *pp = netdev_priv(dev); @@ -513,7 +513,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> } /* Ethtool methods */ -@@ -3518,54 +3578,15 @@ int mvneta_ethtool_get_settings(struct n +@@ -3519,54 +3579,15 @@ int mvneta_ethtool_get_settings(struct n { struct mvneta_port *pp = netdev_priv(dev); @@ -570,7 +570,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> } /* Set interrupt coalescing for ethtools */ -@@ -3673,7 +3694,8 @@ static void mvneta_ethtool_update_stats( +@@ -3674,7 +3695,8 @@ static void mvneta_ethtool_update_stats( { const struct mvneta_statistic *s; void __iomem *base = pp->base; @@ -580,7 +580,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> u64 val64; int i; -@@ -3968,14 +3990,13 @@ static int mvneta_probe(struct platform_ +@@ -3969,14 +3991,13 @@ static int mvneta_probe(struct platform_ const struct mbus_dram_target_info *dram_target_info; struct resource *res; struct device_node *dn = pdev->dev.of_node; @@ -596,7 +596,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> int tx_csum_limit; int phy_mode; int err; -@@ -3991,31 +4012,11 @@ static int mvneta_probe(struct platform_ +@@ -3992,31 +4013,11 @@ static int mvneta_probe(struct platform_ goto err_free_netdev; } @@ -629,7 +629,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> } dev->tx_queue_len = MVNETA_MAX_TXD; -@@ -4026,12 +4027,7 @@ static int mvneta_probe(struct platform_ +@@ -4027,12 +4028,7 @@ static int mvneta_probe(struct platform_ pp = netdev_priv(dev); spin_lock_init(&pp->lock); @@ -643,7 +643,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> pp->cpu_notifier.notifier_call = mvneta_percpu_notifier; pp->rxq_def = rxq_def; -@@ -4041,7 +4037,7 @@ static int mvneta_probe(struct platform_ +@@ -4042,7 +4038,7 @@ static int mvneta_probe(struct platform_ pp->clk = devm_clk_get(&pdev->dev, NULL); if (IS_ERR(pp->clk)) { err = PTR_ERR(pp->clk); @@ -652,7 +652,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> } clk_prepare_enable(pp->clk); -@@ -4144,6 +4140,14 @@ static int mvneta_probe(struct platform_ +@@ -4145,6 +4141,14 @@ static int mvneta_probe(struct platform_ dev->priv_flags |= IFF_UNICAST_FLT | IFF_LIVE_ADDR_CHANGE; dev->gso_max_segs = MVNETA_MAX_TSO_SEGS; @@ -667,7 +667,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> err = register_netdev(dev); if (err < 0) { dev_err(&pdev->dev, "failed to register\n"); -@@ -4155,13 +4159,6 @@ static int mvneta_probe(struct platform_ +@@ -4156,13 +4160,6 @@ static int mvneta_probe(struct platform_ platform_set_drvdata(pdev, pp->dev); @@ -681,7 +681,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> return 0; -@@ -4173,13 +4170,13 @@ err_netdev: +@@ -4174,13 +4171,13 @@ err_netdev: 1 << pp->id); } err_free_stats: @@ -697,7 +697,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> err_free_irq: irq_dispose_mapping(dev->irq); err_free_netdev: -@@ -4198,7 +4195,7 @@ static int mvneta_remove(struct platform +@@ -4199,7 +4196,7 @@ static int mvneta_remove(struct platform free_percpu(pp->ports); free_percpu(pp->stats); irq_dispose_mapping(dev->irq); diff --git a/target/linux/mvebu/patches-4.4/137-net-mvneta-add-nway_reset-support.patch b/target/linux/mvebu/patches-4.4/137-net-mvneta-add-nway_reset-support.patch index 034b596436..700b9b5361 100644 --- a/target/linux/mvebu/patches-4.4/137-net-mvneta-add-nway_reset-support.patch +++ b/target/linux/mvebu/patches-4.4/137-net-mvneta-add-nway_reset-support.patch @@ -14,7 +14,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3589,6 +3589,13 @@ int mvneta_ethtool_set_settings(struct n +@@ -3590,6 +3590,13 @@ int mvneta_ethtool_set_settings(struct n return phylink_ethtool_set_settings(pp->phylink, cmd); } @@ -28,7 +28,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> /* Set interrupt coalescing for ethtools */ static int mvneta_ethtool_set_coalesce(struct net_device *dev, struct ethtool_coalesce *c) -@@ -3853,6 +3860,7 @@ const struct ethtool_ops mvneta_eth_tool +@@ -3854,6 +3861,7 @@ const struct ethtool_ops mvneta_eth_tool .get_link = ethtool_op_get_link, .get_settings = mvneta_ethtool_get_settings, .set_settings = mvneta_ethtool_set_settings, diff --git a/target/linux/mvebu/patches-4.4/139-net-mvneta-add-flow-control-support-via-phylink.patch b/target/linux/mvebu/patches-4.4/139-net-mvneta-add-flow-control-support-via-phylink.patch index 75cd46e3da..62633cff46 100644 --- a/target/linux/mvebu/patches-4.4/139-net-mvneta-add-flow-control-support-via-phylink.patch +++ b/target/linux/mvebu/patches-4.4/139-net-mvneta-add-flow-control-support-via-phylink.patch @@ -14,7 +14,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3208,6 +3208,8 @@ static void mvneta_mac_config(struct net +@@ -3209,6 +3209,8 @@ static void mvneta_mac_config(struct net if (state->advertising & ADVERTISED_Pause) new_an |= MVNETA_GMAC_ADVERT_SYM_FLOW_CTRL; @@ -23,7 +23,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> switch (mode) { case MLO_AN_SGMII: -@@ -3232,7 +3234,7 @@ static void mvneta_mac_config(struct net +@@ -3233,7 +3235,7 @@ static void mvneta_mac_config(struct net /* The MAC only supports FD mode */ MVNETA_GMAC_CONFIG_FULL_DUPLEX; @@ -32,7 +32,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> new_an |= MVNETA_GMAC_AN_FLOW_CTRL_EN; break; -@@ -3685,6 +3687,22 @@ static int mvneta_ethtool_set_ringparam( +@@ -3686,6 +3688,22 @@ static int mvneta_ethtool_set_ringparam( return 0; } @@ -55,7 +55,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> static void mvneta_ethtool_get_strings(struct net_device *netdev, u32 sset, u8 *data) { -@@ -3866,6 +3884,8 @@ const struct ethtool_ops mvneta_eth_tool +@@ -3867,6 +3885,8 @@ const struct ethtool_ops mvneta_eth_tool .get_drvinfo = mvneta_ethtool_get_drvinfo, .get_ringparam = mvneta_ethtool_get_ringparam, .set_ringparam = mvneta_ethtool_set_ringparam, diff --git a/target/linux/mvebu/patches-4.4/140-net-mvneta-enable-flow-control-for-PHY-connections.patch b/target/linux/mvebu/patches-4.4/140-net-mvneta-enable-flow-control-for-PHY-connections.patch index e10574c753..1c081757bd 100644 --- a/target/linux/mvebu/patches-4.4/140-net-mvneta-enable-flow-control-for-PHY-connections.patch +++ b/target/linux/mvebu/patches-4.4/140-net-mvneta-enable-flow-control-for-PHY-connections.patch @@ -15,7 +15,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3127,12 +3127,14 @@ static int mvneta_mac_support(struct net +@@ -3128,12 +3128,14 @@ static int mvneta_mac_support(struct net state->supported = PHY_10BT_FEATURES | PHY_100BT_FEATURES | SUPPORTED_1000baseT_Full | diff --git a/target/linux/mvebu/patches-4.4/141-net-mvneta-enable-flow-control-for-fixed-connections.patch b/target/linux/mvebu/patches-4.4/141-net-mvneta-enable-flow-control-for-fixed-connections.patch index 16ffab3d46..d1683d98a2 100644 --- a/target/linux/mvebu/patches-4.4/141-net-mvneta-enable-flow-control-for-fixed-connections.patch +++ b/target/linux/mvebu/patches-4.4/141-net-mvneta-enable-flow-control-for-fixed-connections.patch @@ -15,7 +15,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3114,9 +3114,9 @@ static int mvneta_mac_support(struct net +@@ -3115,9 +3115,9 @@ static int mvneta_mac_support(struct net switch (mode) { case MLO_AN_8023Z: state->supported = SUPPORTED_1000baseT_Full | @@ -27,7 +27,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> state->an_enabled = 1; break; -@@ -3127,18 +3127,21 @@ static int mvneta_mac_support(struct net +@@ -3128,18 +3128,21 @@ static int mvneta_mac_support(struct net state->supported = PHY_10BT_FEATURES | PHY_100BT_FEATURES | SUPPORTED_1000baseT_Full | diff --git a/target/linux/mvebu/patches-4.4/143-net-mvneta-add-EEE-support.patch b/target/linux/mvebu/patches-4.4/143-net-mvneta-add-EEE-support.patch index b9043561d0..71f8c166e9 100644 --- a/target/linux/mvebu/patches-4.4/143-net-mvneta-add-EEE-support.patch +++ b/target/linux/mvebu/patches-4.4/143-net-mvneta-add-EEE-support.patch @@ -68,7 +68,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> u64 ethtool_stats[ARRAY_SIZE(mvneta_statistics)]; u32 indir[MVNETA_RSS_LU_TABLE_SIZE]; -@@ -3276,6 +3293,18 @@ static void mvneta_mac_config(struct net +@@ -3277,6 +3294,18 @@ static void mvneta_mac_config(struct net mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, new_an); } @@ -87,7 +87,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> static void mvneta_mac_link_down(struct net_device *ndev, unsigned int mode) { struct mvneta_port *pp = netdev_priv(ndev); -@@ -3289,6 +3318,9 @@ static void mvneta_mac_link_down(struct +@@ -3290,6 +3319,9 @@ static void mvneta_mac_link_down(struct val |= MVNETA_GMAC_FORCE_LINK_DOWN; mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val); } @@ -97,7 +97,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> } static void mvneta_mac_link_up(struct net_device *ndev, unsigned int mode, -@@ -3305,6 +3337,11 @@ static void mvneta_mac_link_up(struct ne +@@ -3306,6 +3338,11 @@ static void mvneta_mac_link_up(struct ne } mvneta_port_up(pp); @@ -109,7 +109,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> } static const struct phylink_mac_ops mvneta_phylink_ops = { -@@ -3744,6 +3781,13 @@ static void mvneta_ethtool_update_stats( +@@ -3745,6 +3782,13 @@ static void mvneta_ethtool_update_stats( val64 = (u64)high << 32 | low; pp->ethtool_stats[i] += val64; break; @@ -123,7 +123,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> } } } -@@ -3867,6 +3911,47 @@ static int mvneta_ethtool_get_rxfh(struc +@@ -3868,6 +3912,47 @@ static int mvneta_ethtool_get_rxfh(struc return 0; } @@ -171,7 +171,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> static const struct net_device_ops mvneta_netdev_ops = { .ndo_open = mvneta_open, .ndo_stop = mvneta_stop, -@@ -3898,6 +3983,8 @@ const struct ethtool_ops mvneta_eth_tool +@@ -3899,6 +3984,8 @@ const struct ethtool_ops mvneta_eth_tool .get_rxnfc = mvneta_ethtool_get_rxnfc, .get_rxfh = mvneta_ethtool_get_rxfh, .set_rxfh = mvneta_ethtool_set_rxfh, diff --git a/target/linux/mvebu/patches-4.4/145-net-mvneta-add-module-EEPROM-reading-support.patch b/target/linux/mvebu/patches-4.4/145-net-mvneta-add-module-EEPROM-reading-support.patch index b3f9039081..7100e4da56 100644 --- a/target/linux/mvebu/patches-4.4/145-net-mvneta-add-module-EEPROM-reading-support.patch +++ b/target/linux/mvebu/patches-4.4/145-net-mvneta-add-module-EEPROM-reading-support.patch @@ -10,7 +10,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3911,6 +3911,22 @@ static int mvneta_ethtool_get_rxfh(struc +@@ -3912,6 +3912,22 @@ static int mvneta_ethtool_get_rxfh(struc return 0; } @@ -33,7 +33,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> static int mvneta_ethtool_get_eee(struct net_device *dev, struct ethtool_eee *eee) { -@@ -3983,6 +3999,8 @@ const struct ethtool_ops mvneta_eth_tool +@@ -3984,6 +4000,8 @@ const struct ethtool_ops mvneta_eth_tool .get_rxnfc = mvneta_ethtool_get_rxnfc, .get_rxfh = mvneta_ethtool_get_rxfh, .set_rxfh = mvneta_ethtool_set_rxfh, diff --git a/target/linux/mvebu/patches-4.4/147-net-mvneta-add-BQL-support.patch b/target/linux/mvebu/patches-4.4/147-net-mvneta-add-BQL-support.patch index 7bd2593537..070f671e39 100644 --- a/target/linux/mvebu/patches-4.4/147-net-mvneta-add-BQL-support.patch +++ b/target/linux/mvebu/patches-4.4/147-net-mvneta-add-BQL-support.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -1695,8 +1695,10 @@ static struct mvneta_tx_queue *mvneta_tx +@@ -1696,8 +1696,10 @@ static struct mvneta_tx_queue *mvneta_tx /* Free tx queue skbuffs */ static void mvneta_txq_bufs_free(struct mvneta_port *pp, @@ -12,7 +12,7 @@ int i; for (i = 0; i < num; i++) { -@@ -1704,6 +1706,11 @@ static void mvneta_txq_bufs_free(struct +@@ -1705,6 +1707,11 @@ static void mvneta_txq_bufs_free(struct txq->txq_get_index; struct sk_buff *skb = txq->tx_skb[txq->txq_get_index]; @@ -24,7 +24,7 @@ mvneta_txq_inc_get(txq); if (!IS_TSO_HEADER(txq, tx_desc->buf_phys_addr)) -@@ -1714,6 +1721,8 @@ static void mvneta_txq_bufs_free(struct +@@ -1715,6 +1722,8 @@ static void mvneta_txq_bufs_free(struct continue; dev_kfree_skb_any(skb); } @@ -33,7 +33,7 @@ } /* Handle end of transmission */ -@@ -1727,7 +1736,7 @@ static void mvneta_txq_done(struct mvnet +@@ -1728,7 +1737,7 @@ static void mvneta_txq_done(struct mvnet if (!tx_done) return; @@ -42,7 +42,7 @@ txq->count -= tx_done; -@@ -2334,6 +2343,8 @@ out: +@@ -2335,6 +2344,8 @@ out: struct mvneta_pcpu_stats *stats = this_cpu_ptr(pp->stats); struct netdev_queue *nq = netdev_get_tx_queue(dev, txq_id); @@ -51,7 +51,7 @@ txq->count += frags; mvneta_txq_pend_desc_add(pp, txq, frags); -@@ -2358,9 +2369,10 @@ static void mvneta_txq_done_force(struct +@@ -2359,9 +2370,10 @@ static void mvneta_txq_done_force(struct struct mvneta_tx_queue *txq) { @@ -63,7 +63,7 @@ /* reset txq */ txq->count = 0; -@@ -2841,6 +2853,8 @@ static int mvneta_txq_init(struct mvneta +@@ -2842,6 +2854,8 @@ static int mvneta_txq_init(struct mvneta static void mvneta_txq_deinit(struct mvneta_port *pp, struct mvneta_tx_queue *txq) { @@ -72,7 +72,7 @@ kfree(txq->tx_skb); if (txq->tso_hdrs) -@@ -2852,6 +2866,8 @@ static void mvneta_txq_deinit(struct mvn +@@ -2853,6 +2867,8 @@ static void mvneta_txq_deinit(struct mvn txq->size * MVNETA_DESC_ALIGNED_SIZE, txq->descs, txq->descs_phys); diff --git a/target/linux/mvebu/patches-4.4/400-mvneta-tx-queue-workaround.patch b/target/linux/mvebu/patches-4.4/400-mvneta-tx-queue-workaround.patch index 5dba311d93..d2ea24ba40 100644 --- a/target/linux/mvebu/patches-4.4/400-mvneta-tx-queue-workaround.patch +++ b/target/linux/mvebu/patches-4.4/400-mvneta-tx-queue-workaround.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3984,6 +3984,16 @@ static int mvneta_ethtool_set_eee(struct +@@ -3985,6 +3985,16 @@ static int mvneta_ethtool_set_eee(struct return phylink_ethtool_set_eee(pp->phylink, eee); } @@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> static const struct net_device_ops mvneta_netdev_ops = { .ndo_open = mvneta_open, .ndo_stop = mvneta_stop, -@@ -3994,6 +4004,7 @@ static const struct net_device_ops mvnet +@@ -3995,6 +4005,7 @@ static const struct net_device_ops mvnet .ndo_fix_features = mvneta_fix_features, .ndo_get_stats64 = mvneta_get_stats64, .ndo_do_ioctl = mvneta_ioctl, diff --git a/target/linux/oxnas/patches-4.4/999-libata-hacks.patch b/target/linux/oxnas/patches-4.4/999-libata-hacks.patch index fe01fde6ca..e529cd39b3 100644 --- a/target/linux/oxnas/patches-4.4/999-libata-hacks.patch +++ b/target/linux/oxnas/patches-4.4/999-libata-hacks.patch @@ -15,7 +15,7 @@ /* initialize internal qc */ /* XXX: Tag 0 is used for drivers with legacy EH as some -@@ -4812,6 +4820,9 @@ struct ata_queued_cmd *ata_qc_new_init(s +@@ -4818,6 +4826,9 @@ struct ata_queued_cmd *ata_qc_new_init(s if (unlikely(ap->pflags & ATA_PFLAG_FROZEN)) return NULL; @@ -25,7 +25,7 @@ /* libsas case */ if (ap->flags & ATA_FLAG_SAS_HOST) { tag = ata_sas_allocate_tag(ap); -@@ -4857,6 +4868,8 @@ void ata_qc_free(struct ata_queued_cmd * +@@ -4863,6 +4874,8 @@ void ata_qc_free(struct ata_queued_cmd * qc->tag = ATA_TAG_POISON; if (ap->flags & ATA_FLAG_SAS_HOST) ata_sas_free_tag(tag, ap); |