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-3.18 = .43
|
||||||
LINUX_VERSION-4.1 = .34
|
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-3.18.43 = b1faeb4a2e1e70ffe061bdbb3452840a
|
||||||
LINUX_KERNEL_MD5SUM-4.1.34 = fba99f0f4765ebf01033e69518740a3c
|
LINUX_KERNEL_MD5SUM-4.1.34 = fba99f0f4765ebf01033e69518740a3c
|
||||||
LINUX_KERNEL_MD5SUM-4.4.32 = 63e50dd0c477fe9ea450a358fe39485b
|
LINUX_KERNEL_MD5SUM-4.4.35 = 03d1eb75928ff741217f78dc3b55515d
|
||||||
|
|
||||||
ifdef KERNEL_PATCHVER
|
ifdef KERNEL_PATCHVER
|
||||||
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
|
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
--- a/arch/powerpc/platforms/44x/Kconfig
|
--- a/arch/powerpc/platforms/44x/Kconfig
|
||||||
+++ b/arch/powerpc/platforms/44x/Kconfig
|
+++ b/arch/powerpc/platforms/44x/Kconfig
|
||||||
@@ -30,6 +30,19 @@
|
@@ -30,6 +30,19 @@ config BLUESTONE
|
||||||
help
|
help
|
||||||
This option enables support for the APM APM821xx Evaluation board.
|
This option enables support for the APM APM821xx Evaluation board.
|
||||||
|
|
||||||
+config BUCKMINSTER
|
+config BUCKMINSTER
|
||||||
+ bool "Buckminster"
|
+ bool "Buckminster"
|
||||||
+ depends on 44x
|
+ depends on 44x
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
depends on 44x
|
depends on 44x
|
||||||
--- a/arch/powerpc/platforms/44x/ppc44x_simple.c
|
--- a/arch/powerpc/platforms/44x/ppc44x_simple.c
|
||||||
+++ b/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,sequoia",
|
||||||
"amcc,taishan",
|
"amcc,taishan",
|
||||||
"amcc,yosemite",
|
"amcc,yosemite",
|
||||||
|
|
|
@ -15,8 +15,8 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
||||||
bcm4709-netgear-r7000.dtb \
|
bcm4709-netgear-r7000.dtb \
|
||||||
+ bcm4709-netgear-r7900.dtb \
|
+ bcm4709-netgear-r7900.dtb \
|
||||||
bcm4709-netgear-r8000.dtb \
|
bcm4709-netgear-r8000.dtb \
|
||||||
|
bcm4709-tplink-archer-c9-v1.dtb \
|
||||||
bcm47094-dlink-dir-885l.dtb \
|
bcm47094-dlink-dir-885l.dtb \
|
||||||
bcm47094-luxul-xwr-3100.dtb \
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/boot/dts/bcm4709-netgear-r7900.dts
|
+++ b/arch/arm/boot/dts/bcm4709-netgear-r7900.dts
|
||||||
@@ -0,0 +1,41 @@
|
@@ -0,0 +1,41 @@
|
||||||
|
|
|
@ -17,7 +17,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||||
|
|
||||||
#include <uapi/linux/magic.h>
|
#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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Some really old flashes (like AT45DB*) had smaller erasesize-s, but
|
* 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) {
|
if (buf[0] == NVRAM_HEADER) {
|
||||||
bcm47xxpart_add_part(&parts[curr_part++], "nvram",
|
bcm47xxpart_add_part(&parts[curr_part++], "nvram",
|
||||||
master->size - blocksize, 0);
|
master->size - blocksize, 0);
|
||||||
|
|
|
@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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;
|
len -= ETH_FCS_LEN;
|
||||||
|
|
||||||
skb = build_skb(buf, BGMAC_RX_ALLOC_SIZE);
|
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
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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;
|
len -= ETH_FCS_LEN;
|
||||||
|
|
||||||
skb = build_skb(buf, BGMAC_RX_ALLOC_SIZE);
|
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,
|
static bool bgmac_wait_value(struct bcma_device *core, u16 reg, u32 mask,
|
||||||
u32 value, int timeout)
|
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)
|
static void bgmac_miiconfig(struct bgmac *bgmac)
|
||||||
{
|
{
|
||||||
struct bcma_device *core = bgmac->core;
|
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_awrite32(core, BCMA_IOCTL,
|
||||||
bcma_aread32(core, BCMA_IOCTL) | 0x40 |
|
bcma_aread32(core, BCMA_IOCTL) | 0x40 |
|
||||||
BGMAC_BCMA_IOCTL_SW_CLKEN);
|
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 */
|
/* 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_set(bgmac, BCMA_CLKCTLST,
|
||||||
BGMAC_BCMA_CLKCTLST_MISC_PLL_REQ);
|
BGMAC_BCMA_CLKCTLST_MISC_PLL_REQ);
|
||||||
bgmac_wait_value(bgmac->core, BCMA_CLKCTLST,
|
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;
|
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_read(bgmac, BGMAC_RXQ_CTL);
|
||||||
rxq_ctl &= ~BGMAC_RXQ_CTL_MDP_MASK;
|
rxq_ctl &= ~BGMAC_RXQ_CTL_MDP_MASK;
|
||||||
bp_clk = bcma_pmu_get_bus_clock(&bgmac->core->bus->drv_cc) /
|
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)
|
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);
|
return bgmac_fixed_phy_register(bgmac);
|
||||||
|
|
||||||
mii_bus = mdiobus_alloc();
|
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 */
|
/* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipattach */
|
||||||
static int bgmac_probe(struct bcma_device *core)
|
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 net_device *net_dev;
|
||||||
struct bgmac *bgmac;
|
struct bgmac *bgmac;
|
||||||
struct ssb_sprom *sprom = &core->bus->sprom;
|
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);
|
bgmac_chip_reset(bgmac);
|
||||||
|
|
||||||
/* For Northstar, we have to take all GMAC core out of reset */
|
/* 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:
|
case BCMA_CHIP_ID_BCM53018:
|
||||||
return true;
|
return true;
|
||||||
default:
|
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))
|
(ci->id == BCMA_CHIP_ID_BCM53572 && ci->pkg == BCMA_PKG_ID_BCM47188))
|
||||||
iost &= ~BGMAC_BCMA_IOST_ATTACHED;
|
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
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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);
|
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
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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->net_dev = net_dev;
|
||||||
bgmac->core = core;
|
bgmac->core = core;
|
||||||
bcma_set_drvdata(core, bgmac);
|
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
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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
|
* 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,
|
static int bgmac_get_settings(struct net_device *net_dev,
|
||||||
struct ethtool_cmd *cmd)
|
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 = {
|
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;
|
bytes_compl += slot->skb->len;
|
||||||
pkts_compl++;
|
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",
|
bgmac_err(bgmac, "Found poisoned packet at slot %d, DMA issue!\n",
|
||||||
ring->start);
|
ring->start);
|
||||||
put_page(virt_to_head_page(buf));
|
put_page(virt_to_head_page(buf));
|
||||||
|
@ -40,7 +40,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
break;
|
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",
|
bgmac_err(bgmac, "Found oversized packet at slot %d, DMA issue!\n",
|
||||||
ring->start);
|
ring->start);
|
||||||
put_page(virt_to_head_page(buf));
|
put_page(virt_to_head_page(buf));
|
||||||
|
@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
break;
|
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)) {
|
if (unlikely(!skb)) {
|
||||||
bgmac_err(bgmac, "build_skb failed\n");
|
bgmac_err(bgmac, "build_skb failed\n");
|
||||||
put_page(virt_to_head_page(buf));
|
put_page(virt_to_head_page(buf));
|
||||||
|
@ -57,7 +57,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
skb_put(skb, BGMAC_RX_FRAME_OFFSET +
|
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_checksum_none_assert(skb);
|
||||||
skb->protocol = eth_type_trans(skb, bgmac->net_dev);
|
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
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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);
|
napi_enable(&bgmac->napi);
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
netif_carrier_on(net_dev);
|
netif_carrier_on(net_dev);
|
||||||
return 0;
|
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);
|
netif_carrier_off(net_dev);
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
napi_disable(&bgmac->napi);
|
napi_disable(&bgmac->napi);
|
||||||
bgmac_chip_intrs_off(bgmac);
|
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 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 = {
|
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);
|
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,
|
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);
|
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,
|
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)
|
static void bgmac_adjust_link(struct net_device *net_dev)
|
||||||
{
|
{
|
||||||
struct bgmac *bgmac = netdev_priv(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;
|
bool update = false;
|
||||||
|
|
||||||
if (phy_dev->link) {
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
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);
|
err = PTR_ERR(phy_dev);
|
||||||
goto err_unregister_bus;
|
goto err_unregister_bus;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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);
|
phy_start(net_dev->phydev);
|
||||||
|
|
||||||
netif_carrier_on(net_dev);
|
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
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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);
|
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,
|
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,
|
dma_addr = dma_map_single(dma_dev, buf + BGMAC_RX_BUF_OFFSET,
|
||||||
BGMAC_RX_BUF_SIZE, DMA_FROM_DEVICE);
|
BGMAC_RX_BUF_SIZE, DMA_FROM_DEVICE);
|
||||||
if (dma_mapping_error(dma_dev, dma_addr)) {
|
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));
|
put_page(virt_to_head_page(buf));
|
||||||
return -ENOMEM;
|
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 */
|
/* Check for poison and drop or pass the packet */
|
||||||
if (len == 0xdead && flags == 0xbeef) {
|
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));
|
put_page(virt_to_head_page(buf));
|
||||||
bgmac->net_dev->stats.rx_length_errors++;
|
bgmac->net_dev->stats.rx_length_errors++;
|
||||||
bgmac->net_dev->stats.rx_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);
|
skb = build_skb(buf, BGMAC_RX_ALLOC_SIZE);
|
||||||
if (unlikely(!skb)) {
|
if (unlikely(!skb)) {
|
||||||
|
@ -140,7 +140,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
put_page(virt_to_head_page(buf));
|
put_page(virt_to_head_page(buf));
|
||||||
bgmac->net_dev->stats.rx_errors++;
|
bgmac->net_dev->stats.rx_errors++;
|
||||||
break;
|
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));
|
BUILD_BUG_ON(BGMAC_MAX_RX_RINGS > ARRAY_SIZE(ring_base));
|
||||||
|
|
||||||
if (!(bcma_aread32(bgmac->core, BCMA_IOST) & BCMA_IOST_DMA64)) {
|
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;
|
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,
|
&ring->dma_base,
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!ring->cpu_base) {
|
if (!ring->cpu_base) {
|
||||||
|
@ -160,7 +160,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
goto err_dma_free;
|
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,
|
&ring->dma_base,
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!ring->cpu_base) {
|
if (!ring->cpu_base) {
|
||||||
|
@ -171,7 +171,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
goto err_dma_free;
|
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);
|
bcma_write32(core, phy_access_addr, tmp);
|
||||||
|
|
||||||
if (!bgmac_wait_value(core, phy_access_addr, BGMAC_PA_START, 0, 1000)) {
|
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;
|
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);
|
bgmac_write(bgmac, BGMAC_INT_STATUS, BGMAC_IS_MDIO);
|
||||||
if (bgmac_read(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_START;
|
||||||
tmp |= BGMAC_PA_WRITE;
|
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);
|
bcma_write32(core, phy_access_addr, tmp);
|
||||||
|
|
||||||
if (!bgmac_wait_value(core, phy_access_addr, BGMAC_PA_START, 0, 1000)) {
|
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;
|
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);
|
bgmac_phy_write(bgmac, bgmac->phyaddr, MII_BMCR, BMCR_RESET);
|
||||||
udelay(100);
|
udelay(100);
|
||||||
if (bgmac_phy_read(bgmac, bgmac->phyaddr, MII_BMCR) & BMCR_RESET)
|
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);
|
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;
|
set |= BGMAC_CMDCFG_ES_2500;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -221,7 +221,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bgmac->mac_duplex == DUPLEX_HALF)
|
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 (bcm47xx_nvram_getenv("et_swtype", buf, sizeof(buf)) > 0) {
|
||||||
if (kstrtou8(buf, 0, &et_swtype))
|
if (kstrtou8(buf, 0, &et_swtype))
|
||||||
|
@ -232,7 +232,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
et_swtype &= 0x0f;
|
et_swtype &= 0x0f;
|
||||||
et_swtype <<= 4;
|
et_swtype <<= 4;
|
||||||
sw_type = et_swtype;
|
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);
|
int_status &= ~(BGMAC_IS_TX0 | BGMAC_IS_RX);
|
||||||
if (int_status)
|
if (int_status)
|
||||||
|
@ -241,7 +241,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
/* Disable new interrupts until handling existing ones */
|
/* Disable new interrupts until handling existing ones */
|
||||||
bgmac_chip_intrs_off(bgmac);
|
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,
|
err = request_irq(bgmac->core->irq, bgmac_interrupt, IRQF_SHARED,
|
||||||
KBUILD_MODNAME, net_dev);
|
KBUILD_MODNAME, net_dev);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
|
@ -250,7 +250,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
bgmac_dma_cleanup(bgmac);
|
bgmac_dma_cleanup(bgmac);
|
||||||
return err;
|
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);
|
phy_dev = fixed_phy_register(PHY_POLL, &fphy_status, -1, NULL);
|
||||||
if (!phy_dev || IS_ERR(phy_dev)) {
|
if (!phy_dev || IS_ERR(phy_dev)) {
|
||||||
|
@ -267,7 +267,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
return err;
|
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);
|
err = mdiobus_register(mii_bus);
|
||||||
if (err) {
|
if (err) {
|
||||||
|
@ -276,7 +276,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
goto err_free_irq;
|
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_dev = phy_connect(bgmac->net_dev, bus_id, &bgmac_adjust_link,
|
||||||
PHY_INTERFACE_MODE_MII);
|
PHY_INTERFACE_MODE_MII);
|
||||||
if (IS_ERR(phy_dev)) {
|
if (IS_ERR(phy_dev)) {
|
||||||
|
@ -285,7 +285,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
err = PTR_ERR(phy_dev);
|
err = PTR_ERR(phy_dev);
|
||||||
goto err_unregister_bus;
|
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;
|
mac = sprom->et2mac;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -295,7 +295,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
return -ENOTSUPP;
|
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->irq = core->irq;
|
||||||
net_dev->ethtool_ops = &bgmac_ethtool_ops;
|
net_dev->ethtool_ops = &bgmac_ethtool_ops;
|
||||||
bgmac = netdev_priv(net_dev);
|
bgmac = netdev_priv(net_dev);
|
||||||
|
@ -303,7 +303,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
bgmac->net_dev = net_dev;
|
bgmac->net_dev = net_dev;
|
||||||
bgmac->core = core;
|
bgmac->core = core;
|
||||||
bcma_set_drvdata(core, bgmac);
|
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 */
|
/* On BCM4706 we need common core to access PHY */
|
||||||
if (core->id.id == BCMA_CORE_4706_MAC_GBIT &&
|
if (core->id.id == BCMA_CORE_4706_MAC_GBIT &&
|
||||||
!core->bus->drv_gmac_cmn.core) {
|
!core->bus->drv_gmac_cmn.core) {
|
||||||
|
@ -312,7 +312,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
err = -ENODEV;
|
err = -ENODEV;
|
||||||
goto err_netdev_free;
|
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;
|
bgmac->phyaddr &= BGMAC_PHY_MASK;
|
||||||
if (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;
|
err = -ENOTSUPP;
|
||||||
goto err_netdev_free;
|
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);
|
err = bgmac_dma_alloc(bgmac);
|
||||||
if (err) {
|
if (err) {
|
||||||
|
@ -341,7 +341,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
goto err_netdev_free;
|
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->has_robosw = !!(core->bus->sprom.boardflags_lo &
|
||||||
BGMAC_BFL_ENETROBO);
|
BGMAC_BFL_ENETROBO);
|
||||||
if (bgmac->has_robosw)
|
if (bgmac->has_robosw)
|
||||||
|
@ -361,7 +361,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
goto err_dma_free;
|
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);
|
err = register_netdev(bgmac->net_dev);
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
int empty_slot;
|
int empty_slot;
|
||||||
bool freed = false;
|
bool freed = false;
|
||||||
unsigned bytes_compl = 0, pkts_compl = 0;
|
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,
|
static int bgmac_dma_rx_skb_for_slot(struct bgmac *bgmac,
|
||||||
struct bgmac_slot_info *slot)
|
struct bgmac_slot_info *slot)
|
||||||
{
|
{
|
||||||
|
@ -47,7 +47,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
dma_addr_t dma_addr;
|
dma_addr_t dma_addr;
|
||||||
struct bgmac_rx_header *rx;
|
struct bgmac_rx_header *rx;
|
||||||
void *buf;
|
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);
|
end_slot /= sizeof(struct bgmac_dma_desc);
|
||||||
|
|
||||||
while (ring->start != end_slot) {
|
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_slot_info *slot = &ring->slots[ring->start];
|
||||||
struct bgmac_rx_header *rx = slot->buf + BGMAC_RX_BUF_OFFSET;
|
struct bgmac_rx_header *rx = slot->buf + BGMAC_RX_BUF_OFFSET;
|
||||||
struct sk_buff *skb;
|
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,
|
static void bgmac_dma_tx_ring_free(struct bgmac *bgmac,
|
||||||
struct bgmac_dma_ring *ring)
|
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_dma_desc *dma_desc = ring->cpu_base;
|
||||||
struct bgmac_slot_info *slot;
|
struct bgmac_slot_info *slot;
|
||||||
int i;
|
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,
|
static void bgmac_dma_rx_ring_free(struct bgmac *bgmac,
|
||||||
struct bgmac_dma_ring *ring)
|
struct bgmac_dma_ring *ring)
|
||||||
{
|
{
|
||||||
|
@ -74,7 +74,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
struct bgmac_slot_info *slot;
|
struct bgmac_slot_info *slot;
|
||||||
int i;
|
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,
|
struct bgmac_dma_ring *ring,
|
||||||
int num_slots)
|
int num_slots)
|
||||||
{
|
{
|
||||||
|
@ -83,7 +83,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
int size;
|
int size;
|
||||||
|
|
||||||
if (!ring->cpu_base)
|
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)
|
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;
|
struct bgmac_dma_ring *ring;
|
||||||
static const u16 ring_base[] = { BGMAC_DMA_BASE0, BGMAC_DMA_BASE1,
|
static const u16 ring_base[] = { BGMAC_DMA_BASE0, BGMAC_DMA_BASE1,
|
||||||
BGMAC_DMA_BASE2, BGMAC_DMA_BASE3, };
|
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;
|
net_dev->ethtool_ops = &bgmac_ethtool_ops;
|
||||||
bgmac = netdev_priv(net_dev);
|
bgmac = netdev_priv(net_dev);
|
||||||
bgmac->dev = &core->dev;
|
bgmac->dev = &core->dev;
|
||||||
|
|
|
@ -317,7 +317,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -468,7 +468,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
/**************************************************
|
/**************************************************
|
||||||
* Chip ops
|
* 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
|
else
|
||||||
bgmac_set(bgmac, BGMAC_PHY_CNTL, BGMAC_PC_MTE);
|
bgmac_set(bgmac, BGMAC_PHY_CNTL, BGMAC_PC_MTE);
|
||||||
bgmac_miiconfig(bgmac);
|
bgmac_miiconfig(bgmac);
|
||||||
|
@ -478,7 +478,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
netdev_reset_queue(bgmac->net_dev);
|
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
|
* MII
|
||||||
**************************************************/
|
**************************************************/
|
||||||
|
|
||||||
|
@ -496,7 +496,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
static void bgmac_adjust_link(struct net_device *net_dev)
|
static void bgmac_adjust_link(struct net_device *net_dev)
|
||||||
{
|
{
|
||||||
struct bgmac *bgmac = netdev_priv(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 = {
|
struct fixed_phy_status fphy_status = {
|
||||||
.link = 1,
|
.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;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -591,7 +591,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
static int bgmac_probe(struct bcma_device *core)
|
static int bgmac_probe(struct bcma_device *core)
|
||||||
{
|
{
|
||||||
struct net_device *net_dev;
|
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)
|
if (bcm47xx_nvram_getenv("et0_no_txint", NULL, 0) == 0)
|
||||||
bgmac->int_mask &= ~BGMAC_IS_TX_MASK;
|
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->has_robosw = !!(core->bus->sprom.boardflags_lo &
|
||||||
BGMAC_BFL_ENETROBO);
|
BGMAC_BFL_ENETROBO);
|
||||||
if (bgmac->has_robosw)
|
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);
|
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;
|
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);
|
err = register_netdev(bgmac->net_dev);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(bgmac->dev, "Cannot register net device\n");
|
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:
|
err_netdev_free:
|
||||||
bcma_set_drvdata(core, NULL);
|
bcma_set_drvdata(core, NULL);
|
||||||
free_netdev(net_dev);
|
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);
|
struct bgmac *bgmac = bcma_get_drvdata(core);
|
||||||
|
|
||||||
unregister_netdev(bgmac->net_dev);
|
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_MASK;
|
||||||
ctl |= BGMAC_DMA_TX_BL_128 << BGMAC_DMA_TX_BL_SHIFT;
|
ctl |= BGMAC_DMA_TX_BL_128 << BGMAC_DMA_TX_BL_SHIFT;
|
||||||
|
|
||||||
@@ -331,7 +331,7 @@ static void bgmac_dma_rx_enable(struct b
|
@@ -335,7 +335,7 @@ static void bgmac_dma_rx_enable(struct b
|
||||||
u32 ctl;
|
/* 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->core->id.rev >= 4) {
|
||||||
+ if (bgmac->feature_flags & BGMAC_FEAT_RX_MASK_SETUP) {
|
+ if (bgmac->feature_flags & BGMAC_FEAT_RX_MASK_SETUP) {
|
||||||
ctl &= ~BGMAC_DMA_RX_BL_MASK;
|
ctl &= ~BGMAC_DMA_RX_BL_MASK;
|
||||||
ctl |= BGMAC_DMA_RX_BL_128 << BGMAC_DMA_RX_BL_SHIFT;
|
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 cmdcfg = bgmac_read(bgmac, BGMAC_CMDCFG);
|
||||||
u32 new_val = (cmdcfg & mask) | set;
|
u32 new_val = (cmdcfg & mask) | set;
|
||||||
|
@ -64,7 +64,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
udelay(2);
|
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;
|
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++)
|
for (i = 0; i < BGMAC_NUM_MIB_TX_REGS; i++)
|
||||||
bgmac->mib_tx_regs[i] =
|
bgmac->mib_tx_regs[i] =
|
||||||
bgmac_read(bgmac,
|
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;
|
int i;
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bgmac_set(bgmac, BGMAC_DEV_CTL, BGMAC_DC_MROR);
|
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)
|
static void bgmac_miiconfig(struct bgmac *bgmac)
|
||||||
{
|
{
|
||||||
struct bcma_device *core = bgmac->core;
|
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_awrite32(core, BCMA_IOCTL,
|
||||||
bcma_aread32(core, BCMA_IOCTL) | 0x40 |
|
bcma_aread32(core, BCMA_IOCTL) | 0x40 |
|
||||||
BGMAC_BCMA_IOCTL_SW_CLKEN);
|
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_duplex = DUPLEX_FULL;
|
||||||
bgmac_mac_speed(bgmac);
|
bgmac_mac_speed(bgmac);
|
||||||
} else {
|
} else {
|
||||||
|
@ -102,7 +102,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
imode = (bgmac_read(bgmac, BGMAC_DEV_STATUS) &
|
imode = (bgmac_read(bgmac, BGMAC_DEV_STATUS) &
|
||||||
BGMAC_DS_MM_MASK) >> BGMAC_DS_MM_SHIFT;
|
BGMAC_DS_MM_MASK) >> BGMAC_DS_MM_SHIFT;
|
||||||
if (imode == 0 || imode == 1) {
|
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)
|
static void bgmac_chip_reset(struct bgmac *bgmac)
|
||||||
{
|
{
|
||||||
struct bcma_device *core = bgmac->core;
|
struct bcma_device *core = bgmac->core;
|
||||||
|
@ -113,7 +113,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
u32 iost;
|
u32 iost;
|
||||||
int i;
|
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);
|
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) {
|
if (iost & BGMAC_BCMA_IOST_ATTACHED) {
|
||||||
flags = BGMAC_BCMA_IOCTL_SW_CLKEN;
|
flags = BGMAC_BCMA_IOCTL_SW_CLKEN;
|
||||||
if (!bgmac->has_robosw)
|
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 */
|
/* 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_set(bgmac, BCMA_CLKCTLST,
|
||||||
BGMAC_BCMA_CLKCTLST_MISC_PLL_REQ);
|
BGMAC_BCMA_CLKCTLST_MISC_PLL_REQ);
|
||||||
bgmac_wait_value(bgmac->core, BCMA_CLKCTLST,
|
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);
|
1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
struct bcma_drv_cc *cc = &bgmac->core->bus->drv_cc;
|
struct bcma_drv_cc *cc = &bgmac->core->bus->drv_cc;
|
||||||
u8 et_swtype = 0;
|
u8 et_swtype = 0;
|
||||||
u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY |
|
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 &= 0x0f;
|
||||||
et_swtype <<= 4;
|
et_swtype <<= 4;
|
||||||
sw_type = et_swtype;
|
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 |
|
sw_type = BGMAC_CHIPCTL_1_IF_TYPE_RGMII |
|
||||||
BGMAC_CHIPCTL_1_SW_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
|
* BGMAC_CMDCFG is read _after_ putting chip in a reset. So it has to
|
||||||
* be keps until taking MAC out of the reset.
|
* 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_maskset(bgmac,
|
||||||
~(BGMAC_CMDCFG_TE |
|
~(BGMAC_CMDCFG_TE |
|
||||||
BGMAC_CMDCFG_RE |
|
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_PROM |
|
||||||
BGMAC_CMDCFG_NLC |
|
BGMAC_CMDCFG_NLC |
|
||||||
BGMAC_CMDCFG_CFE |
|
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_maskset32(bgmac->cmn, BCMA_GMAC_CMN_PHY_CTL, ~0,
|
||||||
BCMA_GMAC_CMN_PC_MTE);
|
BCMA_GMAC_CMN_PC_MTE);
|
||||||
else
|
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 */
|
/* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/gmac_enable */
|
||||||
static void bgmac_enable(struct bgmac *bgmac)
|
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_read(bgmac, BGMAC_RXQ_CTL);
|
||||||
rxq_ctl &= ~BGMAC_RXQ_CTL_MDP_MASK;
|
rxq_ctl &= ~BGMAC_RXQ_CTL_MDP_MASK;
|
||||||
bp_clk = bcma_pmu_get_bus_clock(&bgmac->core->bus->drv_cc) /
|
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)
|
if (core->bus->sprom.boardflags_lo & BGMAC_BFL_ENETADM)
|
||||||
dev_warn(bgmac->dev, "Support for ADMtek ethernet switch not implemented\n");
|
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,
|
ring->mmio_base + BGMAC_DMA_RX_STATUS,
|
||||||
BGMAC_DMA_RX_STAT, BGMAC_DMA_RX_STAT_DISABLED,
|
BGMAC_DMA_RX_STAT, BGMAC_DMA_RX_STAT_DISABLED,
|
||||||
10000))
|
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_TX_RINGS > ARRAY_SIZE(ring_base));
|
||||||
BUILD_BUG_ON(BGMAC_MAX_RX_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");
|
dev_err(bgmac->dev, "Core does not report 64-bit DMA\n");
|
||||||
return -ENOTSUPP;
|
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)
|
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_speed = SPEED_2500;
|
||||||
bgmac->mac_duplex = DUPLEX_FULL;
|
bgmac->mac_duplex = DUPLEX_FULL;
|
||||||
bgmac_mac_speed(bgmac);
|
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 */
|
/* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipreset */
|
||||||
static void bgmac_chip_reset(struct bgmac *bgmac)
|
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) {
|
if (!bgmac->stats_grabbed) {
|
||||||
/* bgmac_chip_stats_update(bgmac); */
|
/* bgmac_chip_stats_update(bgmac); */
|
||||||
bgmac->stats_grabbed = true;
|
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 */
|
/* 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)
|
if (bgmac->feature_flags & BGMAC_FEAT_IOST_ATTACHED)
|
||||||
iost &= ~BGMAC_BCMA_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)
|
if (!bgmac->has_robosw)
|
||||||
flags |= BGMAC_BCMA_IOCTL_SW_RESET;
|
flags |= BGMAC_BCMA_IOCTL_SW_RESET;
|
||||||
}
|
}
|
||||||
|
@ -761,7 +761,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
u8 et_swtype = 0;
|
u8 et_swtype = 0;
|
||||||
u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY |
|
u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY |
|
||||||
BGMAC_CHIPCTL_1_IF_TYPE_MII;
|
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 |
|
sw_type = BGMAC_CHIPCTL_1_IF_TYPE_RGMII |
|
||||||
BGMAC_CHIPCTL_1_SW_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
|
/* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/gmac_reset
|
||||||
* Specs don't say about using BGMAC_CMDCFG_SR, but in this routine
|
* 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);
|
bgmac_clear_mib(bgmac);
|
||||||
if (bgmac->feature_flags & BGMAC_FEAT_CMN_PHY_CTL)
|
if (bgmac->feature_flags & BGMAC_FEAT_CMN_PHY_CTL)
|
||||||
|
@ -795,7 +795,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
else
|
else
|
||||||
bgmac_set(bgmac, BGMAC_PHY_CNTL, BGMAC_PC_MTE);
|
bgmac_set(bgmac, BGMAC_PHY_CNTL, BGMAC_PC_MTE);
|
||||||
bgmac_miiconfig(bgmac);
|
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)
|
if (bgmac->feature_flags & BGMAC_FEAT_CLKCTLST || mode != 0)
|
||||||
bgmac_set(bgmac, BCMA_CLKCTLST, BCMA_CLKCTLST_FORCEHT);
|
bgmac_set(bgmac, BCMA_CLKCTLST, BCMA_CLKCTLST_FORCEHT);
|
||||||
if (bgmac->feature_flags & BGMAC_FEAT_CLKCTLST && mode == 2)
|
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 |
|
if (bgmac->feature_flags & (BGMAC_FEAT_FLW_CTRL1 |
|
||||||
BGMAC_FEAT_FLW_CTRL2)) {
|
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_read(bgmac, BGMAC_RXQ_CTL);
|
||||||
rxq_ctl &= ~BGMAC_RXQ_CTL_MDP_MASK;
|
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;
|
mdp = (bp_clk * 128 / 1000) - 3;
|
||||||
rxq_ctl |= (mdp << BGMAC_RXQ_CTL_MDP_SHIFT);
|
rxq_ctl |= (mdp << BGMAC_RXQ_CTL_MDP_SHIFT);
|
||||||
bgmac_write(bgmac, BGMAC_RXQ_CTL, rxq_ctl);
|
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 */
|
/* Specs say about reclaiming rings here, but we do that in DMA init */
|
||||||
bgmac_chip_init(bgmac);
|
bgmac_chip_init(bgmac);
|
||||||
|
|
||||||
|
@ -825,7 +825,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
KBUILD_MODNAME, net_dev);
|
KBUILD_MODNAME, net_dev);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(bgmac->dev, "IRQ request error: %d!\n", err);
|
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);
|
napi_disable(&bgmac->napi);
|
||||||
bgmac_chip_intrs_off(bgmac);
|
bgmac_chip_intrs_off(bgmac);
|
||||||
|
@ -834,7 +834,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
bgmac_chip_reset(bgmac);
|
bgmac_chip_reset(bgmac);
|
||||||
bgmac_dma_cleanup(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)
|
struct ethtool_drvinfo *info)
|
||||||
{
|
{
|
||||||
strlcpy(info->driver, KBUILD_MODNAME, sizeof(info->driver));
|
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 = {
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -976,7 +976,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
err = bgmac_dma_alloc(bgmac);
|
err = bgmac_dma_alloc(bgmac);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(bgmac->dev, "Unable to alloc memory for DMA\n");
|
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)
|
if (bcm47xx_nvram_getenv("et0_no_txint", NULL, 0) == 0)
|
||||||
bgmac->int_mask &= ~BGMAC_IS_TX_MASK;
|
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;
|
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:
|
err_phy_disconnect:
|
||||||
phy_disconnect(net_dev->phydev);
|
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;
|
bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
|
||||||
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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_cco_ctl_maskset(bgmac, 1, ~(BGMAC_CHIPCTL_1_IF_TYPE_MASK |
|
||||||
BGMAC_CHIPCTL_1_SW_TYPE_MASK),
|
BGMAC_CHIPCTL_1_SW_TYPE_MASK),
|
||||||
sw_type);
|
sw_type);
|
||||||
|
@ -103,7 +103,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iost & BGMAC_BCMA_IOST_ATTACHED && !bgmac->has_robosw)
|
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);
|
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
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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;
|
et_swtype <<= 4;
|
||||||
sw_type = et_swtype;
|
sw_type = et_swtype;
|
||||||
} else if (bgmac->feature_flags & BGMAC_FEAT_SW_TYPE_EPHYRMII) {
|
} 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
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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) >>
|
mode = (bgmac_read(bgmac, BGMAC_DEV_STATUS) & BGMAC_DS_MM_MASK) >>
|
||||||
BGMAC_DS_MM_SHIFT;
|
BGMAC_DS_MM_SHIFT;
|
||||||
|
|
|
@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
--- a/drivers/net/ethernet/broadcom/bgmac.c
|
||||||
+++ b/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_dev = phy_connect(bgmac->net_dev, bus_id, &bgmac_adjust_link,
|
||||||
PHY_INTERFACE_MODE_MII);
|
PHY_INTERFACE_MODE_MII);
|
||||||
if (IS_ERR(phy_dev)) {
|
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
|
--- a/Makefile
|
||||||
+++ b/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,)
|
KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
|
||||||
|
|
||||||
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
|
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -402,7 +402,7 @@ KBUILD_CFLAGS_KERNEL :=
|
@@ -403,7 +403,7 @@ KBUILD_CFLAGS_KERNEL :=
|
||||||
KBUILD_AFLAGS := -D__ASSEMBLY__
|
KBUILD_AFLAGS := -D__ASSEMBLY__ $(call cc-option,-fno-PIE)
|
||||||
KBUILD_AFLAGS_MODULE := -DMODULE
|
KBUILD_AFLAGS_MODULE := -DMODULE
|
||||||
KBUILD_CFLAGS_MODULE := -DMODULE
|
KBUILD_CFLAGS_MODULE := -DMODULE
|
||||||
-KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
|
-KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
|
||||||
|
|
|
@ -173,7 +173,7 @@
|
||||||
goto err;
|
goto err;
|
||||||
--- a/net/core/sock.c
|
--- a/net/core/sock.c
|
||||||
+++ b/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)
|
static int __init proto_init(void)
|
||||||
{
|
{
|
||||||
|
@ -184,7 +184,7 @@
|
||||||
|
|
||||||
--- a/net/ipv4/fib_trie.c
|
--- a/net/ipv4/fib_trie.c
|
||||||
+++ b/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)
|
int __net_init fib_proc_init(struct net *net)
|
||||||
{
|
{
|
||||||
|
@ -199,7 +199,7 @@
|
||||||
&fib_triestat_fops))
|
&fib_triestat_fops))
|
||||||
goto out2;
|
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;
|
return 0;
|
||||||
|
|
||||||
out3:
|
out3:
|
||||||
|
|
|
@ -12,11 +12,9 @@ Signed-off-by: Felipe Balbi <balbi@ti.com>
|
||||||
drivers/usb/dwc3/core.c | 8 +++++---
|
drivers/usb/dwc3/core.c | 8 +++++---
|
||||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
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
|
--- a/drivers/usb/dwc3/core.c
|
||||||
+++ b/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++) {
|
for (n = 0; n < dwc->num_event_buffers; n++) {
|
||||||
evt = dwc->ev_buffs[n];
|
evt = dwc->ev_buffs[n];
|
||||||
|
@ -26,7 +24,7 @@ index 22b47973..de5e01f 100644
|
||||||
evt->buf, (unsigned long long) evt->dma,
|
evt->buf, (unsigned long long) evt->dma,
|
||||||
evt->length);
|
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;
|
reg |= DWC3_GCTL_GBLHIBERNATIONEN;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -42,5 +40,3 @@ index 22b47973..de5e01f 100644
|
||||||
dwc->is_fpga = true;
|
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 +++++++++++++----
|
drivers/usb/dwc3/core.c | 17 +++++++++++++----
|
||||||
1 file changed, 13 insertions(+), 4 deletions(-)
|
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
|
--- a/drivers/usb/dwc3/core.c
|
||||||
+++ b/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;
|
fladj = pdata->fladj_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +30,7 @@ index de5e01f..001c755 100644
|
||||||
dwc->lpm_nyet_threshold = lpm_nyet_threshold;
|
dwc->lpm_nyet_threshold = lpm_nyet_threshold;
|
||||||
dwc->tx_de_emphasis = tx_de_emphasis;
|
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;
|
goto err1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,5 +50,3 @@ index de5e01f..001c755 100644
|
||||||
/* Adjust Frame Length */
|
/* Adjust Frame Length */
|
||||||
dwc3_frame_length_adjustment(dwc, fladj);
|
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 ++++++---
|
drivers/usb/dwc3/gadget.c | 9 ++++++---
|
||||||
2 files changed, 22 insertions(+), 5 deletions(-)
|
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
|
--- a/drivers/usb/dwc3/core.c
|
||||||
+++ b/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;
|
goto err1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +38,7 @@ index 001c755..17fd814 100644
|
||||||
dwc->maximum_speed = USB_SPEED_SUPER;
|
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(dwc->hwparams.hwparams3) ==
|
||||||
DWC3_GHWPARAMS3_SSPHY_IFC_GEN2))
|
DWC3_GHWPARAMS3_SSPHY_IFC_GEN2))
|
||||||
dwc->maximum_speed = USB_SPEED_SUPER_PLUS;
|
dwc->maximum_speed = USB_SPEED_SUPER_PLUS;
|
||||||
|
@ -49,13 +47,11 @@ index 001c755..17fd814 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Adjust Frame Length */
|
/* 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
|
--- a/drivers/usb/dwc3/gadget.c
|
||||||
+++ b/drivers/usb/dwc3/gadget.c
|
+++ b/drivers/usb/dwc3/gadget.c
|
||||||
@@ -1670,10 +1670,13 @@ static int dwc3_gadget_start(struct usb_gadget *g,
|
@@ -1634,10 +1634,13 @@ static int dwc3_gadget_start(struct usb_
|
||||||
case USB_SPEED_SUPER_PLUS:
|
case USB_SPEED_HIGH:
|
||||||
reg |= DWC3_DSTS_SUPERSPEED_PLUS;
|
reg |= DWC3_DSTS_HIGHSPEED;
|
||||||
break;
|
break;
|
||||||
- case USB_SPEED_SUPER: /* FALLTHROUGH */
|
- case USB_SPEED_SUPER: /* FALLTHROUGH */
|
||||||
- case USB_SPEED_UNKNOWN: /* FALTHROUGH */
|
- case USB_SPEED_UNKNOWN: /* FALTHROUGH */
|
||||||
|
@ -70,5 +66,3 @@ index 482e6a1..3ac170f 100644
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dwc3_writel(dwc->regs, DWC3_DCFG, reg);
|
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 ++++++
|
drivers/usb/dwc3/core.h | 6 ++++++
|
||||||
1 file changed, 6 insertions(+)
|
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
|
--- a/drivers/usb/dwc3/core.h
|
||||||
+++ b/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);
|
void dwc3_set_mode(struct dwc3 *dwc, u32 mode);
|
||||||
int dwc3_gadget_resize_tx_fifos(struct dwc3 *dwc);
|
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)
|
#if IS_ENABLED(CONFIG_USB_DWC3_HOST) || IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE)
|
||||||
int dwc3_host_init(struct dwc3 *dwc);
|
int dwc3_host_init(struct dwc3 *dwc);
|
||||||
void dwc3_host_exit(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 ++++-
|
drivers/usb/dwc3/core.h | 5 ++++-
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
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
|
--- a/drivers/usb/dwc3/core.h
|
||||||
+++ b/drivers/usb/dwc3/core.h
|
+++ b/drivers/usb/dwc3/core.h
|
||||||
@@ -223,7 +223,8 @@
|
@@ -222,7 +222,8 @@
|
||||||
/* Global HWPARAMS3 Register */
|
/* Global HWPARAMS3 Register */
|
||||||
#define DWC3_GHWPARAMS3_SSPHY_IFC(n) ((n) & 3)
|
#define DWC3_GHWPARAMS3_SSPHY_IFC(n) ((n) & 3)
|
||||||
#define DWC3_GHWPARAMS3_SSPHY_IFC_DIS 0
|
#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(n) (((n) & (3 << 2)) >> 2)
|
||||||
#define DWC3_GHWPARAMS3_HSPHY_IFC_DIS 0
|
#define DWC3_GHWPARAMS3_HSPHY_IFC_DIS 0
|
||||||
#define DWC3_GHWPARAMS3_HSPHY_IFC_UTMI 1
|
#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_DEVADDR_MASK DWC3_DCFG_DEVADDR(0x7f)
|
||||||
|
|
||||||
#define DWC3_DCFG_SPEED_MASK (7 << 0)
|
#define DWC3_DCFG_SPEED_MASK (7 << 0)
|
||||||
|
@ -34,7 +32,7 @@ index c0520d67..6254b2f 100644
|
||||||
#define DWC3_DCFG_SUPERSPEED (4 << 0)
|
#define DWC3_DCFG_SUPERSPEED (4 << 0)
|
||||||
#define DWC3_DCFG_HIGHSPEED (0 << 0)
|
#define DWC3_DCFG_HIGHSPEED (0 << 0)
|
||||||
#define DWC3_DCFG_FULLSPEED2 (1 << 0)
|
#define DWC3_DCFG_FULLSPEED2 (1 << 0)
|
||||||
@@ -339,6 +341,7 @@
|
@@ -338,6 +340,7 @@
|
||||||
|
|
||||||
#define DWC3_DSTS_CONNECTSPD (7 << 0)
|
#define DWC3_DSTS_CONNECTSPD (7 << 0)
|
||||||
|
|
||||||
|
@ -42,5 +40,3 @@ index c0520d67..6254b2f 100644
|
||||||
#define DWC3_DSTS_SUPERSPEED (4 << 0)
|
#define DWC3_DSTS_SUPERSPEED (4 << 0)
|
||||||
#define DWC3_DSTS_HIGHSPEED (0 << 0)
|
#define DWC3_DSTS_HIGHSPEED (0 << 0)
|
||||||
#define DWC3_DSTS_FULLSPEED2 (1 << 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 ++++++++++++++++++------------------------------
|
drivers/usb/dwc3/core.c | 48 ++++++++++++++++++------------------------------
|
||||||
1 file changed, 18 insertions(+), 30 deletions(-)
|
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
|
--- a/drivers/usb/dwc3/core.c
|
||||||
+++ b/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)
|
static int dwc3_core_soft_reset(struct dwc3 *dwc)
|
||||||
{
|
{
|
||||||
u32 reg;
|
u32 reg;
|
||||||
|
@ -53,7 +51,7 @@ index 17fd814..fa20f5a9 100644
|
||||||
usb_phy_init(dwc->usb2_phy);
|
usb_phy_init(dwc->usb2_phy);
|
||||||
usb_phy_init(dwc->usb3_phy);
|
usb_phy_init(dwc->usb3_phy);
|
||||||
ret = phy_init(dwc->usb2_generic_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);
|
phy_exit(dwc->usb2_generic_phy);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -63,6 +61,18 @@ index 17fd814..fa20f5a9 100644
|
||||||
- reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0));
|
- reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0));
|
||||||
- reg &= ~DWC3_GUSB3PIPECTL_PHYSOFTRST;
|
- reg &= ~DWC3_GUSB3PIPECTL_PHYSOFTRST;
|
||||||
- dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg);
|
- 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,
|
+ * 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
|
+ * 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)
|
+ if (dwc->dr_mode == USB_DR_MODE_HOST)
|
||||||
+ return 0;
|
+ 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_readl(dwc->regs, DWC3_DCTL);
|
||||||
+ reg |= DWC3_DCTL_CSFTRST;
|
+ reg |= DWC3_DCTL_CSFTRST;
|
||||||
+ dwc3_writel(dwc->regs, DWC3_DCTL, reg);
|
+ dwc3_writel(dwc->regs, DWC3_DCTL, reg);
|
||||||
|
+
|
||||||
- mdelay(100);
|
|
||||||
+ do {
|
+ do {
|
||||||
+ reg = dwc3_readl(dwc->regs, DWC3_DCTL);
|
+ reg = dwc3_readl(dwc->regs, DWC3_DCTL);
|
||||||
+ if (!(reg & DWC3_DCTL_CSFTRST))
|
+ if (!(reg & DWC3_DCTL_CSFTRST))
|
||||||
+ return 0;
|
+ 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);
|
+ udelay(1);
|
||||||
+ } while (--retries);
|
+ } 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 -
|
drivers/usb/dwc3/platform_data.h | 1 -
|
||||||
7 files changed, 2 insertions(+), 108 deletions(-)
|
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
|
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
|
||||||
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
|
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
|
||||||
@@ -14,7 +14,6 @@ Optional properties:
|
@@ -14,7 +14,6 @@ Optional properties:
|
||||||
|
@ -52,8 +50,6 @@ index fb2ad0a..1569568 100644
|
||||||
usb-phy = <&usb2_phy>, <&usb3,phy>;
|
usb-phy = <&usb2_phy>, <&usb3,phy>;
|
||||||
- tx-fifo-resize;
|
- 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
|
--- a/Documentation/devicetree/bindings/usb/qcom,dwc3.txt
|
||||||
+++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.txt
|
+++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.txt
|
||||||
@@ -59,7 +59,6 @@ Example device nodes:
|
@@ -59,7 +59,6 @@ Example device nodes:
|
||||||
|
@ -64,11 +60,9 @@ index ca164e7..39acb08 100644
|
||||||
dr_mode = "host";
|
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
|
--- a/drivers/usb/dwc3/core.c
|
||||||
+++ b/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,
|
dwc->usb3_lpm_capable = device_property_read_bool(dev,
|
||||||
"snps,usb3_lpm_capable");
|
"snps,usb3_lpm_capable");
|
||||||
|
|
||||||
|
@ -78,7 +72,7 @@ index fa20f5a9..67d183a 100644
|
||||||
dwc->disable_scramble_quirk = device_property_read_bool(dev,
|
dwc->disable_scramble_quirk = device_property_read_bool(dev,
|
||||||
"snps,disable_scramble_quirk");
|
"snps,disable_scramble_quirk");
|
||||||
dwc->u2exit_lfps_quirk = device_property_read_bool(dev,
|
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)
|
if (pdata->hird_threshold)
|
||||||
hird_threshold = 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->usb3_lpm_capable = pdata->usb3_lpm_capable;
|
||||||
dwc->dr_mode = pdata->dr_mode;
|
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
|
--- a/drivers/usb/dwc3/core.h
|
||||||
+++ b/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
|
* 0 - utmi_sleep_n
|
||||||
* 1 - utmi_l1_suspend_n
|
* 1 - utmi_l1_suspend_n
|
||||||
* @is_fpga: true when we are using the FPGA board
|
* @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
|
* @setup_packet_pending: true when there's a Setup Packet in FIFO. Workaround
|
||||||
* @start_config_issued: true when StartConfig command has been issued
|
* @start_config_issued: true when StartConfig command has been issued
|
||||||
* @three_stage_setup: set if we perform a three phase setup
|
* @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 has_lpm_erratum:1;
|
||||||
unsigned is_utmi_l1_suspend:1;
|
unsigned is_utmi_l1_suspend:1;
|
||||||
unsigned is_fpga:1;
|
unsigned is_fpga:1;
|
||||||
|
@ -110,7 +102,7 @@ index 6254b2f..7cbe9e9 100644
|
||||||
unsigned setup_packet_pending:1;
|
unsigned setup_packet_pending:1;
|
||||||
unsigned three_stage_setup:1;
|
unsigned three_stage_setup:1;
|
||||||
unsigned usb3_lpm_capable: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 */
|
/* prototypes */
|
||||||
void dwc3_set_mode(struct dwc3 *dwc, u32 mode);
|
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 */
|
/* check whether we are on the DWC_usb31 core */
|
||||||
static inline bool dwc3_is_usb31(struct dwc3 *dwc)
|
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
|
--- a/drivers/usb/dwc3/ep0.c
|
||||||
+++ b/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_readl(dwc->regs, DWC3_DCTL);
|
||||||
reg |= (DWC3_DCTL_ACCEPTU1ENA | DWC3_DCTL_ACCEPTU2ENA);
|
reg |= (DWC3_DCTL_ACCEPTU1ENA | DWC3_DCTL_ACCEPTU2ENA);
|
||||||
dwc3_writel(dwc->regs, DWC3_DCTL, reg);
|
dwc3_writel(dwc->regs, DWC3_DCTL, reg);
|
||||||
|
@ -132,7 +122,7 @@ index eca2e6d..4454de0 100644
|
||||||
}
|
}
|
||||||
break;
|
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)
|
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));
|
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
|
--- a/drivers/usb/dwc3/gadget.c
|
||||||
+++ b/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;
|
return -ETIMEDOUT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,8 +230,6 @@ index d54a028..3a5c271 100644
|
||||||
void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req,
|
void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req,
|
||||||
int status)
|
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
|
--- a/drivers/usb/dwc3/platform_data.h
|
||||||
+++ b/drivers/usb/dwc3/platform_data.h
|
+++ b/drivers/usb/dwc3/platform_data.h
|
||||||
@@ -23,7 +23,6 @@
|
@@ -23,7 +23,6 @@
|
||||||
|
@ -254,5 +240,3 @@ index 2bb4d3a..aaa6f00 100644
|
||||||
bool usb3_lpm_capable;
|
bool usb3_lpm_capable;
|
||||||
|
|
||||||
unsigned is_utmi_l1_suspend:1;
|
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 +++++++---------------
|
drivers/usb/dwc3/gadget.c | 38 +++++++---------------
|
||||||
3 files changed, 44 insertions(+), 77 deletions(-)
|
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
|
--- a/drivers/usb/dwc3/core.c
|
||||||
+++ b/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)
|
static void dwc3_free_event_buffers(struct dwc3 *dwc)
|
||||||
{
|
{
|
||||||
struct dwc3_event_buffer *evt;
|
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)
|
static int dwc3_alloc_event_buffers(struct dwc3 *dwc, unsigned length)
|
||||||
{
|
{
|
||||||
|
@ -75,7 +73,7 @@ index 67d183a..9e5c57c7 100644
|
||||||
|
|
||||||
return 0;
|
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)
|
static int dwc3_event_buffers_setup(struct dwc3 *dwc)
|
||||||
{
|
{
|
||||||
struct dwc3_event_buffer *evt;
|
struct dwc3_event_buffer *evt;
|
||||||
|
@ -116,7 +114,7 @@ index 67d183a..9e5c57c7 100644
|
||||||
|
|
||||||
return 0;
|
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)
|
static void dwc3_event_buffers_cleanup(struct dwc3 *dwc)
|
||||||
{
|
{
|
||||||
struct dwc3_event_buffer *evt;
|
struct dwc3_event_buffer *evt;
|
||||||
|
@ -143,11 +141,9 @@ index 67d183a..9e5c57c7 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dwc3_alloc_scratch_buffers(struct dwc3 *dwc)
|
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
|
--- a/drivers/usb/dwc3/core.h
|
||||||
+++ b/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: base address for our registers
|
||||||
* @regs_size: address space size
|
* @regs_size: address space size
|
||||||
* @nr_scratch: number of scratch buffers
|
* @nr_scratch: number of scratch buffers
|
||||||
|
@ -155,7 +151,7 @@ index 4ea4b51..be03999 100644
|
||||||
* @u1u2: only used on revisions <1.83a for workaround
|
* @u1u2: only used on revisions <1.83a for workaround
|
||||||
* @maximum_speed: maximum speed requested (mainly for testing purposes)
|
* @maximum_speed: maximum speed requested (mainly for testing purposes)
|
||||||
* @revision: revision register contents
|
* @revision: revision register contents
|
||||||
@@ -778,7 +777,6 @@ struct dwc3 {
|
@@ -775,7 +774,6 @@ struct dwc3 {
|
||||||
u32 gctl;
|
u32 gctl;
|
||||||
|
|
||||||
u32 nr_scratch;
|
u32 nr_scratch;
|
||||||
|
@ -163,11 +159,9 @@ index 4ea4b51..be03999 100644
|
||||||
u32 u1u2;
|
u32 u1u2;
|
||||||
u32 maximum_speed;
|
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
|
--- a/drivers/usb/dwc3/gadget.c
|
||||||
+++ b/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;
|
left = evt->count;
|
||||||
|
|
||||||
if (!(evt->flags & DWC3_EVENT_PENDING))
|
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;
|
evt->lpos = (evt->lpos + 4) % DWC3_EVENT_BUFFERS_SIZE;
|
||||||
left -= 4;
|
left -= 4;
|
||||||
|
|
||||||
|
@ -193,7 +187,7 @@ index e6bd3a9..5e6a495 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
evt->count = 0;
|
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;
|
ret = IRQ_HANDLED;
|
||||||
|
|
||||||
/* Unmask interrupt */
|
/* Unmask interrupt */
|
||||||
|
@ -205,7 +199,7 @@ index e6bd3a9..5e6a495 100644
|
||||||
|
|
||||||
return ret;
|
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;
|
struct dwc3 *dwc = _dwc;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
irqreturn_t ret = IRQ_NONE;
|
irqreturn_t ret = IRQ_NONE;
|
||||||
|
@ -237,7 +231,7 @@ index e6bd3a9..5e6a495 100644
|
||||||
count &= DWC3_GEVNTCOUNT_MASK;
|
count &= DWC3_GEVNTCOUNT_MASK;
|
||||||
if (!count)
|
if (!count)
|
||||||
return IRQ_NONE;
|
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;
|
evt->flags |= DWC3_EVENT_PENDING;
|
||||||
|
|
||||||
/* Mask interrupt */
|
/* Mask interrupt */
|
||||||
|
@ -249,7 +243,7 @@ index e6bd3a9..5e6a495 100644
|
||||||
|
|
||||||
return IRQ_WAKE_THREAD;
|
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)
|
static irqreturn_t dwc3_interrupt(int irq, void *_dwc)
|
||||||
{
|
{
|
||||||
struct dwc3 *dwc = _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 ++--
|
drivers/usb/dwc3/gadget.c | 4 ++--
|
||||||
3 files changed, 7 insertions(+), 12 deletions(-)
|
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
|
--- a/drivers/usb/dwc3/core.c
|
||||||
+++ b/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;
|
struct dwc3_event_buffer *evt;
|
||||||
|
|
||||||
|
@ -28,7 +26,7 @@ index 9e5c57c7..05b7ec3 100644
|
||||||
if (evt)
|
if (evt)
|
||||||
dwc3_free_one_event_buffer(dwc, 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;
|
struct dwc3_event_buffer *evt;
|
||||||
|
|
||||||
|
@ -47,7 +45,7 @@ index 9e5c57c7..05b7ec3 100644
|
||||||
|
|
||||||
return 0;
|
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;
|
struct dwc3_event_buffer *evt;
|
||||||
|
|
||||||
|
@ -56,7 +54,7 @@ index 9e5c57c7..05b7ec3 100644
|
||||||
dwc3_trace(trace_dwc3_core,
|
dwc3_trace(trace_dwc3_core,
|
||||||
"Event buf %p dma %08llx length %d\n",
|
"Event buf %p dma %08llx length %d\n",
|
||||||
evt->buf, (unsigned long long) evt->dma,
|
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;
|
struct dwc3_event_buffer *evt;
|
||||||
|
|
||||||
|
@ -65,11 +63,9 @@ index 9e5c57c7..05b7ec3 100644
|
||||||
|
|
||||||
evt->lpos = 0;
|
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
|
--- a/drivers/usb/dwc3/core.h
|
||||||
+++ b/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 platform_device *xhci;
|
||||||
struct resource xhci_resources[DWC3_XHCI_RESOURCES_NUM];
|
struct resource xhci_resources[DWC3_XHCI_RESOURCES_NUM];
|
||||||
|
|
||||||
|
@ -78,11 +74,9 @@ index be03999..df72234a 100644
|
||||||
struct dwc3_ep *eps[DWC3_ENDPOINTS_NUM];
|
struct dwc3_ep *eps[DWC3_ENDPOINTS_NUM];
|
||||||
|
|
||||||
struct usb_gadget gadget;
|
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
|
--- a/drivers/usb/dwc3/gadget.c
|
||||||
+++ b/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;
|
int left;
|
||||||
u32 reg;
|
u32 reg;
|
||||||
|
|
||||||
|
@ -91,7 +85,7 @@ index 5e6a495..96dfde0 100644
|
||||||
left = evt->count;
|
left = evt->count;
|
||||||
|
|
||||||
if (!(evt->flags & DWC3_EVENT_PENDING))
|
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 count;
|
||||||
u32 reg;
|
u32 reg;
|
||||||
|
|
||||||
|
@ -100,5 +94,3 @@ index 5e6a495..96dfde0 100644
|
||||||
|
|
||||||
count = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0));
|
count = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0));
|
||||||
count &= DWC3_GEVNTCOUNT_MASK;
|
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 ++++++++++++++++++++++-
|
drivers/usb/dwc3/core.c | 23 ++++++++++++++++++++++-
|
||||||
1 file changed, 22 insertions(+), 1 deletion(-)
|
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
|
--- a/drivers/usb/dwc3/core.c
|
||||||
+++ b/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->usb2_generic_phy);
|
||||||
phy_exit(dwc->usb3_generic_phy);
|
phy_exit(dwc->usb3_generic_phy);
|
||||||
|
|
||||||
|
@ -31,7 +29,7 @@ index fa20f5a9..34277ce 100644
|
||||||
pinctrl_pm_select_sleep_state(dev);
|
pinctrl_pm_select_sleep_state(dev);
|
||||||
|
|
||||||
return 0;
|
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);
|
pinctrl_pm_select_default_state(dev);
|
||||||
|
|
||||||
|
@ -54,7 +52,7 @@ index fa20f5a9..34277ce 100644
|
||||||
|
|
||||||
ret = phy_init(dwc->usb3_generic_phy);
|
ret = phy_init(dwc->usb3_generic_phy);
|
||||||
if (ret < 0)
|
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:
|
err_usb2phy_init:
|
||||||
phy_exit(dwc->usb2_generic_phy);
|
phy_exit(dwc->usb2_generic_phy);
|
||||||
|
|
||||||
|
@ -67,5 +65,3 @@ index fa20f5a9..34277ce 100644
|
||||||
return ret;
|
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 +
|
drivers/usb/dwc3/dwc3-of-simple.c | 1 +
|
||||||
1 file changed, 1 insertion(+)
|
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
|
--- a/drivers/usb/dwc3/dwc3-of-simple.c
|
||||||
+++ b/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)
|
if (!simple->clks)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
@ -27,5 +25,3 @@ index 9743353..e56d59b 100644
|
||||||
simple->dev = dev;
|
simple->dev = dev;
|
||||||
|
|
||||||
for (i = 0; i < simple->num_clocks; i++) {
|
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 {
|
intc: interrupt-controller@2000000 {
|
||||||
@@ -417,6 +448,144 @@
|
@@ -415,6 +446,144 @@
|
||||||
dr_mode = "host";
|
dr_mode = "host";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
||||||
+++ b/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>,
|
clocks = <&gcc PCIE_A_CLK>,
|
||||||
<&gcc PCIE_H_CLK>,
|
<&gcc PCIE_H_CLK>,
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
pinctrl-0 = <&pcie0_pins>;
|
pinctrl-0 = <&pcie0_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
@@ -523,15 +529,21 @@
|
@@ -521,15 +527,21 @@
|
||||||
|
|
||||||
clocks = <&gcc PCIE_1_A_CLK>,
|
clocks = <&gcc PCIE_1_A_CLK>,
|
||||||
<&gcc PCIE_1_H_CLK>,
|
<&gcc PCIE_1_H_CLK>,
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
|
|
||||||
pinctrl-0 = <&pcie1_pins>;
|
pinctrl-0 = <&pcie1_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
@@ -569,15 +581,21 @@
|
@@ -567,15 +579,21 @@
|
||||||
|
|
||||||
clocks = <&gcc PCIE_2_A_CLK>,
|
clocks = <&gcc PCIE_2_A_CLK>,
|
||||||
<&gcc PCIE_2_H_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
|
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
||||||
+++ b/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";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
|
@ -26,7 +26,7 @@ arch/arm/boot/dts/qcom-ipq8064.dtsi | 15 +++++++++++++++
|
||||||
|
|
||||||
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
||||||
+++ b/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";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
|
@ -121,7 +121,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
|
||||||
};
|
};
|
||||||
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
||||||
+++ b/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";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
--- a/arch/mips/lantiq/xway/reset.c 2016-01-20 08:45:18.382597595 +0100
|
--- a/arch/mips/lantiq/xway/reset.c
|
||||||
+++ b/arch/mips/lantiq/xway/reset.c 2016-01-20 08:45:31.927107016 +0100
|
+++ b/arch/mips/lantiq/xway/reset.c
|
||||||
@@ -370,6 +370,7 @@ static int __init mips_reboot_setup(void
|
@@ -370,6 +370,7 @@ static int __init mips_reboot_setup(void
|
||||||
panic("Failed to remap core memory");
|
panic("Failed to remap core memory");
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
static void ltq_usb_init(void)
|
static void ltq_usb_init(void)
|
||||||
{
|
{
|
||||||
/* Power for USB cores 1 & 2 */
|
/* 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_restart = ltq_machine_restart;
|
||||||
_machine_halt = ltq_machine_halt;
|
_machine_halt = ltq_machine_halt;
|
||||||
|
|
|
@ -133,7 +133,7 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
@@ -1152,7 +1153,6 @@ bad_args:
|
@@ -1155,7 +1156,6 @@ bad_args:
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PPC
|
#ifdef CONFIG_PPC
|
||||||
|
|
|
@ -51,7 +51,7 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||||
.compat = "fsl,ls1043a-clockgen",
|
.compat = "fsl,ls1043a-clockgen",
|
||||||
.init_periph = t2080_init_periph,
|
.init_periph = t2080_init_periph,
|
||||||
.cmux_groups = {
|
.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_ls1021a, "fsl,ls1021a-clockgen", clockgen_init);
|
||||||
CLK_OF_DECLARE(qoriq_clockgen_ls1043a, "fsl,ls1043a-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);
|
CLK_OF_DECLARE(qoriq_clockgen_ls2080a, "fsl,ls2080a-clockgen", clockgen_init);
|
||||||
|
|
Loading…
Reference in a new issue