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>
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)))
--- 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
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",
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 @@
#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;
}
/*
* 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);
--- 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);
--- 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);
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;
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 */
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;
}
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)
{
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)
{
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 */
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;
--- 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);
}
--- 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);
--- 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
**************************************************/
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 = {
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));
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));
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));
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);
--- 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);
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);
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)
{
}
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);
}
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);
}
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);
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;
}
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;
}
--- 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);
--- 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);
}
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)) {
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) {
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)) {
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)) {
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) {
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) {
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)) {
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)
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)) {
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)
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:
}
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))
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)
/* 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) {
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)) {
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) {
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)) {
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:
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);
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) {
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) {
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) {
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)
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) {
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)
{
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) {
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)
{
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)
{
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)
{
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)
{
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;
+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;
}
/**************************************************
* 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);
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
**************************************************/
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
}
}
{
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;
}
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;
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);
}
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");
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);
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;
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;
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;
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;
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 {
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;
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);
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 */
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);
}
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;
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.
*/
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 |
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)
{
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");
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));
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)
{
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)
{
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 */
}
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;
}
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;
}
/* 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)
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)
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;
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);
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);
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));
}
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;
}
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;
}
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);
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);
}
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);
--- 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) {
--- 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;
--- 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)) {
+++ /dev/null
-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;
--- 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
--- 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
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)
{
--- 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)
{
&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:
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];
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:
dwc->is_fpga = true;
}
---
-cgit v0.12
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;
}
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;
}
/* Adjust Frame Length */
dwc3_frame_length_adjustment(dwc, fladj);
---
-cgit v0.12
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;
}
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;
}
/* 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 */
}
}
dwc3_writel(dwc->regs, DWC3_DCFG, reg);
---
-cgit v0.12
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);
#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
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
#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)
#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)
#define DWC3_DSTS_SUPERSPEED (4 << 0)
#define DWC3_DSTS_HIGHSPEED (0 << 0)
#define DWC3_DSTS_FULLSPEED2 (1 << 0)
---
-cgit v0.12
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;
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;
}
- 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
+ */
+ 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);
}
/**
---
-cgit v0.12
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:
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:
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");
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;
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
* @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;
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);
/* 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);
}
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)
{
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;
}
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 @@
bool usb3_lpm_capable;
unsigned is_utmi_l1_suspend:1;
---
-cgit v0.12
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;
}
/**
-@@ -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)
{
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;
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;
}
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
* @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;
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
}
}
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;
}
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 */
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;
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 */
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;
}
/**
---
-cgit v0.12
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;
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;
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;
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;
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];
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;
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;
count = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0));
count &= DWC3_GEVNTCOUNT_MASK;
---
-cgit v0.12
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);
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);
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);
return ret;
}
---
-cgit v0.12
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;
simple->dev = dev;
for (i = 0; i < simple->num_clocks; i++) {
---
-cgit v0.12
};
intc: interrupt-controller@2000000 {
-@@ -417,6 +448,144 @@
+@@ -415,6 +446,144 @@
dr_mode = "host";
};
};
--- 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>,
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>,
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>,
--- 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";
};
--- 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";
};
};
--- 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";
};
---- 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");
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;
#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
.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);