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:
parent
882f4d2d63
commit
102cb4742c
49 changed files with 191 additions and 308 deletions
|
@ -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)))
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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 @@
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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;
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -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>,
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue