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 <kevin@darbyshire-bryant.me.uk>
This commit is contained in:
Kevin Darbyshire-Bryant 2016-11-21 18:18:47 +00:00 committed by John Crispin
parent 882f4d2d63
commit 102cb4742c
49 changed files with 191 additions and 308 deletions

View file

@ -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)))

View file

@ -1,6 +1,6 @@
--- 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.
@ -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",

View file

@ -15,8 +15,8 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
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 @@

View file

@ -17,7 +17,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
#include <uapi/linux/magic.h>
@@ -159,6 +160,28 @@ static int bcm47xxpart_parse(struct mtd_info *master,
@@ -159,6 +160,28 @@ static int bcm47xxpart_parse(struct mtd_
break;
}

View file

@ -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);

View file

@ -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
@@ -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);

View file

@ -11,7 +11,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- 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);

View file

@ -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)
{
@@ -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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <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) /
@@ -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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 */

View file

@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
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;

View file

@ -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
@@ -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);
}

View file

@ -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
@@ -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);

View file

@ -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
@@ -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 <davem@davemloft.net>
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 = {

View file

@ -32,7 +32,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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);

View file

@ -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
@@ -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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
}
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 <davem@davemloft.net>
}
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 <davem@davemloft.net>
}
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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;
}

View file

@ -16,7 +16,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,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);

View file

@ -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
@@ -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);

View file

@ -101,7 +101,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
}
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 <davem@davemloft.net>
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 <davem@davemloft.net>
/* 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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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) {

View file

@ -38,7 +38,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <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, };
@@ -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;

View file

@ -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
@@ -756,150 +756,6 @@ error:
@@ -759,150 +759,6 @@ error:
return err;
}
@ -468,7 +468,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/**************************************************
* 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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
{
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
}
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 <davem@davemloft.net>
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);

View file

@ -32,16 +32,16 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <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 |
@@ -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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <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) /
@@ -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");

View file

@ -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))
@@ -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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <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
@@ -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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <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);
@@ -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 <davem@davemloft.net>
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 <davem@davemloft.net>
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 <davem@davemloft.net>
}
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 <davem@davemloft.net>
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 <davem@davemloft.net>
}
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);

View file

@ -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
@@ -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 <davem@davemloft.net>
}
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);

View file

@ -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
@@ -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) {

View file

@ -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
@@ -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;

View file

@ -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
@@ -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)) {

View file

@ -1,54 +0,0 @@
From fcdefccac976ee51dd6071832b842d8fb41c479c Mon Sep 17 00:00:00 2001
From: Andy Gospodarek <gospo@broadcom.com>
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 <gospo@broadcom.com>
Fixes: 56ceecde1f29 ("bgmac: initialize the DMA controller of core...")
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
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;

View file

@ -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

View file

@ -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

View file

@ -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:

View file

@ -12,11 +12,9 @@ Signed-off-by: Felipe Balbi <balbi@ti.com>
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

View file

@ -17,11 +17,9 @@ Signed-off-by: Felipe Balbi <balbi@kernel.org>
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

View file

@ -13,11 +13,9 @@ Signed-off-by: Felipe Balbi <balbi@kernel.org>
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

View file

@ -11,11 +11,9 @@ Signed-off-by: Felipe Balbi <balbi@kernel.org>
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

View file

@ -12,11 +12,9 @@ Signed-off-by: Felipe Balbi <balbi@kernel.org>
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

View file

@ -24,11 +24,9 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
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

View file

@ -25,8 +25,6 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
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

View file

@ -19,11 +19,9 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
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

View file

@ -15,11 +15,9 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
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

View file

@ -15,11 +15,9 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
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

View file

@ -15,11 +15,9 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
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

View file

@ -98,7 +98,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
};
intc: interrupt-controller@2000000 {
@@ -417,6 +448,144 @@
@@ -415,6 +446,144 @@
dr_mode = "host";
};
};

View file

@ -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>,

View file

@ -13,7 +13,7 @@ Signed-off-by: Andy Gross <agross@codeaurora.org>
--- 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";
};

View file

@ -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";
};

View file

@ -121,7 +121,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
};
--- 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";
};

View file

@ -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");

View file

@ -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;

View file

@ -133,7 +133,7 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/module.h>
@@ -1152,7 +1153,6 @@ bad_args:
@@ -1155,7 +1156,6 @@ bad_args:
}
#ifdef CONFIG_PPC

View file

@ -51,7 +51,7 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
.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);