From 102cb4742c14f78bf86b7d77c568c205f0d99d85 Mon Sep 17 00:00:00 2001 From: Kevin Darbyshire-Bryant Date: Mon, 21 Nov 2016 18:18:47 +0000 Subject: [PATCH] kernel: bump to 4.4.35 Refresh patches on all 4.4 supported platforms. 077-0005-bgmac-stop-clearing-DMA-receive-control-register-rig.patch removed as now upstream. Compile & run tested: ar71xx - Archer C7 v2 Signed-off-by: Kevin Darbyshire-Bryant --- include/kernel-version.mk | 4 +- ...-add-meraki-mx60-buckminster-support.patch | 6 +-- ...RM-BCM5301X-Add-DT-for-Netgear-R7900.patch | 2 +- ...part-add-device-specific-workarounds.patch | 2 +- .../400-mtd-bcm47xxpart-get-nvram.patch | 2 +- ...ac-fix-a-missing-check-for-build_skb.patch | 2 +- ...ersed-test-of-build_skb-return-value.patch | 2 +- ...-checking-for-BCM4707-BCM53018-chip-.patch | 12 ++--- ...port-Ethernet-device-on-BCM47094-SoC.patch | 2 +- ...enable-Ethernet-core-before-using-it.patch | 2 +- ...device-with-backing-device-structure.patch | 2 +- ...c-Add-support-for-ethtool-statistics.patch | 4 +- ...gmac-Maintain-some-netdev-statistics.patch | 8 +-- ...ac-use-phydev-from-struct-net_device.patch | 16 +++--- ...c-Start-transmit-queue-in-bgmac_open.patch | 2 +- ...c-Remove-superflous-netif_carrier_on.patch | 2 +- ...ac-change-bgmac_-prints-to-dev_-prin.patch | 48 ++++++++--------- ...t-ethernet-bgmac-add-dma_dev-pointer.patch | 14 ++--- ...ac-move-BCMA-MDIO-Phy-code-into-a-se.patch | 18 +++---- ...ernet-bgmac-convert-to-feature-flags.patch | 34 ++++++------ ...et-bgmac-Add-platform-device-support.patch | 30 +++++------ ...pport-Ethernet-core-on-BCM53573-SoCs.patch | 4 +- ...t-clear-when-setting-interface-type-.patch | 2 +- ...-bgmac-Fix-errant-feature-flag-check.patch | 2 +- ...pelling-mistake-connecton-connection.patch | 2 +- ...ing-DMA-receive-control-register-rig.patch | 54 ------------------- .../patches-4.4/201-extra_optimization.patch | 2 +- .../patches-4.4/202-reduce_module_size.patch | 4 +- .../patches-4.4/902-debloat_proc.patch | 6 +-- ...01-usb-dwc3-core-purge-dev_dbg-calls.patch | 8 +-- ...ate-maximum_speed-for-SuperSpeedPlus.patch | 8 +-- ...Validate-the-maximum_speed-parameter.patch | 16 ++---- ...-usb-dwc3-DWC_usb31-controller-check.patch | 6 +-- ...e-register-fields-for-SuperSpeedPlus.patch | 10 ++-- ...usb-dwc3-core-improve-reset-sequence.patch | 35 ++++++------ ...07-usb-dwc3-drop-FIFO-resizing-logic.patch | 32 +++-------- ...08-usb-dwc3-remove-num_event_buffers.patch | 32 +++++------ .../096-09-usb-dwc3-drop-ev_buffs-array.patch | 22 +++----- ...core-fix-PHY-handling-during-suspend.patch | 10 ++-- ..._set_drvdata-in-dwc3_of_simple_probe.patch | 6 +-- ...-add-pcie-nodes-to-ipq806x-platforms.patch | 2 +- .../115-add-pcie-aux-clk-dts.patch | 6 +-- ...7-ARM-DT-ipq8064-Add-ADM-device-node.patch | 2 +- ...Add-NAND-controller-node-for-ipq806x.patch | 2 +- ...-add-gmac-nodes-to-ipq806x-platforms.patch | 2 +- ...lantiq-danube-initialize-usb-on-boot.patch | 4 +- .../lantiq/patches-4.4/0047-poweroff.patch | 2 +- ...-move-mpc85xx.h-to-include-linux-fsl.patch | 2 +- ...73-ls1012a-added-clock-configuration.patch | 2 +- 49 files changed, 191 insertions(+), 308 deletions(-) delete mode 100644 target/linux/generic/patches-4.4/077-0005-bgmac-stop-clearing-DMA-receive-control-register-rig.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk index ce11b95dc71..2dab214f5bb 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -4,11 +4,11 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .43 LINUX_VERSION-4.1 = .34 -LINUX_VERSION-4.4 = .32 +LINUX_VERSION-4.4 = .35 LINUX_KERNEL_MD5SUM-3.18.43 = b1faeb4a2e1e70ffe061bdbb3452840a LINUX_KERNEL_MD5SUM-4.1.34 = fba99f0f4765ebf01033e69518740a3c -LINUX_KERNEL_MD5SUM-4.4.32 = 63e50dd0c477fe9ea450a358fe39485b +LINUX_KERNEL_MD5SUM-4.4.35 = 03d1eb75928ff741217f78dc3b55515d ifdef KERNEL_PATCHVER LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) diff --git a/target/linux/apm821xx/patches-4.4/203-add-meraki-mx60-buckminster-support.patch b/target/linux/apm821xx/patches-4.4/203-add-meraki-mx60-buckminster-support.patch index 5ecb7bc9e5b..8c072387d40 100644 --- a/target/linux/apm821xx/patches-4.4/203-add-meraki-mx60-buckminster-support.patch +++ b/target/linux/apm821xx/patches-4.4/203-add-meraki-mx60-buckminster-support.patch @@ -1,9 +1,9 @@ --- a/arch/powerpc/platforms/44x/Kconfig +++ b/arch/powerpc/platforms/44x/Kconfig -@@ -30,6 +30,19 @@ +@@ -30,6 +30,19 @@ config BLUESTONE help This option enables support for the APM APM821xx Evaluation board. - + +config BUCKMINSTER + bool "Buckminster" + depends on 44x @@ -22,7 +22,7 @@ depends on 44x --- a/arch/powerpc/platforms/44x/ppc44x_simple.c +++ b/arch/powerpc/platforms/44x/ppc44x_simple.c -@@ -63,6 +63,7 @@ +@@ -63,6 +63,7 @@ static char *board[] __initdata = { "amcc,sequoia", "amcc,taishan", "amcc,yosemite", diff --git a/target/linux/bcm53xx/patches-4.4/301-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch b/target/linux/bcm53xx/patches-4.4/301-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch index 9dcc51da062..618e26dc7a3 100644 --- a/target/linux/bcm53xx/patches-4.4/301-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch +++ b/target/linux/bcm53xx/patches-4.4/301-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch @@ -15,8 +15,8 @@ Signed-off-by: Rafał Miłecki bcm4709-netgear-r7000.dtb \ + bcm4709-netgear-r7900.dtb \ bcm4709-netgear-r8000.dtb \ + bcm4709-tplink-archer-c9-v1.dtb \ bcm47094-dlink-dir-885l.dtb \ - bcm47094-luxul-xwr-3100.dtb \ --- /dev/null +++ b/arch/arm/boot/dts/bcm4709-netgear-r7900.dts @@ -0,0 +1,41 @@ diff --git a/target/linux/bcm53xx/patches-4.4/901-mtd-bcm47xxpart-add-device-specific-workarounds.patch b/target/linux/bcm53xx/patches-4.4/901-mtd-bcm47xxpart-add-device-specific-workarounds.patch index 06cb5104d54..35c6ff7bc9a 100644 --- a/target/linux/bcm53xx/patches-4.4/901-mtd-bcm47xxpart-add-device-specific-workarounds.patch +++ b/target/linux/bcm53xx/patches-4.4/901-mtd-bcm47xxpart-add-device-specific-workarounds.patch @@ -17,7 +17,7 @@ Signed-off-by: Rafał Miłecki #include -@@ -159,6 +160,28 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -159,6 +160,28 @@ static int bcm47xxpart_parse(struct mtd_ break; } diff --git a/target/linux/brcm47xx/patches-4.4/400-mtd-bcm47xxpart-get-nvram.patch b/target/linux/brcm47xx/patches-4.4/400-mtd-bcm47xxpart-get-nvram.patch index 4fb8a87d4c2..9ffc4ca31c3 100644 --- a/target/linux/brcm47xx/patches-4.4/400-mtd-bcm47xxpart-get-nvram.patch +++ b/target/linux/brcm47xx/patches-4.4/400-mtd-bcm47xxpart-get-nvram.patch @@ -8,7 +8,7 @@ /* * Some really old flashes (like AT45DB*) had smaller erasesize-s, but -@@ -334,12 +335,23 @@ static int bcm47xxpart_parse(struct mtd_ +@@ -332,12 +333,23 @@ static int bcm47xxpart_parse(struct mtd_ if (buf[0] == NVRAM_HEADER) { bcm47xxpart_add_part(&parts[curr_part++], "nvram", master->size - blocksize, 0); diff --git a/target/linux/generic/patches-4.4/070-0001-bgmac-fix-a-missing-check-for-build_skb.patch b/target/linux/generic/patches-4.4/070-0001-bgmac-fix-a-missing-check-for-build_skb.patch index 7e6dc2035d8..99f9de65a7c 100644 --- a/target/linux/generic/patches-4.4/070-0001-bgmac-fix-a-missing-check-for-build_skb.patch +++ b/target/linux/generic/patches-4.4/070-0001-bgmac-fix-a-missing-check-for-build_skb.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -466,6 +466,11 @@ static int bgmac_dma_rx_read(struct bgma +@@ -469,6 +469,11 @@ static int bgmac_dma_rx_read(struct bgma len -= ETH_FCS_LEN; skb = build_skb(buf, BGMAC_RX_ALLOC_SIZE); diff --git a/target/linux/generic/patches-4.4/070-0002-bgmac-Fix-reversed-test-of-build_skb-return-value.patch b/target/linux/generic/patches-4.4/070-0002-bgmac-Fix-reversed-test-of-build_skb-return-value.patch index 0b0a28d81a8..eebcded6fa8 100644 --- a/target/linux/generic/patches-4.4/070-0002-bgmac-Fix-reversed-test-of-build_skb-return-value.patch +++ b/target/linux/generic/patches-4.4/070-0002-bgmac-Fix-reversed-test-of-build_skb-return-value.patch @@ -11,7 +11,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -466,7 +466,7 @@ static int bgmac_dma_rx_read(struct bgma +@@ -469,7 +469,7 @@ static int bgmac_dma_rx_read(struct bgma len -= ETH_FCS_LEN; skb = build_skb(buf, BGMAC_RX_ALLOC_SIZE); diff --git a/target/linux/generic/patches-4.4/071-0001-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch b/target/linux/generic/patches-4.4/071-0001-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch index 4008c299630..0c007569fbe 100644 --- a/target/linux/generic/patches-4.4/071-0001-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch +++ b/target/linux/generic/patches-4.4/071-0001-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch @@ -36,7 +36,7 @@ Signed-off-by: David S. Miller static bool bgmac_wait_value(struct bcma_device *core, u16 reg, u32 mask, u32 value, int timeout) { -@@ -987,11 +998,9 @@ static void bgmac_mac_speed(struct bgmac +@@ -990,11 +1001,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 bcma_awrite32(core, BCMA_IOCTL, bcma_aread32(core, BCMA_IOCTL) | 0x40 | BGMAC_BCMA_IOCTL_SW_CLKEN); -@@ -1055,9 +1064,7 @@ static void bgmac_chip_reset(struct bgma +@@ -1058,9 +1067,7 @@ static void bgmac_chip_reset(struct bgma } /* Request Misc PLL for corerev > 2 */ @@ -60,7 +60,7 @@ Signed-off-by: David S. Miller bgmac_set(bgmac, BCMA_CLKCTLST, BGMAC_BCMA_CLKCTLST_MISC_PLL_REQ); bgmac_wait_value(bgmac->core, BCMA_CLKCTLST, -@@ -1193,8 +1200,7 @@ static void bgmac_enable(struct bgmac *b +@@ -1196,8 +1203,7 @@ static void bgmac_enable(struct bgmac *b break; } @@ -70,7 +70,7 @@ Signed-off-by: David S. Miller 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) / -@@ -1472,14 +1478,12 @@ static int bgmac_fixed_phy_register(stru +@@ -1475,14 +1481,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 return bgmac_fixed_phy_register(bgmac); mii_bus = mdiobus_alloc(); -@@ -1550,7 +1554,6 @@ static void bgmac_mii_unregister(struct +@@ -1553,7 +1557,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 struct net_device *net_dev; struct bgmac *bgmac; struct ssb_sprom *sprom = &core->bus->sprom; -@@ -1631,8 +1634,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1634,8 +1637,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/071-0002-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch b/target/linux/generic/patches-4.4/071-0002-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch index 514fe26f1ba..d00c2bd5515 100644 --- a/target/linux/generic/patches-4.4/071-0002-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch +++ b/target/linux/generic/patches-4.4/071-0002-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch @@ -25,7 +25,7 @@ Signed-off-by: David S. Miller case BCMA_CHIP_ID_BCM53018: return true; default: -@@ -1052,8 +1053,9 @@ static void bgmac_chip_reset(struct bgma +@@ -1055,8 +1056,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/071-0003-bgmac-reset-enable-Ethernet-core-before-using-it.patch b/target/linux/generic/patches-4.4/071-0003-bgmac-reset-enable-Ethernet-core-before-using-it.patch index 4375868b167..021a5913aa3 100644 --- a/target/linux/generic/patches-4.4/071-0003-bgmac-reset-enable-Ethernet-core-before-using-it.patch +++ b/target/linux/generic/patches-4.4/071-0003-bgmac-reset-enable-Ethernet-core-before-using-it.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1583,6 +1583,11 @@ static int bgmac_probe(struct bcma_devic +@@ -1586,6 +1586,11 @@ static int bgmac_probe(struct bcma_devic dev_warn(&core->dev, "Using random MAC: %pM\n", mac); } diff --git a/target/linux/generic/patches-4.4/072-0001-bgmac-Bind-net_device-with-backing-device-structure.patch b/target/linux/generic/patches-4.4/072-0001-bgmac-Bind-net_device-with-backing-device-structure.patch index 764b16801df..4d00094aa8d 100644 --- a/target/linux/generic/patches-4.4/072-0001-bgmac-Bind-net_device-with-backing-device-structure.patch +++ b/target/linux/generic/patches-4.4/072-0001-bgmac-Bind-net_device-with-backing-device-structure.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1599,6 +1599,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1602,6 +1602,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/072-0002-bgmac-Add-support-for-ethtool-statistics.patch b/target/linux/generic/patches-4.4/072-0002-bgmac-Add-support-for-ethtool-statistics.patch index 8f6b6c80fca..cff70802d2f 100644 --- a/target/linux/generic/patches-4.4/072-0002-bgmac-Add-support-for-ethtool-statistics.patch +++ b/target/linux/generic/patches-4.4/072-0002-bgmac-Add-support-for-ethtool-statistics.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1382,6 +1382,127 @@ static const struct net_device_ops bgmac +@@ -1385,6 +1385,127 @@ static const struct net_device_ops bgmac * ethtool_ops **************************************************/ @@ -143,7 +143,7 @@ Signed-off-by: David S. Miller static int bgmac_get_settings(struct net_device *net_dev, struct ethtool_cmd *cmd) { -@@ -1406,6 +1527,9 @@ static void bgmac_get_drvinfo(struct net +@@ -1409,6 +1530,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/072-0003-bgmac-Maintain-some-netdev-statistics.patch b/target/linux/generic/patches-4.4/072-0003-bgmac-Maintain-some-netdev-statistics.patch index 17a7ce060c8..322851d026d 100644 --- a/target/linux/generic/patches-4.4/072-0003-bgmac-Maintain-some-netdev-statistics.patch +++ b/target/linux/generic/patches-4.4/072-0003-bgmac-Maintain-some-netdev-statistics.patch @@ -32,7 +32,7 @@ Signed-off-by: David S. Miller bytes_compl += slot->skb->len; pkts_compl++; -@@ -464,6 +468,7 @@ static int bgmac_dma_rx_read(struct bgma +@@ -467,6 +471,7 @@ static int bgmac_dma_rx_read(struct bgma bgmac_err(bgmac, "Found poisoned packet at slot %d, DMA issue!\n", ring->start); put_page(virt_to_head_page(buf)); @@ -40,7 +40,7 @@ Signed-off-by: David S. Miller break; } -@@ -471,6 +476,8 @@ static int bgmac_dma_rx_read(struct bgma +@@ -474,6 +479,8 @@ static int bgmac_dma_rx_read(struct bgma bgmac_err(bgmac, "Found oversized packet at slot %d, DMA issue!\n", ring->start); put_page(virt_to_head_page(buf)); @@ -49,7 +49,7 @@ Signed-off-by: David S. Miller break; } -@@ -481,6 +488,7 @@ static int bgmac_dma_rx_read(struct bgma +@@ -484,6 +491,7 @@ static int bgmac_dma_rx_read(struct bgma if (unlikely(!skb)) { bgmac_err(bgmac, "build_skb failed\n"); put_page(virt_to_head_page(buf)); @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller break; } skb_put(skb, BGMAC_RX_FRAME_OFFSET + -@@ -490,6 +498,8 @@ static int bgmac_dma_rx_read(struct bgma +@@ -493,6 +501,8 @@ static int bgmac_dma_rx_read(struct bgma skb_checksum_none_assert(skb); skb->protocol = eth_type_trans(skb, bgmac->net_dev); diff --git a/target/linux/generic/patches-4.4/073-0001-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch b/target/linux/generic/patches-4.4/073-0001-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch index 17fbea034fe..8c97b099705 100644 --- a/target/linux/generic/patches-4.4/073-0001-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch +++ b/target/linux/generic/patches-4.4/073-0001-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1320,7 +1320,7 @@ static int bgmac_open(struct net_device +@@ -1323,7 +1323,7 @@ static int bgmac_open(struct net_device } napi_enable(&bgmac->napi); @@ -26,7 +26,7 @@ Signed-off-by: David S. Miller netif_carrier_on(net_dev); return 0; -@@ -1332,7 +1332,7 @@ static int bgmac_stop(struct net_device +@@ -1335,7 +1335,7 @@ static int bgmac_stop(struct net_device netif_carrier_off(net_dev); @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller napi_disable(&bgmac->napi); bgmac_chip_intrs_off(bgmac); -@@ -1370,12 +1370,10 @@ static int bgmac_set_mac_address(struct +@@ -1373,12 +1373,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 } static const struct net_device_ops bgmac_netdev_ops = { -@@ -1518,7 +1516,7 @@ static int bgmac_get_settings(struct net +@@ -1521,7 +1519,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 } static int bgmac_set_settings(struct net_device *net_dev, -@@ -1526,7 +1524,7 @@ static int bgmac_set_settings(struct net +@@ -1529,7 +1527,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 } static void bgmac_get_drvinfo(struct net_device *net_dev, -@@ -1563,7 +1561,7 @@ static int bgmac_mii_write(struct mii_bu +@@ -1566,7 +1564,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 bool update = false; if (phy_dev->link) { -@@ -1607,8 +1605,6 @@ static int bgmac_fixed_phy_register(stru +@@ -1610,8 +1608,6 @@ static int bgmac_fixed_phy_register(stru return err; } @@ -85,7 +85,7 @@ Signed-off-by: David S. Miller return err; } -@@ -1661,7 +1657,6 @@ static int bgmac_mii_register(struct bgm +@@ -1664,7 +1660,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/074-0002-net-bgmac-Start-transmit-queue-in-bgmac_open.patch b/target/linux/generic/patches-4.4/074-0002-net-bgmac-Start-transmit-queue-in-bgmac_open.patch index 84772aa920d..6a866bccdbb 100644 --- a/target/linux/generic/patches-4.4/074-0002-net-bgmac-Start-transmit-queue-in-bgmac_open.patch +++ b/target/linux/generic/patches-4.4/074-0002-net-bgmac-Start-transmit-queue-in-bgmac_open.patch @@ -16,7 +16,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1324,6 +1324,9 @@ static int bgmac_open(struct net_device +@@ -1327,6 +1327,9 @@ static int bgmac_open(struct net_device phy_start(net_dev->phydev); netif_carrier_on(net_dev); diff --git a/target/linux/generic/patches-4.4/074-0003-net-bgmac-Remove-superflous-netif_carrier_on.patch b/target/linux/generic/patches-4.4/074-0003-net-bgmac-Remove-superflous-netif_carrier_on.patch index edb027c5048..0edf9ee9fa8 100644 --- a/target/linux/generic/patches-4.4/074-0003-net-bgmac-Remove-superflous-netif_carrier_on.patch +++ b/target/linux/generic/patches-4.4/074-0003-net-bgmac-Remove-superflous-netif_carrier_on.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1323,8 +1323,6 @@ static int bgmac_open(struct net_device +@@ -1326,8 +1326,6 @@ static int bgmac_open(struct net_device phy_start(net_dev->phydev); diff --git a/target/linux/generic/patches-4.4/075-0001-net-ethernet-bgmac-change-bgmac_-prints-to-dev_-prin.patch b/target/linux/generic/patches-4.4/075-0001-net-ethernet-bgmac-change-bgmac_-prints-to-dev_-prin.patch index 63b4f4a167d..3837b609435 100644 --- a/target/linux/generic/patches-4.4/075-0001-net-ethernet-bgmac-change-bgmac_-prints-to-dev_-prin.patch +++ b/target/linux/generic/patches-4.4/075-0001-net-ethernet-bgmac-change-bgmac_-prints-to-dev_-prin.patch @@ -101,7 +101,7 @@ Signed-off-by: David S. Miller } static void bgmac_dma_rx_enable(struct bgmac *bgmac, -@@ -371,7 +371,7 @@ static int bgmac_dma_rx_skb_for_slot(str +@@ -374,7 +374,7 @@ static int bgmac_dma_rx_skb_for_slot(str dma_addr = dma_map_single(dma_dev, buf + BGMAC_RX_BUF_OFFSET, BGMAC_RX_BUF_SIZE, DMA_FROM_DEVICE); if (dma_mapping_error(dma_dev, dma_addr)) { @@ -110,7 +110,7 @@ Signed-off-by: David S. Miller put_page(virt_to_head_page(buf)); return -ENOMEM; } -@@ -466,16 +466,16 @@ static int bgmac_dma_rx_read(struct bgma +@@ -469,16 +469,16 @@ static int bgmac_dma_rx_read(struct bgma /* Check for poison and drop or pass the packet */ if (len == 0xdead && flags == 0xbeef) { @@ -131,7 +131,7 @@ Signed-off-by: David S. Miller put_page(virt_to_head_page(buf)); bgmac->net_dev->stats.rx_length_errors++; bgmac->net_dev->stats.rx_errors++; -@@ -487,7 +487,7 @@ static int bgmac_dma_rx_read(struct bgma +@@ -490,7 +490,7 @@ static int bgmac_dma_rx_read(struct bgma skb = build_skb(buf, BGMAC_RX_ALLOC_SIZE); if (unlikely(!skb)) { @@ -140,7 +140,7 @@ Signed-off-by: David S. Miller put_page(virt_to_head_page(buf)); bgmac->net_dev->stats.rx_errors++; break; -@@ -641,7 +641,7 @@ static int bgmac_dma_alloc(struct bgmac +@@ -644,7 +644,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 return -ENOTSUPP; } -@@ -655,8 +655,8 @@ static int bgmac_dma_alloc(struct bgmac +@@ -658,8 +658,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 goto err_dma_free; } -@@ -680,8 +680,8 @@ static int bgmac_dma_alloc(struct bgmac +@@ -683,8 +683,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 err = -ENOMEM; goto err_dma_free; } -@@ -800,8 +800,8 @@ static u16 bgmac_phy_read(struct bgmac * +@@ -803,8 +803,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 return 0xffff; } -@@ -833,7 +833,7 @@ static int bgmac_phy_write(struct bgmac +@@ -836,7 +836,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 tmp = BGMAC_PA_START; tmp |= BGMAC_PA_WRITE; -@@ -843,8 +843,8 @@ static int bgmac_phy_write(struct bgmac +@@ -846,8 +846,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 return -ETIMEDOUT; } -@@ -897,7 +897,7 @@ static void bgmac_phy_reset(struct bgmac +@@ -900,7 +900,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 bgmac_phy_init(bgmac); } -@@ -998,7 +998,8 @@ static void bgmac_mac_speed(struct bgmac +@@ -1001,7 +1001,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 } if (bgmac->mac_duplex == DUPLEX_HALF) -@@ -1097,8 +1098,8 @@ static void bgmac_chip_reset(struct bgma +@@ -1100,8 +1101,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 et_swtype &= 0x0f; et_swtype <<= 4; sw_type = et_swtype; -@@ -1261,7 +1262,7 @@ static irqreturn_t bgmac_interrupt(int i +@@ -1264,7 +1265,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 /* Disable new interrupts until handling existing ones */ bgmac_chip_intrs_off(bgmac); -@@ -1315,7 +1316,7 @@ static int bgmac_open(struct net_device +@@ -1318,7 +1319,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 bgmac_dma_cleanup(bgmac); return err; } -@@ -1596,14 +1597,14 @@ static int bgmac_fixed_phy_register(stru +@@ -1599,14 +1600,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 return err; } -@@ -1643,7 +1644,7 @@ static int bgmac_mii_register(struct bgm +@@ -1646,7 +1647,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 goto err_free_irq; } -@@ -1655,7 +1656,7 @@ static int bgmac_mii_register(struct bgm +@@ -1658,7 +1659,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 err = PTR_ERR(phy_dev); goto err_unregister_bus; } -@@ -1704,7 +1705,8 @@ static int bgmac_probe(struct bcma_devic +@@ -1707,7 +1708,8 @@ static int bgmac_probe(struct bcma_devic mac = sprom->et2mac; break; default: @@ -295,7 +295,7 @@ Signed-off-by: David S. Miller return -ENOTSUPP; } -@@ -1727,6 +1729,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1730,6 +1732,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 bgmac->net_dev = net_dev; bgmac->core = core; bcma_set_drvdata(core, bgmac); -@@ -1738,7 +1741,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1741,7 +1744,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 err = -ENODEV; goto err_netdev_free; } -@@ -1757,15 +1760,15 @@ static int bgmac_probe(struct bcma_devic +@@ -1760,15 +1763,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 err = -ENOTSUPP; goto err_netdev_free; } -@@ -1794,7 +1797,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1797,7 +1800,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 goto err_netdev_free; } -@@ -1808,16 +1811,16 @@ static int bgmac_probe(struct bcma_devic +@@ -1811,16 +1814,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 goto err_dma_free; } -@@ -1827,7 +1830,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1830,7 +1833,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/075-0002-net-ethernet-bgmac-add-dma_dev-pointer.patch b/target/linux/generic/patches-4.4/075-0002-net-ethernet-bgmac-add-dma_dev-pointer.patch index eeef86af9a6..dd5b8772e3a 100644 --- a/target/linux/generic/patches-4.4/075-0002-net-ethernet-bgmac-add-dma_dev-pointer.patch +++ b/target/linux/generic/patches-4.4/075-0002-net-ethernet-bgmac-add-dma_dev-pointer.patch @@ -38,7 +38,7 @@ Signed-off-by: David S. Miller int empty_slot; bool freed = false; unsigned bytes_compl = 0, pkts_compl = 0; -@@ -352,7 +352,7 @@ static void bgmac_dma_rx_enable(struct b +@@ -355,7 +355,7 @@ static void bgmac_dma_rx_enable(struct b static int bgmac_dma_rx_skb_for_slot(struct bgmac *bgmac, struct bgmac_slot_info *slot) { @@ -47,7 +47,7 @@ Signed-off-by: David S. Miller dma_addr_t dma_addr; struct bgmac_rx_header *rx; void *buf; -@@ -441,7 +441,7 @@ static int bgmac_dma_rx_read(struct bgma +@@ -444,7 +444,7 @@ static int bgmac_dma_rx_read(struct bgma end_slot /= sizeof(struct bgmac_dma_desc); while (ring->start != end_slot) { @@ -56,7 +56,7 @@ Signed-off-by: David S. Miller struct bgmac_slot_info *slot = &ring->slots[ring->start]; struct bgmac_rx_header *rx = slot->buf + BGMAC_RX_BUF_OFFSET; struct sk_buff *skb; -@@ -544,7 +544,7 @@ static bool bgmac_dma_unaligned(struct b +@@ -547,7 +547,7 @@ static bool bgmac_dma_unaligned(struct b static void bgmac_dma_tx_ring_free(struct bgmac *bgmac, struct bgmac_dma_ring *ring) { @@ -65,7 +65,7 @@ Signed-off-by: David S. Miller struct bgmac_dma_desc *dma_desc = ring->cpu_base; struct bgmac_slot_info *slot; int i; -@@ -570,7 +570,7 @@ static void bgmac_dma_tx_ring_free(struc +@@ -573,7 +573,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 struct bgmac_slot_info *slot; int i; -@@ -591,7 +591,7 @@ static void bgmac_dma_ring_desc_free(str +@@ -594,7 +594,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 int size; if (!ring->cpu_base) -@@ -629,7 +629,7 @@ static void bgmac_dma_free(struct bgmac +@@ -632,7 +632,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 struct bgmac_dma_ring *ring; static const u16 ring_base[] = { BGMAC_DMA_BASE0, BGMAC_DMA_BASE1, BGMAC_DMA_BASE2, BGMAC_DMA_BASE3, }; -@@ -1730,6 +1730,7 @@ static int bgmac_probe(struct bcma_devic +@@ -1733,6 +1733,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/075-0003-net-ethernet-bgmac-move-BCMA-MDIO-Phy-code-into-a-se.patch b/target/linux/generic/patches-4.4/075-0003-net-ethernet-bgmac-move-BCMA-MDIO-Phy-code-into-a-se.patch index f698a6fca03..bc7b246cc1b 100644 --- a/target/linux/generic/patches-4.4/075-0003-net-ethernet-bgmac-move-BCMA-MDIO-Phy-code-into-a-se.patch +++ b/target/linux/generic/patches-4.4/075-0003-net-ethernet-bgmac-move-BCMA-MDIO-Phy-code-into-a-se.patch @@ -317,7 +317,7 @@ Signed-off-by: David S. Miller +MODULE_LICENSE("GPL"); --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -756,150 +756,6 @@ error: +@@ -759,150 +759,6 @@ error: return err; } @@ -468,7 +468,7 @@ Signed-off-by: David S. Miller /************************************************** * Chip ops -@@ -1156,7 +1012,8 @@ static void bgmac_chip_reset(struct bgma +@@ -1159,7 +1015,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 netdev_reset_queue(bgmac->net_dev); } -@@ -1550,17 +1407,6 @@ static const struct ethtool_ops bgmac_et +@@ -1553,17 +1410,6 @@ static const struct ethtool_ops bgmac_et * MII **************************************************/ @@ -496,7 +496,7 @@ Signed-off-by: David S. Miller static void bgmac_adjust_link(struct net_device *net_dev) { struct bgmac *bgmac = netdev_priv(net_dev); -@@ -1585,7 +1431,7 @@ static void bgmac_adjust_link(struct net +@@ -1588,7 +1434,7 @@ static void bgmac_adjust_link(struct net } } @@ -505,7 +505,7 @@ Signed-off-by: David S. Miller { struct fixed_phy_status fphy_status = { .link = 1, -@@ -1611,81 +1457,24 @@ static int bgmac_fixed_phy_register(stru +@@ -1614,81 +1460,24 @@ static int bgmac_fixed_phy_register(stru return err; } @@ -591,7 +591,7 @@ Signed-off-by: David S. Miller static int bgmac_probe(struct bcma_device *core) { struct net_device *net_dev; -@@ -1806,9 +1595,6 @@ static int bgmac_probe(struct bcma_devic +@@ -1809,9 +1598,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 bgmac->has_robosw = !!(core->bus->sprom.boardflags_lo & BGMAC_BFL_ENETROBO); if (bgmac->has_robosw) -@@ -1819,10 +1605,25 @@ static int bgmac_probe(struct bcma_devic +@@ -1822,10 +1608,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 } net_dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; -@@ -1832,18 +1633,19 @@ static int bgmac_probe(struct bcma_devic +@@ -1835,18 +1636,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 err_netdev_free: bcma_set_drvdata(core, NULL); free_netdev(net_dev); -@@ -1856,7 +1658,8 @@ static void bgmac_remove(struct bcma_dev +@@ -1859,7 +1661,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/075-0004-net-ethernet-bgmac-convert-to-feature-flags.patch b/target/linux/generic/patches-4.4/075-0004-net-ethernet-bgmac-convert-to-feature-flags.patch index 82f432d5ffa..0f627919d04 100644 --- a/target/linux/generic/patches-4.4/075-0004-net-ethernet-bgmac-convert-to-feature-flags.patch +++ b/target/linux/generic/patches-4.4/075-0004-net-ethernet-bgmac-convert-to-feature-flags.patch @@ -32,16 +32,16 @@ Signed-off-by: David S. Miller ctl &= ~BGMAC_DMA_TX_BL_MASK; ctl |= BGMAC_DMA_TX_BL_128 << BGMAC_DMA_TX_BL_SHIFT; -@@ -331,7 +331,7 @@ static void bgmac_dma_rx_enable(struct b - u32 ctl; +@@ -335,7 +335,7 @@ static void bgmac_dma_rx_enable(struct b + /* preserve ONLY bits 16-17 from current hardware value */ + ctl &= BGMAC_DMA_RX_ADDREXT_MASK; - ctl = bgmac_read(bgmac, ring->mmio_base + BGMAC_DMA_RX_CTL); - if (bgmac->core->id.rev >= 4) { + if (bgmac->feature_flags & BGMAC_FEAT_RX_MASK_SETUP) { ctl &= ~BGMAC_DMA_RX_BL_MASK; ctl |= BGMAC_DMA_RX_BL_128 << BGMAC_DMA_RX_BL_SHIFT; -@@ -769,14 +769,20 @@ static void bgmac_cmdcfg_maskset(struct +@@ -772,14 +772,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 udelay(2); } -@@ -805,7 +811,7 @@ static void bgmac_chip_stats_update(stru +@@ -808,7 +814,7 @@ static void bgmac_chip_stats_update(stru { int i; @@ -73,7 +73,7 @@ Signed-off-by: David S. Miller for (i = 0; i < BGMAC_NUM_MIB_TX_REGS; i++) bgmac->mib_tx_regs[i] = bgmac_read(bgmac, -@@ -824,7 +830,7 @@ static void bgmac_clear_mib(struct bgmac +@@ -827,7 +833,7 @@ static void bgmac_clear_mib(struct bgmac { int i; @@ -82,7 +82,7 @@ Signed-off-by: David S. Miller return; bgmac_set(bgmac, BGMAC_DEV_CTL, BGMAC_DC_MROR); -@@ -867,9 +873,8 @@ static void bgmac_mac_speed(struct bgmac +@@ -870,9 +876,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 bcma_awrite32(core, BCMA_IOCTL, bcma_aread32(core, BCMA_IOCTL) | 0x40 | BGMAC_BCMA_IOCTL_SW_CLKEN); -@@ -877,6 +882,8 @@ static void bgmac_miiconfig(struct bgmac +@@ -880,6 +885,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 imode = (bgmac_read(bgmac, BGMAC_DEV_STATUS) & BGMAC_DS_MM_MASK) >> BGMAC_DS_MM_SHIFT; if (imode == 0 || imode == 1) { -@@ -891,9 +898,7 @@ static void bgmac_miiconfig(struct bgmac +@@ -894,9 +901,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 u32 iost; int i; -@@ -916,15 +921,12 @@ static void bgmac_chip_reset(struct bgma +@@ -919,15 +924,12 @@ static void bgmac_chip_reset(struct bgma } iost = bcma_aread32(core, BCMA_IOST); @@ -132,7 +132,7 @@ Signed-off-by: David S. Miller if (iost & BGMAC_BCMA_IOST_ATTACHED) { flags = BGMAC_BCMA_IOCTL_SW_CLKEN; if (!bgmac->has_robosw) -@@ -934,7 +936,7 @@ static void bgmac_chip_reset(struct bgma +@@ -937,7 +939,7 @@ static void bgmac_chip_reset(struct bgma } /* Request Misc PLL for corerev > 2 */ @@ -141,7 +141,7 @@ Signed-off-by: David S. Miller bgmac_set(bgmac, BCMA_CLKCTLST, BGMAC_BCMA_CLKCTLST_MISC_PLL_REQ); bgmac_wait_value(bgmac->core, BCMA_CLKCTLST, -@@ -943,9 +945,7 @@ static void bgmac_chip_reset(struct bgma +@@ -946,9 +948,7 @@ static void bgmac_chip_reset(struct bgma 1000); } @@ -152,7 +152,7 @@ Signed-off-by: David S. Miller struct bcma_drv_cc *cc = &bgmac->core->bus->drv_cc; u8 et_swtype = 0; u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY | -@@ -959,11 +959,9 @@ static void bgmac_chip_reset(struct bgma +@@ -962,11 +962,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 sw_type = BGMAC_CHIPCTL_1_IF_TYPE_RGMII | BGMAC_CHIPCTL_1_SW_TYPE_RGMII; } -@@ -983,6 +981,11 @@ static void bgmac_chip_reset(struct bgma +@@ -986,6 +984,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 bgmac_cmdcfg_maskset(bgmac, ~(BGMAC_CMDCFG_TE | BGMAC_CMDCFG_RE | -@@ -1000,13 +1003,13 @@ static void bgmac_chip_reset(struct bgma +@@ -1003,13 +1006,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 bcma_maskset32(bgmac->cmn, BCMA_GMAC_CMN_PHY_CTL, ~0, BCMA_GMAC_CMN_PC_MTE); else -@@ -1032,46 +1035,48 @@ static void bgmac_chip_intrs_off(struct +@@ -1035,46 +1038,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 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) / -@@ -1603,6 +1608,74 @@ static int bgmac_probe(struct bcma_devic +@@ -1606,6 +1611,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/075-0005-net-ethernet-bgmac-Add-platform-device-support.patch b/target/linux/generic/patches-4.4/075-0005-net-ethernet-bgmac-Add-platform-device-support.patch index 4a695247615..57551849494 100644 --- a/target/linux/generic/patches-4.4/075-0005-net-ethernet-bgmac-Add-platform-device-support.patch +++ b/target/linux/generic/patches-4.4/075-0005-net-ethernet-bgmac-Add-platform-device-support.patch @@ -689,7 +689,7 @@ Signed-off-by: David S. Miller ring->mmio_base + BGMAC_DMA_RX_STATUS, BGMAC_DMA_RX_STAT, BGMAC_DMA_RX_STAT_DISABLED, 10000)) -@@ -640,7 +616,7 @@ static int bgmac_dma_alloc(struct bgmac +@@ -643,7 +619,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 dev_err(bgmac->dev, "Core does not report 64-bit DMA\n"); return -ENOTSUPP; } -@@ -872,12 +848,10 @@ static void bgmac_mac_speed(struct bgmac +@@ -875,12 +851,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 bgmac->mac_speed = SPEED_2500; bgmac->mac_duplex = DUPLEX_FULL; bgmac_mac_speed(bgmac); -@@ -897,12 +871,11 @@ static void bgmac_miiconfig(struct bgmac +@@ -900,12 +874,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 if (!bgmac->stats_grabbed) { /* bgmac_chip_stats_update(bgmac); */ bgmac->stats_grabbed = true; -@@ -920,7 +893,7 @@ static void bgmac_chip_reset(struct bgma +@@ -923,7 +896,7 @@ static void bgmac_chip_reset(struct bgma /* TODO: Clear software multicast filter list */ } @@ -737,7 +737,7 @@ Signed-off-by: David S. Miller if (bgmac->feature_flags & BGMAC_FEAT_IOST_ATTACHED) iost &= ~BGMAC_BCMA_IOST_ATTACHED; -@@ -932,21 +905,20 @@ static void bgmac_chip_reset(struct bgma +@@ -935,21 +908,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 u8 et_swtype = 0; u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY | BGMAC_CHIPCTL_1_IF_TYPE_MII; -@@ -965,16 +937,15 @@ static void bgmac_chip_reset(struct bgma +@@ -968,16 +940,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 /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/gmac_reset * Specs don't say about using BGMAC_CMDCFG_SR, but in this routine -@@ -1010,8 +981,8 @@ static void bgmac_chip_reset(struct bgma +@@ -1013,8 +984,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 else bgmac_set(bgmac, BGMAC_PHY_CNTL, BGMAC_PC_MTE); bgmac_miiconfig(bgmac); -@@ -1056,8 +1027,8 @@ static void bgmac_enable(struct bgmac *b +@@ -1059,8 +1030,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 if (bgmac->feature_flags & (BGMAC_FEAT_FLW_CTRL1 | BGMAC_FEAT_FLW_CTRL2)) { -@@ -1079,8 +1050,7 @@ static void bgmac_enable(struct bgmac *b +@@ -1082,8 +1053,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 mdp = (bp_clk * 128 / 1000) - 3; rxq_ctl |= (mdp << BGMAC_RXQ_CTL_MDP_SHIFT); bgmac_write(bgmac, BGMAC_RXQ_CTL, rxq_ctl); -@@ -1175,7 +1145,7 @@ static int bgmac_open(struct net_device +@@ -1178,7 +1148,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 KBUILD_MODNAME, net_dev); if (err < 0) { dev_err(bgmac->dev, "IRQ request error: %d!\n", err); -@@ -1201,7 +1171,7 @@ static int bgmac_stop(struct net_device +@@ -1204,7 +1174,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 bgmac_chip_reset(bgmac); bgmac_dma_cleanup(bgmac); -@@ -1396,7 +1366,7 @@ static void bgmac_get_drvinfo(struct net +@@ -1399,7 +1369,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 } static const struct ethtool_ops bgmac_ethtool_ops = { -@@ -1480,116 +1450,41 @@ static int bgmac_phy_connect(struct bgma +@@ -1483,116 +1453,41 @@ static int bgmac_phy_connect(struct bgma return 0; } @@ -976,7 +976,7 @@ Signed-off-by: David S. Miller err = bgmac_dma_alloc(bgmac); if (err) { dev_err(bgmac->dev, "Unable to alloc memory for DMA\n"); -@@ -1600,103 +1495,15 @@ static int bgmac_probe(struct bcma_devic +@@ -1603,103 +1498,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 } net_dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; -@@ -1715,56 +1522,24 @@ static int bgmac_probe(struct bcma_devic +@@ -1718,56 +1525,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/077-0001-net-bgmac-support-Ethernet-core-on-BCM53573-SoCs.patch b/target/linux/generic/patches-4.4/077-0001-net-bgmac-support-Ethernet-core-on-BCM53573-SoCs.patch index c47aab7e06d..82d3fe4d6d1 100644 --- a/target/linux/generic/patches-4.4/077-0001-net-bgmac-support-Ethernet-core-on-BCM53573-SoCs.patch +++ b/target/linux/generic/patches-4.4/077-0001-net-bgmac-support-Ethernet-core-on-BCM53573-SoCs.patch @@ -75,7 +75,7 @@ Signed-off-by: David S. Miller bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK; --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -940,6 +940,27 @@ static void bgmac_chip_reset(struct bgma +@@ -943,6 +943,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 } if (iost & BGMAC_BCMA_IOST_ATTACHED && !bgmac->has_robosw) -@@ -1483,6 +1504,10 @@ int bgmac_enet_probe(struct bgmac *info) +@@ -1486,6 +1507,10 @@ int bgmac_enet_probe(struct bgmac *info) */ bgmac_clk_enable(bgmac, 0); diff --git a/target/linux/generic/patches-4.4/077-0002-net-bgmac-make-it-clear-when-setting-interface-type-.patch b/target/linux/generic/patches-4.4/077-0002-net-bgmac-make-it-clear-when-setting-interface-type-.patch index 5f60a32576f..272ec5c3f36 100644 --- a/target/linux/generic/patches-4.4/077-0002-net-bgmac-make-it-clear-when-setting-interface-type-.patch +++ b/target/linux/generic/patches-4.4/077-0002-net-bgmac-make-it-clear-when-setting-interface-type-.patch @@ -19,7 +19,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -932,7 +932,8 @@ static void bgmac_chip_reset(struct bgma +@@ -935,7 +935,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/077-0003-net-bgmac-Fix-errant-feature-flag-check.patch b/target/linux/generic/patches-4.4/077-0003-net-bgmac-Fix-errant-feature-flag-check.patch index 68c885b86b3..830d8ccde47 100644 --- a/target/linux/generic/patches-4.4/077-0003-net-bgmac-Fix-errant-feature-flag-check.patch +++ b/target/linux/generic/patches-4.4/077-0003-net-bgmac-Fix-errant-feature-flag-check.patch @@ -22,7 +22,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1046,7 +1046,7 @@ static void bgmac_enable(struct bgmac *b +@@ -1049,7 +1049,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/077-0004-net-bgmac-fix-spelling-mistake-connecton-connection.patch b/target/linux/generic/patches-4.4/077-0004-net-bgmac-fix-spelling-mistake-connecton-connection.patch index 9abe559e1d3..5721abcf95d 100644 --- a/target/linux/generic/patches-4.4/077-0004-net-bgmac-fix-spelling-mistake-connecton-connection.patch +++ b/target/linux/generic/patches-4.4/077-0004-net-bgmac-fix-spelling-mistake-connecton-connection.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1465,7 +1465,7 @@ static int bgmac_phy_connect(struct bgma +@@ -1468,7 +1468,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/077-0005-bgmac-stop-clearing-DMA-receive-control-register-rig.patch b/target/linux/generic/patches-4.4/077-0005-bgmac-stop-clearing-DMA-receive-control-register-rig.patch deleted file mode 100644 index e09524b0fa3..00000000000 --- a/target/linux/generic/patches-4.4/077-0005-bgmac-stop-clearing-DMA-receive-control-register-rig.patch +++ /dev/null @@ -1,54 +0,0 @@ -From fcdefccac976ee51dd6071832b842d8fb41c479c Mon Sep 17 00:00:00 2001 -From: Andy Gospodarek -Date: Mon, 31 Oct 2016 13:32:03 -0400 -Subject: [PATCH] bgmac: stop clearing DMA receive control register right after - it is set - -Current bgmac code initializes some DMA settings in the receive control -register for some hardware and then immediately clears those settings. -Not clearing those settings results in ~420Mbps *improvement* in -throughput; this system can now receive frames at line-rate on Broadcom -5871x hardware compared to ~520Mbps today. I also tested a few other -values but found there to be no discernible difference in CPU -utilization even if burst size and prefetching values are different. - -On the hardware tested there was no need to keep the code that cleared -all but bits 16-17, but since there is a wide variety of hardware that -used this driver (I did not look at all hardware docs for hardware using -this IP block), I find it wise to move this call up and clear bits just -after reading the default value from the hardware rather than completely -removing it. - -This is a good candidate for -stable >=3.14 since that is when the code -that was supposed to improve performance (but did not) was introduced. - -Signed-off-by: Andy Gospodarek -Fixes: 56ceecde1f29 ("bgmac: initialize the DMA controller of core...") -Cc: Hauke Mehrtens -Acked-by: Hauke Mehrtens -Signed-off-by: David S. Miller ---- - drivers/net/ethernet/broadcom/bgmac.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/drivers/net/ethernet/broadcom/bgmac.c -+++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -307,6 +307,10 @@ static void bgmac_dma_rx_enable(struct b - u32 ctl; - - ctl = bgmac_read(bgmac, ring->mmio_base + BGMAC_DMA_RX_CTL); -+ -+ /* preserve ONLY bits 16-17 from current hardware value */ -+ ctl &= BGMAC_DMA_RX_ADDREXT_MASK; -+ - if (bgmac->feature_flags & BGMAC_FEAT_RX_MASK_SETUP) { - ctl &= ~BGMAC_DMA_RX_BL_MASK; - ctl |= BGMAC_DMA_RX_BL_128 << BGMAC_DMA_RX_BL_SHIFT; -@@ -317,7 +321,6 @@ static void bgmac_dma_rx_enable(struct b - ctl &= ~BGMAC_DMA_RX_PT_MASK; - ctl |= BGMAC_DMA_RX_PT_1 << BGMAC_DMA_RX_PT_SHIFT; - } -- ctl &= BGMAC_DMA_RX_ADDREXT_MASK; - ctl |= BGMAC_DMA_RX_ENABLE; - ctl |= BGMAC_DMA_RX_PARITY_DISABLE; - ctl |= BGMAC_DMA_RX_OVERFLOW_CONT; diff --git a/target/linux/generic/patches-4.4/201-extra_optimization.patch b/target/linux/generic/patches-4.4/201-extra_optimization.patch index d2f6642226f..04192727c02 100644 --- a/target/linux/generic/patches-4.4/201-extra_optimization.patch +++ b/target/linux/generic/patches-4.4/201-extra_optimization.patch @@ -1,6 +1,6 @@ --- a/Makefile +++ b/Makefile -@@ -620,12 +620,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni +@@ -621,12 +621,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,) ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE diff --git a/target/linux/generic/patches-4.4/202-reduce_module_size.patch b/target/linux/generic/patches-4.4/202-reduce_module_size.patch index 283d48d9927..d68c463648a 100644 --- a/target/linux/generic/patches-4.4/202-reduce_module_size.patch +++ b/target/linux/generic/patches-4.4/202-reduce_module_size.patch @@ -1,7 +1,7 @@ --- a/Makefile +++ b/Makefile -@@ -402,7 +402,7 @@ KBUILD_CFLAGS_KERNEL := - KBUILD_AFLAGS := -D__ASSEMBLY__ +@@ -403,7 +403,7 @@ KBUILD_CFLAGS_KERNEL := + KBUILD_AFLAGS := -D__ASSEMBLY__ $(call cc-option,-fno-PIE) KBUILD_AFLAGS_MODULE := -DMODULE KBUILD_CFLAGS_MODULE := -DMODULE -KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds diff --git a/target/linux/generic/patches-4.4/902-debloat_proc.patch b/target/linux/generic/patches-4.4/902-debloat_proc.patch index c90f5500e8e..3123a4be686 100644 --- a/target/linux/generic/patches-4.4/902-debloat_proc.patch +++ b/target/linux/generic/patches-4.4/902-debloat_proc.patch @@ -173,7 +173,7 @@ goto err; --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -3035,6 +3035,8 @@ static __net_initdata struct pernet_oper +@@ -3036,6 +3036,8 @@ static __net_initdata struct pernet_oper static int __init proto_init(void) { @@ -184,7 +184,7 @@ --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c -@@ -2642,10 +2642,12 @@ static const struct file_operations fib_ +@@ -2639,10 +2639,12 @@ static const struct file_operations fib_ int __net_init fib_proc_init(struct net *net) { @@ -199,7 +199,7 @@ &fib_triestat_fops)) goto out2; -@@ -2655,17 +2657,21 @@ int __net_init fib_proc_init(struct net +@@ -2652,17 +2654,21 @@ int __net_init fib_proc_init(struct net return 0; out3: diff --git a/target/linux/ipq806x/patches-4.4/096-01-usb-dwc3-core-purge-dev_dbg-calls.patch b/target/linux/ipq806x/patches-4.4/096-01-usb-dwc3-core-purge-dev_dbg-calls.patch index b9408275291..6ace50cbc0b 100644 --- a/target/linux/ipq806x/patches-4.4/096-01-usb-dwc3-core-purge-dev_dbg-calls.patch +++ b/target/linux/ipq806x/patches-4.4/096-01-usb-dwc3-core-purge-dev_dbg-calls.patch @@ -12,11 +12,9 @@ Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) -diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 22b47973..de5e01f 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -272,7 +272,8 @@ static int dwc3_event_buffers_setup(struct dwc3 *dwc) +@@ -272,7 +272,8 @@ static int dwc3_event_buffers_setup(stru for (n = 0; n < dwc->num_event_buffers; n++) { evt = dwc->ev_buffs[n]; @@ -26,7 +24,7 @@ index 22b47973..de5e01f 100644 evt->buf, (unsigned long long) evt->dma, evt->length); -@@ -608,12 +609,13 @@ static int dwc3_core_init(struct dwc3 *dwc) +@@ -608,12 +609,13 @@ static int dwc3_core_init(struct dwc3 *d reg |= DWC3_GCTL_GBLHIBERNATIONEN; break; default: @@ -42,5 +40,3 @@ index 22b47973..de5e01f 100644 dwc->is_fpga = true; } --- -cgit v0.12 diff --git a/target/linux/ipq806x/patches-4.4/096-02-usb-dwc3-Update-maximum_speed-for-SuperSpeedPlus.patch b/target/linux/ipq806x/patches-4.4/096-02-usb-dwc3-Update-maximum_speed-for-SuperSpeedPlus.patch index 9575166f747..de0e47fc142 100644 --- a/target/linux/ipq806x/patches-4.4/096-02-usb-dwc3-Update-maximum_speed-for-SuperSpeedPlus.patch +++ b/target/linux/ipq806x/patches-4.4/096-02-usb-dwc3-Update-maximum_speed-for-SuperSpeedPlus.patch @@ -17,11 +17,9 @@ Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) -diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index de5e01f..001c755 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -962,10 +962,6 @@ static int dwc3_probe(struct platform_device *pdev) +@@ -962,10 +962,6 @@ static int dwc3_probe(struct platform_de fladj = pdata->fladj_value; } @@ -32,7 +30,7 @@ index de5e01f..001c755 100644 dwc->lpm_nyet_threshold = lpm_nyet_threshold; dwc->tx_de_emphasis = tx_de_emphasis; -@@ -1016,6 +1012,19 @@ static int dwc3_probe(struct platform_device *pdev) +@@ -1016,6 +1012,19 @@ static int dwc3_probe(struct platform_de goto err1; } @@ -52,5 +50,3 @@ index de5e01f..001c755 100644 /* Adjust Frame Length */ dwc3_frame_length_adjustment(dwc, fladj); --- -cgit v0.12 diff --git a/target/linux/ipq806x/patches-4.4/096-03-usb-dwc3-Validate-the-maximum_speed-parameter.patch b/target/linux/ipq806x/patches-4.4/096-03-usb-dwc3-Validate-the-maximum_speed-parameter.patch index 43821266a19..0f17918d36f 100644 --- a/target/linux/ipq806x/patches-4.4/096-03-usb-dwc3-Validate-the-maximum_speed-parameter.patch +++ b/target/linux/ipq806x/patches-4.4/096-03-usb-dwc3-Validate-the-maximum_speed-parameter.patch @@ -13,11 +13,9 @@ Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 9 ++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) -diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 001c755..17fd814 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -1012,8 +1012,20 @@ static int dwc3_probe(struct platform_device *pdev) +@@ -1012,8 +1012,20 @@ static int dwc3_probe(struct platform_de goto err1; } @@ -40,7 +38,7 @@ index 001c755..17fd814 100644 dwc->maximum_speed = USB_SPEED_SUPER; /* -@@ -1023,6 +1035,8 @@ static int dwc3_probe(struct platform_device *pdev) +@@ -1023,6 +1035,8 @@ static int dwc3_probe(struct platform_de (DWC3_GHWPARAMS3_SSPHY_IFC(dwc->hwparams.hwparams3) == DWC3_GHWPARAMS3_SSPHY_IFC_GEN2)) dwc->maximum_speed = USB_SPEED_SUPER_PLUS; @@ -49,13 +47,11 @@ index 001c755..17fd814 100644 } /* Adjust Frame Length */ -diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c -index 482e6a1..3ac170f 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -1670,10 +1670,13 @@ static int dwc3_gadget_start(struct usb_gadget *g, - case USB_SPEED_SUPER_PLUS: - reg |= DWC3_DSTS_SUPERSPEED_PLUS; +@@ -1634,10 +1634,13 @@ static int dwc3_gadget_start(struct usb_ + case USB_SPEED_HIGH: + reg |= DWC3_DSTS_HIGHSPEED; break; - case USB_SPEED_SUPER: /* FALLTHROUGH */ - case USB_SPEED_UNKNOWN: /* FALTHROUGH */ @@ -70,5 +66,3 @@ index 482e6a1..3ac170f 100644 } } dwc3_writel(dwc->regs, DWC3_DCFG, reg); --- -cgit v0.12 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 47278d40c5d..d522bb7e8d3 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 @@ -11,11 +11,9 @@ Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.h | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h -index e4f8b90..c0520d67 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h -@@ -1024,6 +1024,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); @@ -28,5 +26,3 @@ index e4f8b90..c0520d67 100644 #if IS_ENABLED(CONFIG_USB_DWC3_HOST) || IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE) int dwc3_host_init(struct dwc3 *dwc); void dwc3_host_exit(struct dwc3 *dwc); --- -cgit v0.12 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 e4805db0b42..0030446eab9 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 @@ -12,11 +12,9 @@ Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h -index c0520d67..6254b2f 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h -@@ -223,7 +223,8 @@ +@@ -222,7 +222,8 @@ /* Global HWPARAMS3 Register */ #define DWC3_GHWPARAMS3_SSPHY_IFC(n) ((n) & 3) #define DWC3_GHWPARAMS3_SSPHY_IFC_DIS 0 @@ -26,7 +24,7 @@ index c0520d67..6254b2f 100644 #define DWC3_GHWPARAMS3_HSPHY_IFC(n) (((n) & (3 << 2)) >> 2) #define DWC3_GHWPARAMS3_HSPHY_IFC_DIS 0 #define DWC3_GHWPARAMS3_HSPHY_IFC_UTMI 1 -@@ -249,6 +250,7 @@ +@@ -248,6 +249,7 @@ #define DWC3_DCFG_DEVADDR_MASK DWC3_DCFG_DEVADDR(0x7f) #define DWC3_DCFG_SPEED_MASK (7 << 0) @@ -34,7 +32,7 @@ index c0520d67..6254b2f 100644 #define DWC3_DCFG_SUPERSPEED (4 << 0) #define DWC3_DCFG_HIGHSPEED (0 << 0) #define DWC3_DCFG_FULLSPEED2 (1 << 0) -@@ -339,6 +341,7 @@ +@@ -338,6 +340,7 @@ #define DWC3_DSTS_CONNECTSPD (7 << 0) @@ -42,5 +40,3 @@ index c0520d67..6254b2f 100644 #define DWC3_DSTS_SUPERSPEED (4 << 0) #define DWC3_DSTS_HIGHSPEED (0 << 0) #define DWC3_DSTS_FULLSPEED2 (1 << 0) --- -cgit v0.12 diff --git a/target/linux/ipq806x/patches-4.4/096-06-usb-dwc3-core-improve-reset-sequence.patch b/target/linux/ipq806x/patches-4.4/096-06-usb-dwc3-core-improve-reset-sequence.patch index 197dd057d28..428a796e07a 100644 --- a/target/linux/ipq806x/patches-4.4/096-06-usb-dwc3-core-improve-reset-sequence.patch +++ b/target/linux/ipq806x/patches-4.4/096-06-usb-dwc3-core-improve-reset-sequence.patch @@ -24,11 +24,9 @@ Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.c | 48 ++++++++++++++++++------------------------------ 1 file changed, 18 insertions(+), 30 deletions(-) -diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 17fd814..fa20f5a9 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -67,23 +67,9 @@ void dwc3_set_mode(struct dwc3 *dwc, u32 mode) +@@ -67,23 +67,9 @@ void dwc3_set_mode(struct dwc3 *dwc, u32 static int dwc3_core_soft_reset(struct dwc3 *dwc) { u32 reg; @@ -53,7 +51,7 @@ index 17fd814..fa20f5a9 100644 usb_phy_init(dwc->usb2_phy); usb_phy_init(dwc->usb3_phy); ret = phy_init(dwc->usb2_generic_phy); -@@ -95,26 +81,28 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc) +@@ -95,26 +81,28 @@ static int dwc3_core_soft_reset(struct d phy_exit(dwc->usb2_generic_phy); return ret; } @@ -63,6 +61,18 @@ index 17fd814..fa20f5a9 100644 - reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0)); - reg &= ~DWC3_GUSB3PIPECTL_PHYSOFTRST; - dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg); +- +- /* Clear USB2 PHY reset */ +- reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); +- reg &= ~DWC3_GUSB2PHYCFG_PHYSOFTRST; +- dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); +- +- mdelay(100); +- +- /* After PHYs are stable we can take Core out of reset state */ +- reg = dwc3_readl(dwc->regs, DWC3_GCTL); +- reg &= ~DWC3_GCTL_CORESOFTRESET; +- dwc3_writel(dwc->regs, DWC3_GCTL, reg); + /* + * We're resetting only the device side because, if we're in host mode, + * XHCI driver will reset the host block. If dwc3 was configured for @@ -70,25 +80,16 @@ index 17fd814..fa20f5a9 100644 + */ + if (dwc->dr_mode == USB_DR_MODE_HOST) + return 0; - -- /* Clear USB2 PHY reset */ -- reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); -- reg &= ~DWC3_GUSB2PHYCFG_PHYSOFTRST; -- dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); ++ + reg = dwc3_readl(dwc->regs, DWC3_DCTL); + reg |= DWC3_DCTL_CSFTRST; + dwc3_writel(dwc->regs, DWC3_DCTL, reg); - -- mdelay(100); ++ + do { + reg = dwc3_readl(dwc->regs, DWC3_DCTL); + if (!(reg & DWC3_DCTL_CSFTRST)) + return 0; - -- /* After PHYs are stable we can take Core out of reset state */ -- reg = dwc3_readl(dwc->regs, DWC3_GCTL); -- reg &= ~DWC3_GCTL_CORESOFTRESET; -- dwc3_writel(dwc->regs, DWC3_GCTL, reg); ++ + udelay(1); + } while (--retries); @@ -97,5 +98,3 @@ index 17fd814..fa20f5a9 100644 } /** --- -cgit v0.12 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 9b6026d9141..a6510d8f560 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 @@ -25,8 +25,6 @@ Signed-off-by: Felipe Balbi drivers/usb/dwc3/platform_data.h | 1 - 7 files changed, 2 insertions(+), 108 deletions(-) -diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt -index fb2ad0a..1569568 100644 --- a/Documentation/devicetree/bindings/usb/dwc3.txt +++ b/Documentation/devicetree/bindings/usb/dwc3.txt @@ -14,7 +14,6 @@ Optional properties: @@ -52,8 +50,6 @@ index fb2ad0a..1569568 100644 usb-phy = <&usb2_phy>, <&usb3,phy>; - tx-fifo-resize; }; -diff --git a/Documentation/devicetree/bindings/usb/qcom,dwc3.txt b/Documentation/devicetree/bindings/usb/qcom,dwc3.txt -index ca164e7..39acb08 100644 --- a/Documentation/devicetree/bindings/usb/qcom,dwc3.txt +++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.txt @@ -59,7 +59,6 @@ Example device nodes: @@ -64,11 +60,9 @@ index ca164e7..39acb08 100644 dr_mode = "host"; }; }; -diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index fa20f5a9..67d183a 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -882,9 +882,6 @@ static int dwc3_probe(struct platform_device *pdev) +@@ -882,9 +882,6 @@ static int dwc3_probe(struct platform_de dwc->usb3_lpm_capable = device_property_read_bool(dev, "snps,usb3_lpm_capable"); @@ -78,7 +72,7 @@ index fa20f5a9..67d183a 100644 dwc->disable_scramble_quirk = device_property_read_bool(dev, "snps,disable_scramble_quirk"); dwc->u2exit_lfps_quirk = device_property_read_bool(dev, -@@ -926,7 +923,6 @@ static int dwc3_probe(struct platform_device *pdev) +@@ -926,7 +923,6 @@ static int dwc3_probe(struct platform_de if (pdata->hird_threshold) hird_threshold = pdata->hird_threshold; @@ -86,11 +80,9 @@ index fa20f5a9..67d183a 100644 dwc->usb3_lpm_capable = pdata->usb3_lpm_capable; dwc->dr_mode = pdata->dr_mode; -diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h -index 6254b2f..7cbe9e9 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h -@@ -709,9 +709,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 @@ -100,7 +92,7 @@ index 6254b2f..7cbe9e9 100644 * @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 -@@ -855,9 +853,7 @@ struct dwc3 { +@@ -852,9 +850,7 @@ struct dwc3 { unsigned has_lpm_erratum:1; unsigned is_utmi_l1_suspend:1; unsigned is_fpga:1; @@ -110,7 +102,7 @@ index 6254b2f..7cbe9e9 100644 unsigned setup_packet_pending:1; unsigned three_stage_setup:1; unsigned usb3_lpm_capable:1; -@@ -1025,7 +1021,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); @@ -118,11 +110,9 @@ index 6254b2f..7cbe9e9 100644 /* check whether we are on the DWC_usb31 core */ static inline bool dwc3_is_usb31(struct dwc3 *dwc) -diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c -index eca2e6d..4454de0 100644 --- a/drivers/usb/dwc3/ep0.c +++ b/drivers/usb/dwc3/ep0.c -@@ -586,9 +586,6 @@ static int dwc3_ep0_set_config(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl) +@@ -583,9 +583,6 @@ static int dwc3_ep0_set_config(struct dw reg = dwc3_readl(dwc->regs, DWC3_DCTL); reg |= (DWC3_DCTL_ACCEPTU1ENA | DWC3_DCTL_ACCEPTU2ENA); dwc3_writel(dwc->regs, DWC3_DCTL, reg); @@ -132,7 +122,7 @@ index eca2e6d..4454de0 100644 } break; -@@ -1027,12 +1024,6 @@ static int dwc3_ep0_start_control_status(struct dwc3_ep *dep) +@@ -1020,12 +1017,6 @@ static int dwc3_ep0_start_control_status static void __dwc3_ep0_do_control_status(struct dwc3 *dwc, struct dwc3_ep *dep) { @@ -145,11 +135,9 @@ index eca2e6d..4454de0 100644 WARN_ON(dwc3_ep0_start_control_status(dep)); } -diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c -index d54a028..3a5c271 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -145,92 +145,6 @@ int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state) +@@ -145,92 +145,6 @@ int dwc3_gadget_set_link_state(struct dw return -ETIMEDOUT; } @@ -242,8 +230,6 @@ index d54a028..3a5c271 100644 void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req, int status) { -diff --git a/drivers/usb/dwc3/platform_data.h b/drivers/usb/dwc3/platform_data.h -index 2bb4d3a..aaa6f00 100644 --- a/drivers/usb/dwc3/platform_data.h +++ b/drivers/usb/dwc3/platform_data.h @@ -23,7 +23,6 @@ @@ -254,5 +240,3 @@ index 2bb4d3a..aaa6f00 100644 bool usb3_lpm_capable; unsigned is_utmi_l1_suspend:1; --- -cgit v0.12 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 8bc0b9817f6..32ff364e5a5 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 @@ -19,11 +19,9 @@ Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 38 +++++++--------------- 3 files changed, 44 insertions(+), 77 deletions(-) -diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 67d183a..9e5c57c7 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -203,13 +203,10 @@ static struct dwc3_event_buffer *dwc3_alloc_one_event_buffer(struct dwc3 *dwc, +@@ -203,13 +203,10 @@ static struct dwc3_event_buffer *dwc3_al static void dwc3_free_event_buffers(struct dwc3 *dwc) { struct dwc3_event_buffer *evt; @@ -40,7 +38,7 @@ index 67d183a..9e5c57c7 100644 } /** -@@ -222,27 +219,19 @@ static void dwc3_free_event_buffers(struct dwc3 *dwc) +@@ -222,27 +219,19 @@ static void dwc3_free_event_buffers(stru */ static int dwc3_alloc_event_buffers(struct dwc3 *dwc, unsigned length) { @@ -75,7 +73,7 @@ index 67d183a..9e5c57c7 100644 return 0; } -@@ -256,25 +245,22 @@ static int dwc3_alloc_event_buffers(struct dwc3 *dwc, unsigned length) +@@ -256,25 +245,22 @@ static int dwc3_alloc_event_buffers(stru static int dwc3_event_buffers_setup(struct dwc3 *dwc) { struct dwc3_event_buffer *evt; @@ -116,7 +114,7 @@ index 67d183a..9e5c57c7 100644 return 0; } -@@ -282,19 +268,16 @@ static int dwc3_event_buffers_setup(struct dwc3 *dwc) +@@ -282,19 +268,16 @@ static int dwc3_event_buffers_setup(stru static void dwc3_event_buffers_cleanup(struct dwc3 *dwc) { struct dwc3_event_buffer *evt; @@ -143,11 +141,9 @@ index 67d183a..9e5c57c7 100644 } static int dwc3_alloc_scratch_buffers(struct dwc3 *dwc) -diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h -index 4ea4b51..be03999 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h -@@ -667,7 +667,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 @@ -155,7 +151,7 @@ index 4ea4b51..be03999 100644 * @u1u2: only used on revisions <1.83a for workaround * @maximum_speed: maximum speed requested (mainly for testing purposes) * @revision: revision register contents -@@ -778,7 +777,6 @@ struct dwc3 { +@@ -775,7 +774,6 @@ struct dwc3 { u32 gctl; u32 nr_scratch; @@ -163,11 +159,9 @@ index 4ea4b51..be03999 100644 u32 u1u2; u32 maximum_speed; -diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c -index e6bd3a9..5e6a495 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -2602,14 +2602,14 @@ static void dwc3_process_event_entry(struct dwc3 *dwc, +@@ -2556,14 +2556,14 @@ static void dwc3_process_event_entry(str } } @@ -184,7 +178,7 @@ index e6bd3a9..5e6a495 100644 left = evt->count; if (!(evt->flags & DWC3_EVENT_PENDING)) -@@ -2634,7 +2634,7 @@ static irqreturn_t dwc3_process_event_buf(struct dwc3 *dwc, u32 buf) +@@ -2588,7 +2588,7 @@ static irqreturn_t dwc3_process_event_bu evt->lpos = (evt->lpos + 4) % DWC3_EVENT_BUFFERS_SIZE; left -= 4; @@ -193,7 +187,7 @@ index e6bd3a9..5e6a495 100644 } evt->count = 0; -@@ -2642,9 +2642,9 @@ static irqreturn_t dwc3_process_event_buf(struct dwc3 *dwc, u32 buf) +@@ -2596,9 +2596,9 @@ static irqreturn_t dwc3_process_event_bu ret = IRQ_HANDLED; /* Unmask interrupt */ @@ -205,7 +199,7 @@ index e6bd3a9..5e6a495 100644 return ret; } -@@ -2654,27 +2654,23 @@ static irqreturn_t dwc3_thread_interrupt(int irq, void *_dwc) +@@ -2608,27 +2608,23 @@ static irqreturn_t dwc3_thread_interrupt struct dwc3 *dwc = _dwc; unsigned long flags; irqreturn_t ret = IRQ_NONE; @@ -237,7 +231,7 @@ index e6bd3a9..5e6a495 100644 count &= DWC3_GEVNTCOUNT_MASK; if (!count) return IRQ_NONE; -@@ -2683,9 +2679,9 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3 *dwc, u32 buf) +@@ -2637,9 +2633,9 @@ static irqreturn_t dwc3_check_event_buf( evt->flags |= DWC3_EVENT_PENDING; /* Mask interrupt */ @@ -249,7 +243,7 @@ index e6bd3a9..5e6a495 100644 return IRQ_WAKE_THREAD; } -@@ -2693,18 +2689,8 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3 *dwc, u32 buf) +@@ -2647,18 +2643,8 @@ static irqreturn_t dwc3_check_event_buf( static irqreturn_t dwc3_interrupt(int irq, void *_dwc) { struct dwc3 *dwc = _dwc; @@ -269,5 +263,3 @@ index e6bd3a9..5e6a495 100644 } /** --- -cgit v0.12 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 64d796cf388..34f42110a98 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 @@ -15,11 +15,9 @@ Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 4 ++-- 3 files changed, 7 insertions(+), 12 deletions(-) -diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 9e5c57c7..05b7ec3 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -204,7 +204,7 @@ static void dwc3_free_event_buffers(struct dwc3 *dwc) +@@ -204,7 +204,7 @@ static void dwc3_free_event_buffers(stru { struct dwc3_event_buffer *evt; @@ -28,7 +26,7 @@ index 9e5c57c7..05b7ec3 100644 if (evt) dwc3_free_one_event_buffer(dwc, evt); } -@@ -221,17 +221,12 @@ static int dwc3_alloc_event_buffers(struct dwc3 *dwc, unsigned length) +@@ -221,17 +221,12 @@ static int dwc3_alloc_event_buffers(stru { struct dwc3_event_buffer *evt; @@ -47,7 +45,7 @@ index 9e5c57c7..05b7ec3 100644 return 0; } -@@ -246,7 +241,7 @@ static int dwc3_event_buffers_setup(struct dwc3 *dwc) +@@ -246,7 +241,7 @@ static int dwc3_event_buffers_setup(stru { struct dwc3_event_buffer *evt; @@ -56,7 +54,7 @@ index 9e5c57c7..05b7ec3 100644 dwc3_trace(trace_dwc3_core, "Event buf %p dma %08llx length %d\n", evt->buf, (unsigned long long) evt->dma, -@@ -269,7 +264,7 @@ static void dwc3_event_buffers_cleanup(struct dwc3 *dwc) +@@ -269,7 +264,7 @@ static void dwc3_event_buffers_cleanup(s { struct dwc3_event_buffer *evt; @@ -65,11 +63,9 @@ index 9e5c57c7..05b7ec3 100644 evt->lpos = 0; -diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h -index be03999..df72234a 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h -@@ -753,7 +753,7 @@ struct dwc3 { +@@ -750,7 +750,7 @@ struct dwc3 { struct platform_device *xhci; struct resource xhci_resources[DWC3_XHCI_RESOURCES_NUM]; @@ -78,11 +74,9 @@ index be03999..df72234a 100644 struct dwc3_ep *eps[DWC3_ENDPOINTS_NUM]; struct usb_gadget gadget; -diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c -index 5e6a495..96dfde0 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -2609,7 +2609,7 @@ static irqreturn_t dwc3_process_event_buf(struct dwc3 *dwc) +@@ -2563,7 +2563,7 @@ static irqreturn_t dwc3_process_event_bu int left; u32 reg; @@ -91,7 +85,7 @@ index 5e6a495..96dfde0 100644 left = evt->count; if (!(evt->flags & DWC3_EVENT_PENDING)) -@@ -2668,7 +2668,7 @@ static irqreturn_t dwc3_check_event_buf(struct dwc3 *dwc) +@@ -2622,7 +2622,7 @@ static irqreturn_t dwc3_check_event_buf( u32 count; u32 reg; @@ -100,5 +94,3 @@ index 5e6a495..96dfde0 100644 count = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0)); count &= DWC3_GEVNTCOUNT_MASK; --- -cgit v0.12 diff --git a/target/linux/ipq806x/patches-4.4/096-10-usb-dwc3-core-fix-PHY-handling-during-suspend.patch b/target/linux/ipq806x/patches-4.4/096-10-usb-dwc3-core-fix-PHY-handling-during-suspend.patch index 87f1562cc6f..8bf09edfbda 100644 --- a/target/linux/ipq806x/patches-4.4/096-10-usb-dwc3-core-fix-PHY-handling-during-suspend.patch +++ b/target/linux/ipq806x/patches-4.4/096-10-usb-dwc3-core-fix-PHY-handling-during-suspend.patch @@ -15,11 +15,9 @@ Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) -diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index fa20f5a9..34277ce 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -1150,6 +1150,11 @@ static int dwc3_suspend(struct device *dev) +@@ -1124,6 +1124,11 @@ static int dwc3_suspend(struct device *d phy_exit(dwc->usb2_generic_phy); phy_exit(dwc->usb3_generic_phy); @@ -31,7 +29,7 @@ index fa20f5a9..34277ce 100644 pinctrl_pm_select_sleep_state(dev); return 0; -@@ -1163,11 +1168,21 @@ static int dwc3_resume(struct device *dev) +@@ -1137,11 +1142,21 @@ static int dwc3_resume(struct device *de pinctrl_pm_select_default_state(dev); @@ -54,7 +52,7 @@ index fa20f5a9..34277ce 100644 ret = phy_init(dwc->usb3_generic_phy); if (ret < 0) -@@ -1200,6 +1215,12 @@ static int dwc3_resume(struct device *dev) +@@ -1174,6 +1189,12 @@ static int dwc3_resume(struct device *de err_usb2phy_init: phy_exit(dwc->usb2_generic_phy); @@ -67,5 +65,3 @@ index fa20f5a9..34277ce 100644 return ret; } --- -cgit v0.12 diff --git a/target/linux/ipq806x/patches-4.4/097-4-usb-dwc3-fix-missing-platform_set_drvdata-in-dwc3_of_simple_probe.patch b/target/linux/ipq806x/patches-4.4/097-4-usb-dwc3-fix-missing-platform_set_drvdata-in-dwc3_of_simple_probe.patch index 2aeadc30eda..2d18e415142 100644 --- a/target/linux/ipq806x/patches-4.4/097-4-usb-dwc3-fix-missing-platform_set_drvdata-in-dwc3_of_simple_probe.patch +++ b/target/linux/ipq806x/patches-4.4/097-4-usb-dwc3-fix-missing-platform_set_drvdata-in-dwc3_of_simple_probe.patch @@ -15,11 +15,9 @@ Signed-off-by: Felipe Balbi drivers/usb/dwc3/dwc3-of-simple.c | 1 + 1 file changed, 1 insertion(+) -diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c -index 9743353..e56d59b 100644 --- a/drivers/usb/dwc3/dwc3-of-simple.c +++ b/drivers/usb/dwc3/dwc3-of-simple.c -@@ -61,6 +61,7 @@ static int dwc3_of_simple_probe(struct platform_device *pdev) +@@ -61,6 +61,7 @@ static int dwc3_of_simple_probe(struct p if (!simple->clks) return -ENOMEM; @@ -27,5 +25,3 @@ index 9743353..e56d59b 100644 simple->dev = dev; for (i = 0; i < simple->num_clocks; i++) { --- -cgit v0.12 diff --git a/target/linux/ipq806x/patches-4.4/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch b/target/linux/ipq806x/patches-4.4/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch index ff17370c001..90631c66940 100644 --- a/target/linux/ipq806x/patches-4.4/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch +++ b/target/linux/ipq806x/patches-4.4/112-ARM-dts-qcom-add-pcie-nodes-to-ipq806x-platforms.patch @@ -98,7 +98,7 @@ Signed-off-by: Mathieu Olivari }; intc: interrupt-controller@2000000 { -@@ -417,6 +448,144 @@ +@@ -415,6 +446,144 @@ dr_mode = "host"; }; }; diff --git a/target/linux/ipq806x/patches-4.4/115-add-pcie-aux-clk-dts.patch b/target/linux/ipq806x/patches-4.4/115-add-pcie-aux-clk-dts.patch index af6e2155965..636a6c76a94 100644 --- a/target/linux/ipq806x/patches-4.4/115-add-pcie-aux-clk-dts.patch +++ b/target/linux/ipq806x/patches-4.4/115-add-pcie-aux-clk-dts.patch @@ -1,6 +1,6 @@ --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi -@@ -477,15 +477,21 @@ +@@ -475,15 +475,21 @@ clocks = <&gcc PCIE_A_CLK>, <&gcc PCIE_H_CLK>, @@ -26,7 +26,7 @@ pinctrl-0 = <&pcie0_pins>; pinctrl-names = "default"; -@@ -523,15 +529,21 @@ +@@ -521,15 +527,21 @@ clocks = <&gcc PCIE_1_A_CLK>, <&gcc PCIE_1_H_CLK>, @@ -52,7 +52,7 @@ pinctrl-0 = <&pcie1_pins>; pinctrl-names = "default"; -@@ -569,15 +581,21 @@ +@@ -567,15 +579,21 @@ clocks = <&gcc PCIE_2_A_CLK>, <&gcc PCIE_2_H_CLK>, diff --git a/target/linux/ipq806x/patches-4.4/157-ARM-DT-ipq8064-Add-ADM-device-node.patch b/target/linux/ipq806x/patches-4.4/157-ARM-DT-ipq8064-Add-ADM-device-node.patch index 3c3212b26df..5383041ffcc 100644 --- a/target/linux/ipq806x/patches-4.4/157-ARM-DT-ipq8064-Add-ADM-device-node.patch +++ b/target/linux/ipq806x/patches-4.4/157-ARM-DT-ipq8064-Add-ADM-device-node.patch @@ -13,7 +13,7 @@ Signed-off-by: Andy Gross --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi -@@ -723,6 +723,26 @@ +@@ -721,6 +721,26 @@ status = "disabled"; }; diff --git a/target/linux/ipq806x/patches-4.4/164-arm-qcom-dts-Add-NAND-controller-node-for-ipq806x.patch b/target/linux/ipq806x/patches-4.4/164-arm-qcom-dts-Add-NAND-controller-node-for-ipq806x.patch index 27662d0552f..664e7b5b53b 100644 --- a/target/linux/ipq806x/patches-4.4/164-arm-qcom-dts-Add-NAND-controller-node-for-ipq806x.patch +++ b/target/linux/ipq806x/patches-4.4/164-arm-qcom-dts-Add-NAND-controller-node-for-ipq806x.patch @@ -26,7 +26,7 @@ arch/arm/boot/dts/qcom-ipq8064.dtsi | 15 +++++++++++++++ --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi -@@ -743,6 +743,22 @@ +@@ -741,6 +741,22 @@ status = "disabled"; }; diff --git a/target/linux/ipq806x/patches-4.4/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch b/target/linux/ipq806x/patches-4.4/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch index 4a0528885fa..aa12121dff8 100644 --- a/target/linux/ipq806x/patches-4.4/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch +++ b/target/linux/ipq806x/patches-4.4/708-ARM-dts-qcom-add-gmac-nodes-to-ipq806x-platforms.patch @@ -121,7 +121,7 @@ Signed-off-by: Mathieu Olivari }; --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi -@@ -795,6 +795,92 @@ +@@ -793,6 +793,92 @@ status = "disabled"; }; diff --git a/target/linux/lantiq/patches-4.4/0039-MIPS-lantiq-danube-initialize-usb-on-boot.patch b/target/linux/lantiq/patches-4.4/0039-MIPS-lantiq-danube-initialize-usb-on-boot.patch index e11578a7559..bd42f38c0a8 100644 --- a/target/linux/lantiq/patches-4.4/0039-MIPS-lantiq-danube-initialize-usb-on-boot.patch +++ b/target/linux/lantiq/patches-4.4/0039-MIPS-lantiq-danube-initialize-usb-on-boot.patch @@ -1,5 +1,5 @@ ---- a/arch/mips/lantiq/xway/reset.c 2016-01-20 08:45:18.382597595 +0100 -+++ b/arch/mips/lantiq/xway/reset.c 2016-01-20 08:45:31.927107016 +0100 +--- a/arch/mips/lantiq/xway/reset.c ++++ b/arch/mips/lantiq/xway/reset.c @@ -370,6 +370,7 @@ static int __init mips_reboot_setup(void panic("Failed to remap core memory"); diff --git a/target/linux/lantiq/patches-4.4/0047-poweroff.patch b/target/linux/lantiq/patches-4.4/0047-poweroff.patch index 54249bba521..88aed2ce962 100644 --- a/target/linux/lantiq/patches-4.4/0047-poweroff.patch +++ b/target/linux/lantiq/patches-4.4/0047-poweroff.patch @@ -13,7 +13,7 @@ static void ltq_usb_init(void) { /* Power for USB cores 1 & 2 */ -@@ -379,7 +373,6 @@ static int __init mips_reboot_setup(void +@@ -380,7 +374,6 @@ static int __init mips_reboot_setup(void _machine_restart = ltq_machine_restart; _machine_halt = ltq_machine_halt; diff --git a/target/linux/layerscape/patches-4.4/3023-powerpc-fsl-move-mpc85xx.h-to-include-linux-fsl.patch b/target/linux/layerscape/patches-4.4/3023-powerpc-fsl-move-mpc85xx.h-to-include-linux-fsl.patch index 11ff8a7bb9c..168209f2d03 100644 --- a/target/linux/layerscape/patches-4.4/3023-powerpc-fsl-move-mpc85xx.h-to-include-linux-fsl.patch +++ b/target/linux/layerscape/patches-4.4/3023-powerpc-fsl-move-mpc85xx.h-to-include-linux-fsl.patch @@ -133,7 +133,7 @@ Integrated-by: Zhao Qiang #include #include #include -@@ -1152,7 +1153,6 @@ bad_args: +@@ -1155,7 +1156,6 @@ bad_args: } #ifdef CONFIG_PPC diff --git a/target/linux/layerscape/patches-4.4/8073-ls1012a-added-clock-configuration.patch b/target/linux/layerscape/patches-4.4/8073-ls1012a-added-clock-configuration.patch index 9cef3197377..bee2824da7d 100644 --- a/target/linux/layerscape/patches-4.4/8073-ls1012a-added-clock-configuration.patch +++ b/target/linux/layerscape/patches-4.4/8073-ls1012a-added-clock-configuration.patch @@ -51,7 +51,7 @@ Integrated-by: Zhao Qiang .compat = "fsl,ls1043a-clockgen", .init_periph = t2080_init_periph, .cmux_groups = { -@@ -1272,6 +1290,7 @@ CLK_OF_DECLARE(qoriq_clockgen_2, "fsl,qo +@@ -1275,6 +1293,7 @@ CLK_OF_DECLARE(qoriq_clockgen_2, "fsl,qo CLK_OF_DECLARE(qoriq_clockgen_ls1021a, "fsl,ls1021a-clockgen", clockgen_init); CLK_OF_DECLARE(qoriq_clockgen_ls1043a, "fsl,ls1043a-clockgen", clockgen_init); CLK_OF_DECLARE(qoriq_clockgen_ls2080a, "fsl,ls2080a-clockgen", clockgen_init); -- 2.30.2