diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-20 13:43:21 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-20 13:43:21 -0700 | 
| commit | 06f4e926d256d902dd9a53dcb400fd74974ce087 (patch) | |
| tree | 0b438b67f5f0eff6fd617bc497a9dace6164a488 /drivers/net/niu.c | |
| parent | 8e7bfcbab3825d1b404d615cb1b54f44ff81f981 (diff) | |
| parent | d93515611bbc70c2fe4db232e5feb448ed8e4cc9 (diff) | |
| download | olio-linux-3.10-06f4e926d256d902dd9a53dcb400fd74974ce087.tar.xz olio-linux-3.10-06f4e926d256d902dd9a53dcb400fd74974ce087.zip  | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1446 commits)
  macvlan: fix panic if lowerdev in a bond
  tg3: Add braces around 5906 workaround.
  tg3: Fix NETIF_F_LOOPBACK error
  macvlan: remove one synchronize_rcu() call
  networking: NET_CLS_ROUTE4 depends on INET
  irda: Fix error propagation in ircomm_lmp_connect_response()
  irda: Kill set but unused variable 'bytes' in irlan_check_command_param()
  irda: Kill set but unused variable 'clen' in ircomm_connect_indication()
  rxrpc: Fix set but unused variable 'usage' in rxrpc_get_transport()
  be2net: Kill set but unused variable 'req' in lancer_fw_download()
  irda: Kill set but unused vars 'saddr' and 'daddr' in irlan_provider_connect_indication()
  atl1c: atl1c_resume() is only used when CONFIG_PM_SLEEP is defined.
  rxrpc: Fix set but unused variable 'usage' in rxrpc_get_peer().
  rxrpc: Kill set but unused variable 'local' in rxrpc_UDP_error_handler()
  rxrpc: Kill set but unused variable 'sp' in rxrpc_process_connection()
  rxrpc: Kill set but unused variable 'sp' in rxrpc_rotate_tx_window()
  pkt_sched: Kill set but unused variable 'protocol' in tc_classify()
  isdn: capi: Use pr_debug() instead of ifdefs.
  tg3: Update version to 3.119
  tg3: Apply rx_discards fix to 5719/5720
  ...
Fix up trivial conflicts in arch/x86/Kconfig and net/mac80211/agg-tx.c
as per Davem.
Diffstat (limited to 'drivers/net/niu.c')
| -rw-r--r-- | drivers/net/niu.c | 63 | 
1 files changed, 26 insertions, 37 deletions
diff --git a/drivers/net/niu.c b/drivers/net/niu.c index 32678b6c6b3..cc25bff0bd3 100644 --- a/drivers/net/niu.c +++ b/drivers/net/niu.c @@ -1233,7 +1233,7 @@ static int link_status_1g_rgmii(struct niu *np, int *link_up_p)  	bmsr = err;  	if (bmsr & BMSR_LSTATUS) { -		u16 adv, lpa, common, estat; +		u16 adv, lpa;  		err = mii_read(np, np->phy_addr, MII_ADVERTISE);  		if (err < 0) @@ -1245,12 +1245,9 @@ static int link_status_1g_rgmii(struct niu *np, int *link_up_p)  			goto out;  		lpa = err; -		common = adv & lpa; -  		err = mii_read(np, np->phy_addr, MII_ESTATUS);  		if (err < 0)  			goto out; -		estat = err;  		link_up = 1;  		current_speed = SPEED_1000;  		current_duplex = DUPLEX_FULL; @@ -1650,7 +1647,7 @@ static int xcvr_init_10g(struct niu *np)  		break;  	} -	return 0; +	return err;  }  static int mii_reset(struct niu *np) @@ -2381,17 +2378,14 @@ static int serdes_init_10g_serdes(struct niu *np)  	struct niu_link_config *lp = &np->link_config;  	unsigned long ctrl_reg, test_cfg_reg, pll_cfg, i;  	u64 ctrl_val, test_cfg_val, sig, mask, val; -	u64 reset_val;  	switch (np->port) {  	case 0: -		reset_val =  ENET_SERDES_RESET_0;  		ctrl_reg = ENET_SERDES_0_CTRL_CFG;  		test_cfg_reg = ENET_SERDES_0_TEST_CFG;  		pll_cfg = ENET_SERDES_0_PLL_CFG;  		break;  	case 1: -		reset_val =  ENET_SERDES_RESET_1;  		ctrl_reg = ENET_SERDES_1_CTRL_CFG;  		test_cfg_reg = ENET_SERDES_1_TEST_CFG;  		pll_cfg = ENET_SERDES_1_PLL_CFG; @@ -6071,8 +6065,7 @@ static int niu_request_irq(struct niu *np)  	for (i = 0; i < np->num_ldg; i++) {  		struct niu_ldg *lp = &np->ldg[i]; -		err = request_irq(lp->irq, niu_interrupt, -				  IRQF_SHARED | IRQF_SAMPLE_RANDOM, +		err = request_irq(lp->irq, niu_interrupt, IRQF_SHARED,  				  np->irq_name[i], lp);  		if (err)  			goto out_free_irqs; @@ -6851,7 +6844,7 @@ static int niu_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)  	cmd->supported = lp->supported;  	cmd->advertising = lp->active_advertising;  	cmd->autoneg = lp->active_autoneg; -	cmd->speed = lp->active_speed; +	ethtool_cmd_speed_set(cmd, lp->active_speed);  	cmd->duplex = lp->active_duplex;  	cmd->port = (np->flags & NIU_FLAGS_FIBER) ? PORT_FIBRE : PORT_TP;  	cmd->transceiver = (np->flags & NIU_FLAGS_XCVR_SERDES) ? @@ -6866,7 +6859,7 @@ static int niu_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)  	struct niu_link_config *lp = &np->link_config;  	lp->advertising = cmd->advertising; -	lp->speed = cmd->speed; +	lp->speed = ethtool_cmd_speed(cmd);  	lp->duplex = cmd->duplex;  	lp->autoneg = cmd->autoneg;  	return niu_init_link(np); @@ -7023,6 +7016,7 @@ static int niu_ethflow_to_class(int flow_type, u64 *class)  	case UDP_V4_FLOW:  		*class = CLASS_CODE_UDP_IPV4;  		break; +	case AH_ESP_V4_FLOW:  	case AH_V4_FLOW:  	case ESP_V4_FLOW:  		*class = CLASS_CODE_AH_ESP_IPV4; @@ -7036,6 +7030,7 @@ static int niu_ethflow_to_class(int flow_type, u64 *class)  	case UDP_V6_FLOW:  		*class = CLASS_CODE_UDP_IPV6;  		break; +	case AH_ESP_V6_FLOW:  	case AH_V6_FLOW:  	case ESP_V6_FLOW:  		*class = CLASS_CODE_AH_ESP_IPV6; @@ -7889,37 +7884,35 @@ static void niu_force_led(struct niu *np, int on)  	nw64_mac(reg, val);  } -static int niu_phys_id(struct net_device *dev, u32 data) +static int niu_set_phys_id(struct net_device *dev, +			   enum ethtool_phys_id_state state) +  {  	struct niu *np = netdev_priv(dev); -	u64 orig_led_state; -	int i;  	if (!netif_running(dev))  		return -EAGAIN; -	if (data == 0) -		data = 2; +	switch (state) { +	case ETHTOOL_ID_ACTIVE: +		np->orig_led_state = niu_led_state_save(np); +		return 1;	/* cycle on/off once per second */ -	orig_led_state = niu_led_state_save(np); -	for (i = 0; i < (data * 2); i++) { -		int on = ((i % 2) == 0); +	case ETHTOOL_ID_ON: +		niu_force_led(np, 1); +		break; -		niu_force_led(np, on); +	case ETHTOOL_ID_OFF: +		niu_force_led(np, 0); +		break; -		if (msleep_interruptible(500)) -			break; +	case ETHTOOL_ID_INACTIVE: +		niu_led_state_restore(np, np->orig_led_state);  	} -	niu_led_state_restore(np, orig_led_state);  	return 0;  } -static int niu_set_flags(struct net_device *dev, u32 data) -{ -	return ethtool_op_set_flags(dev, data, ETH_FLAG_RXHASH); -} -  static const struct ethtool_ops niu_ethtool_ops = {  	.get_drvinfo		= niu_get_drvinfo,  	.get_link		= ethtool_op_get_link, @@ -7933,11 +7926,9 @@ static const struct ethtool_ops niu_ethtool_ops = {  	.get_strings		= niu_get_strings,  	.get_sset_count		= niu_get_sset_count,  	.get_ethtool_stats	= niu_get_ethtool_stats, -	.phys_id		= niu_phys_id, +	.set_phys_id		= niu_set_phys_id,  	.get_rxnfc		= niu_get_nfc,  	.set_rxnfc		= niu_set_nfc, -	.set_flags		= niu_set_flags, -	.get_flags		= ethtool_op_get_flags,  };  static int niu_ldg_assign_ldn(struct niu *np, struct niu_parent *parent, @@ -8131,7 +8122,7 @@ static int __devinit niu_pci_vpd_scan_props(struct niu *np,  	netif_printk(np, probe, KERN_DEBUG, np->dev,  		     "VPD_SCAN: start[%x] end[%x]\n", start, end);  	while (start < end) { -		int len, err, instance, type, prop_len; +		int len, err, prop_len;  		char namebuf[64];  		u8 *prop_buf;  		int max_len; @@ -8147,8 +8138,6 @@ static int __devinit niu_pci_vpd_scan_props(struct niu *np,  		len = err;  		start += 3; -		instance = niu_pci_eeprom_read(np, start); -		type = niu_pci_eeprom_read(np, start + 3);  		prop_len = niu_pci_eeprom_read(np, start + 4);  		err = niu_pci_vpd_get_propname(np, start + 5, namebuf, 64);  		if (err < 0) @@ -9768,8 +9757,8 @@ static void __devinit niu_device_announce(struct niu *np)  static void __devinit niu_set_basic_features(struct net_device *dev)  { -	dev->features |= (NETIF_F_SG | NETIF_F_HW_CSUM | -			  NETIF_F_GRO | NETIF_F_RXHASH); +	dev->hw_features = NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_RXHASH; +	dev->features |= dev->hw_features | NETIF_F_RXCSUM;  }  static int __devinit niu_pci_init_one(struct pci_dev *pdev,  |