Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 57930
b: refs/heads/master
c: 9f78975
h: refs/heads/master
v: v3
  • Loading branch information
Peer Chen authored and Jeff Garzik committed Jun 20, 2007
1 parent fbe0074 commit ae9e7cd
Show file tree
Hide file tree
Showing 20 changed files with 127 additions and 274 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2090dee420911045258d50239dc2c527e4b1dd06
refs/heads/master: 9f7897554eeca34ec23dd877cc27402bd327a1ce
2 changes: 2 additions & 0 deletions trunk/drivers/ata/pata_amd.c
Original file line number Diff line number Diff line change
Expand Up @@ -693,6 +693,8 @@ static const struct pci_device_id amd[] = {
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_IDE), 8 },
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_IDE), 8 },
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_IDE), 8 },
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_IDE), 8 },
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE), 8 },
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_CS5536_IDE), 9 },

{ },
Expand Down
9 changes: 5 additions & 4 deletions trunk/drivers/net/bonding/bond_3ad.c
Original file line number Diff line number Diff line change
Expand Up @@ -2303,18 +2303,19 @@ void bond_3ad_handle_link_change(struct slave *slave, char link)
}

/*
* set link state for bonding master: if we have an active
* set link state for bonding master: if we have an active partnered
* aggregator, we're up, if not, we're down. Presumes that we cannot
* have an active aggregator if there are no slaves with link up.
*
* This behavior complies with IEEE 802.3 section 43.3.9.
*
* Called by bond_set_carrier(). Return zero if carrier state does not
* change, nonzero if it does.
*/
int bond_3ad_set_carrier(struct bonding *bond)
{
if (__get_active_agg(&(SLAVE_AD_INFO(bond->first_slave).aggregator))) {
struct aggregator *agg;

agg = __get_active_agg(&(SLAVE_AD_INFO(bond->first_slave).aggregator));
if (agg && MAC_ADDRESS_COMPARE(&agg->partner_system, &null_mac_addr)) {
if (!netif_carrier_ok(bond->dev)) {
netif_carrier_on(bond->dev);
return 1;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/bonding/bond_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4345,8 +4345,8 @@ static void bond_free_all(void)
bond_mc_list_destroy(bond);
/* Release the bonded slaves */
bond_release_all(bond_dev);
bond_deinit(bond_dev);
unregister_netdevice(bond_dev);
bond_deinit(bond_dev);
}

#ifdef CONFIG_PROC_FS
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/bonding/bond_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -164,9 +164,9 @@ static ssize_t bonding_store_bonds(struct class *cls, const char *buffer, size_t
printk(KERN_INFO DRV_NAME
": %s is being deleted...\n",
bond->dev->name);
unregister_netdevice(bond->dev);
bond_deinit(bond->dev);
bond_destroy_sysfs_entry(bond);
unregister_netdevice(bond->dev);
rtnl_unlock();
goto out;
}
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/net/bonding/bonding.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
#include "bond_3ad.h"
#include "bond_alb.h"

#define DRV_VERSION "3.1.3"
#define DRV_RELDATE "June 13, 2007"
#define DRV_VERSION "3.1.2"
#define DRV_RELDATE "January 20, 2007"
#define DRV_NAME "bonding"
#define DRV_DESCRIPTION "Ethernet Channel Bonding Driver"

Expand Down
10 changes: 2 additions & 8 deletions trunk/drivers/net/cxgb3/ael1002.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,13 +219,7 @@ static int xaui_direct_get_link_status(struct cphy *phy, int *link_ok,
unsigned int status;

status = t3_read_reg(phy->adapter,
XGM_REG(A_XGM_SERDES_STAT0, phy->addr)) |
t3_read_reg(phy->adapter,
XGM_REG(A_XGM_SERDES_STAT1, phy->addr)) |
t3_read_reg(phy->adapter,
XGM_REG(A_XGM_SERDES_STAT2, phy->addr)) |
t3_read_reg(phy->adapter,
XGM_REG(A_XGM_SERDES_STAT3, phy->addr));
XGM_REG(A_XGM_SERDES_STAT0, phy->addr));
*link_ok = !(status & F_LOWSIG0);
}
if (speed)
Expand Down Expand Up @@ -253,5 +247,5 @@ static struct cphy_ops xaui_direct_ops = {
void t3_xaui_direct_phy_prep(struct cphy *phy, struct adapter *adapter,
int phy_addr, const struct mdio_ops *mdio_ops)
{
cphy_init(phy, adapter, phy_addr, &xaui_direct_ops, mdio_ops);
cphy_init(phy, adapter, 1, &xaui_direct_ops, mdio_ops);
}
16 changes: 3 additions & 13 deletions trunk/drivers/net/cxgb3/cxgb3_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2071,20 +2071,10 @@ static void vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
static void cxgb_netpoll(struct net_device *dev)
{
struct adapter *adapter = dev->priv;
struct port_info *pi = netdev_priv(dev);
int qidx;
struct sge_qset *qs = dev2qset(dev);

for (qidx = pi->first_qset; qidx < pi->first_qset + pi->nqsets; qidx++) {
struct sge_qset *qs = &adapter->sge.qs[qidx];
void *source;

if (adapter->flags & USING_MSIX)
source = qs;
else
source = adapter;

t3_intr_handler(adapter, qs->rspq.polling) (0, source);
}
t3_intr_handler(adapter, qs->rspq.polling) (adapter->pdev->irq,
adapter);
}
#endif

Expand Down
6 changes: 0 additions & 6 deletions trunk/drivers/net/cxgb3/regs.h
Original file line number Diff line number Diff line change
Expand Up @@ -1882,10 +1882,6 @@
#define V_COPYALLFRAMES(x) ((x) << S_COPYALLFRAMES)
#define F_COPYALLFRAMES V_COPYALLFRAMES(1U)

#define S_DISBCAST 1
#define V_DISBCAST(x) ((x) << S_DISBCAST)
#define F_DISBCAST V_DISBCAST(1U)

#define A_XGM_RX_HASH_LOW 0x814

#define A_XGM_RX_HASH_HIGH 0x818
Expand Down Expand Up @@ -2132,8 +2128,6 @@
#define F_RESETPLL01 V_RESETPLL01(1U)

#define A_XGM_SERDES_STAT0 0x8f0
#define A_XGM_SERDES_STAT1 0x8f4
#define A_XGM_SERDES_STAT2 0x8f8

#define S_LOWSIG0 0
#define V_LOWSIG0(x) ((x) << S_LOWSIG0)
Expand Down
3 changes: 2 additions & 1 deletion trunk/drivers/net/cxgb3/sge.c
Original file line number Diff line number Diff line change
Expand Up @@ -1690,8 +1690,8 @@ static void rx_eth(struct adapter *adap, struct sge_rspq *rq,
struct port_info *pi;

skb_pull(skb, sizeof(*p) + pad);
skb->protocol = eth_type_trans(skb, adap->port[p->iff]);
skb->dev->last_rx = jiffies;
skb->protocol = eth_type_trans(skb, adap->port[p->iff]);
pi = netdev_priv(skb->dev);
if (pi->rx_csum_offload && p->csum_valid && p->csum == 0xffff &&
!p->fragment) {
Expand Down Expand Up @@ -2217,6 +2217,7 @@ irqreturn_t t3_sge_intr_msix_napi(int irq, void *cookie)
struct sge_rspq *q = &qs->rspq;

spin_lock(&q->lock);
BUG_ON(napi_is_scheduled(qs->netdev));

if (handle_responses(adap, q) < 0)
q->unhandled_irqs++;
Expand Down
98 changes: 11 additions & 87 deletions trunk/drivers/net/cxgb3/xgmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -231,28 +231,6 @@ int t3_mac_set_num_ucast(struct cmac *mac, int n)
return 0;
}

static void disable_exact_filters(struct cmac *mac)
{
unsigned int i, reg = mac->offset + A_XGM_RX_EXACT_MATCH_LOW_1;

for (i = 0; i < EXACT_ADDR_FILTERS; i++, reg += 8) {
u32 v = t3_read_reg(mac->adapter, reg);
t3_write_reg(mac->adapter, reg, v);
}
t3_read_reg(mac->adapter, A_XGM_RX_EXACT_MATCH_LOW_1); /* flush */
}

static void enable_exact_filters(struct cmac *mac)
{
unsigned int i, reg = mac->offset + A_XGM_RX_EXACT_MATCH_HIGH_1;

for (i = 0; i < EXACT_ADDR_FILTERS; i++, reg += 8) {
u32 v = t3_read_reg(mac->adapter, reg);
t3_write_reg(mac->adapter, reg, v);
}
t3_read_reg(mac->adapter, A_XGM_RX_EXACT_MATCH_LOW_1); /* flush */
}

/* Calculate the RX hash filter index of an Ethernet address */
static int hash_hw_addr(const u8 * addr)
{
Expand Down Expand Up @@ -303,14 +281,6 @@ int t3_mac_set_rx_mode(struct cmac *mac, struct t3_rx_mode *rm)
return 0;
}

static int rx_fifo_hwm(int mtu)
{
int hwm;

hwm = max(MAC_RXFIFO_SIZE - 3 * mtu, (MAC_RXFIFO_SIZE * 38) / 100);
return min(hwm, MAC_RXFIFO_SIZE - 8192);
}

int t3_mac_set_mtu(struct cmac *mac, unsigned int mtu)
{
int hwm, lwm;
Expand All @@ -336,38 +306,11 @@ int t3_mac_set_mtu(struct cmac *mac, unsigned int mtu)
lwm = min(3 * (int)mtu, MAC_RXFIFO_SIZE / 4);

v = t3_read_reg(adap, A_XGM_RXFIFO_CFG + mac->offset);
if (adap->params.rev == T3_REV_B2 &&
(t3_read_reg(adap, A_XGM_RX_CTRL + mac->offset) & F_RXEN)) {
disable_exact_filters(mac);
t3_set_reg_field(adap, A_XGM_RXFIFO_CFG + mac->offset,
F_ENHASHMCAST | F_COPYALLFRAMES, F_DISBCAST);

/* drain rx FIFO */
if (t3_wait_op_done(adap,
A_XGM_RX_MAX_PKT_SIZE_ERR_CNT +
mac->offset,
1 << 31, 1, 20, 5)) {
t3_write_reg(adap, A_XGM_RXFIFO_CFG + mac->offset, v);
enable_exact_filters(mac);
return -EIO;
}
t3_write_reg(adap, A_XGM_RX_MAX_PKT_SIZE + mac->offset, mtu);
enable_exact_filters(mac);
} else
t3_write_reg(adap, A_XGM_RX_MAX_PKT_SIZE + mac->offset, mtu);

/*
* Adjust the PAUSE frame watermarks. We always set the LWM, and the
* HWM only if flow-control is enabled.
*/
hwm = rx_fifo_hwm(mtu);
lwm = min(3 * (int)mtu, MAC_RXFIFO_SIZE / 4);
v &= ~V_RXFIFOPAUSELWM(M_RXFIFOPAUSELWM);
v |= V_RXFIFOPAUSELWM(lwm / 8);
if (G_RXFIFOPAUSEHWM(v))
v = (v & ~V_RXFIFOPAUSEHWM(M_RXFIFOPAUSEHWM)) |
V_RXFIFOPAUSEHWM(hwm / 8);

t3_write_reg(adap, A_XGM_RXFIFO_CFG + mac->offset, v);

/* Adjust the TX FIFO threshold based on the MTU */
Expand All @@ -386,6 +329,7 @@ int t3_mac_set_mtu(struct cmac *mac, unsigned int mtu)
(hwm - lwm) * 4 / 8);
t3_write_reg(adap, A_XGM_TX_PAUSE_QUANTA + mac->offset,
MAC_RXFIFO_SIZE * 4 * 8 / 512);

return 0;
}

Expand Down Expand Up @@ -413,15 +357,6 @@ int t3_mac_set_speed_duplex_fc(struct cmac *mac, int speed, int duplex, int fc)
V_PORTSPEED(M_PORTSPEED), val);
}

val = t3_read_reg(adap, A_XGM_RXFIFO_CFG + oft);
val &= ~V_RXFIFOPAUSEHWM(M_RXFIFOPAUSEHWM);
if (fc & PAUSE_TX)
val |= V_RXFIFOPAUSEHWM(rx_fifo_hwm(
t3_read_reg(adap,
A_XGM_RX_MAX_PKT_SIZE
+ oft)) / 8);
t3_write_reg(adap, A_XGM_RXFIFO_CFG + oft, val);

t3_set_reg_field(adap, A_XGM_TX_CFG + oft, F_TXPAUSEEN,
(fc & PAUSE_RX) ? F_TXPAUSEEN : 0);
return 0;
Expand Down Expand Up @@ -501,10 +436,6 @@ int t3b2_mac_watchdog_task(struct cmac *mac)
unsigned int rx_xcnt;
int status;

status = 0;
tx_xcnt = 1; /* By default tx_xcnt is making progress */
tx_tcnt = mac->tx_tcnt; /* If tx_mcnt is progressing ignore tx_tcnt */
rx_xcnt = 1; /* By default rx_xcnt is making progress */
if (tx_mcnt == mac->tx_mcnt) {
tx_xcnt = (G_TXSPI4SOPCNT(t3_read_reg(adap,
A_XGM_TX_SPI4_SOP_EOP_CNT +
Expand All @@ -515,44 +446,37 @@ int t3b2_mac_watchdog_task(struct cmac *mac)
tx_tcnt = (G_TXDROPCNTCH0RCVD(t3_read_reg(adap,
A_TP_PIO_DATA)));
} else {
goto rxcheck;
mac->toggle_cnt = 0;
return 0;
}
} else {
mac->toggle_cnt = 0;
goto rxcheck;
return 0;
}

if (((tx_tcnt != mac->tx_tcnt) &&
(tx_xcnt == 0) && (mac->tx_xcnt == 0)) ||
((mac->tx_mcnt == tx_mcnt) &&
(tx_xcnt != 0) && (mac->tx_xcnt != 0))) {
if (mac->toggle_cnt > 4) {
if (mac->toggle_cnt > 4)
status = 2;
goto out;
} else {
else
status = 1;
goto out;
}
} else {
mac->toggle_cnt = 0;
goto rxcheck;
return 0;
}

rxcheck:
if (rx_mcnt != mac->rx_mcnt)
rx_xcnt = (G_TXSPI4SOPCNT(t3_read_reg(adap,
A_XGM_RX_SPI4_SOP_EOP_CNT +
mac->offset)));
else
goto out;
else
return 0;

if (mac->rx_mcnt != s->rx_frames && rx_xcnt == 0 &&
mac->rx_xcnt == 0) {
if (mac->rx_mcnt != s->rx_frames && rx_xcnt == 0 && mac->rx_xcnt == 0)
status = 2;
goto out;
}

out:

mac->tx_tcnt = tx_tcnt;
mac->tx_xcnt = tx_xcnt;
mac->tx_mcnt = s->tx_frames;
Expand Down
4 changes: 1 addition & 3 deletions trunk/drivers/net/forcedeth.c
Original file line number Diff line number Diff line change
Expand Up @@ -4825,10 +4825,8 @@ static int nv_close(struct net_device *dev)

drain_ring(dev);

if (np->wolenabled) {
writel(NVREG_PFF_ALWAYS|NVREG_PFF_MYADDR, base + NvRegPacketFilterFlags);
if (np->wolenabled)
nv_start_rx(dev);
}

/* FIXME: power down nic */

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/natsemi.c
Original file line number Diff line number Diff line change
Expand Up @@ -690,7 +690,7 @@ static ssize_t natsemi_set_dspcfg_workaround(struct device *dev,
{
struct netdev_private *np = netdev_priv(to_net_dev(dev));
int new_setting;
unsigned long flags;
u32 flags;

/* Find out the new setting */
if (!strncmp("on", buf, count - 1) || !strncmp("1", buf, count - 1))
Expand Down
Loading

0 comments on commit ae9e7cd

Please sign in to comment.