diff options
Diffstat (limited to 'drivers/net/ethernet/intel/e1000/e1000_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/e1000/e1000_main.c | 61 | 
1 files changed, 30 insertions, 31 deletions
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index cf480b55462..669ca3800c0 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c @@ -33,11 +33,6 @@  #include <linux/bitops.h>  #include <linux/if_vlan.h> -/* Intel Media SOC GbE MDIO physical base address */ -static unsigned long ce4100_gbe_mdio_base_phy; -/* Intel Media SOC GbE MDIO virtual base address */ -void __iomem *ce4100_gbe_mdio_base_virt; -  char e1000_driver_name[] = "e1000";  static char e1000_driver_string[] = "Intel(R) PRO/1000 Network Driver";  #define DRV_VERSION "7.3.21-k8-NAPI" @@ -167,9 +162,10 @@ static int e1000_82547_fifo_workaround(struct e1000_adapter *adapter,                                         struct sk_buff *skb);  static bool e1000_vlan_used(struct e1000_adapter *adapter); -static void e1000_vlan_mode(struct net_device *netdev, u32 features); -static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid); -static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid); +static void e1000_vlan_mode(struct net_device *netdev, +			    netdev_features_t features); +static int e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid); +static int e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid);  static void e1000_restore_vlan(struct e1000_adapter *adapter);  #ifdef CONFIG_PM @@ -806,7 +802,8 @@ static int e1000_is_need_ioport(struct pci_dev *pdev)  	}  } -static u32 e1000_fix_features(struct net_device *netdev, u32 features) +static netdev_features_t e1000_fix_features(struct net_device *netdev, +	netdev_features_t features)  {  	/*  	 * Since there is no support for separate rx/tx vlan accel @@ -820,10 +817,11 @@ static u32 e1000_fix_features(struct net_device *netdev, u32 features)  	return features;  } -static int e1000_set_features(struct net_device *netdev, u32 features) +static int e1000_set_features(struct net_device *netdev, +	netdev_features_t features)  {  	struct e1000_adapter *adapter = netdev_priv(netdev); -	u32 changed = features ^ netdev->features; +	netdev_features_t changed = features ^ netdev->features;  	if (changed & NETIF_F_HW_VLAN_RX)  		e1000_vlan_mode(netdev, features); @@ -1051,11 +1049,11 @@ static int __devinit e1000_probe(struct pci_dev *pdev,  	err = -EIO;  	if (hw->mac_type == e1000_ce4100) { -		ce4100_gbe_mdio_base_phy = pci_resource_start(pdev, BAR_1); -		ce4100_gbe_mdio_base_virt = ioremap(ce4100_gbe_mdio_base_phy, +		hw->ce4100_gbe_mdio_base_virt = +					ioremap(pci_resource_start(pdev, BAR_1),  		                                pci_resource_len(pdev, BAR_1)); -		if (!ce4100_gbe_mdio_base_virt) +		if (!hw->ce4100_gbe_mdio_base_virt)  			goto err_mdio_ioremap;  	} @@ -1182,7 +1180,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,  		if (global_quad_port_a != 0)  			adapter->eeprom_wol = 0;  		else -			adapter->quad_port_a = 1; +			adapter->quad_port_a = true;  		/* Reset for multiple quad port adapters */  		if (++global_quad_port_a == 4)  			global_quad_port_a = 0; @@ -1246,7 +1244,7 @@ err_eeprom:  err_dma:  err_sw_init:  err_mdio_ioremap: -	iounmap(ce4100_gbe_mdio_base_virt); +	iounmap(hw->ce4100_gbe_mdio_base_virt);  	iounmap(hw->hw_addr);  err_ioremap:  	free_netdev(netdev); @@ -1283,6 +1281,8 @@ static void __devexit e1000_remove(struct pci_dev *pdev)  	kfree(adapter->tx_ring);  	kfree(adapter->rx_ring); +	if (hw->mac_type == e1000_ce4100) +		iounmap(hw->ce4100_gbe_mdio_base_virt);  	iounmap(hw->hw_addr);  	if (hw->flash_address)  		iounmap(hw->flash_address); @@ -1676,7 +1676,7 @@ static void e1000_configure_tx(struct e1000_adapter *adapter)  	 * need this to apply a workaround later in the send path. */  	if (hw->mac_type == e1000_82544 &&  	    hw->bus_type == e1000_bus_type_pcix) -		adapter->pcix_82544 = 1; +		adapter->pcix_82544 = true;  	ew32(TCTL, tctl); @@ -1999,7 +1999,7 @@ static void e1000_clean_tx_ring(struct e1000_adapter *adapter,  	tx_ring->next_to_use = 0;  	tx_ring->next_to_clean = 0; -	tx_ring->last_tx_tso = 0; +	tx_ring->last_tx_tso = false;  	writel(0, hw->hw_addr + tx_ring->tdh);  	writel(0, hw->hw_addr + tx_ring->tdt); @@ -2848,7 +2848,7 @@ static int e1000_tx_map(struct e1000_adapter *adapter,  		 * DMA'd to the controller */  		if (!skb->data_len && tx_ring->last_tx_tso &&  		    !skb_is_gso(skb)) { -			tx_ring->last_tx_tso = 0; +			tx_ring->last_tx_tso = false;  			size -= 4;  		} @@ -3216,7 +3216,7 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb,  	if (likely(tso)) {  		if (likely(hw->mac_type != e1000_82544)) -			tx_ring->last_tx_tso = 1; +			tx_ring->last_tx_tso = true;  		tx_flags |= E1000_TX_FLAGS_TSO;  	} else if (likely(e1000_tx_csum(adapter, tx_ring, skb)))  		tx_flags |= E1000_TX_FLAGS_CSUM; @@ -4577,7 +4577,8 @@ static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter,  		e1000_irq_enable(adapter);  } -static void e1000_vlan_mode(struct net_device *netdev, u32 features) +static void e1000_vlan_mode(struct net_device *netdev, +	netdev_features_t features)  {  	struct e1000_adapter *adapter = netdev_priv(netdev);  	struct e1000_hw *hw = &adapter->hw; @@ -4600,7 +4601,7 @@ static void e1000_vlan_mode(struct net_device *netdev, u32 features)  		e1000_irq_enable(adapter);  } -static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) +static int e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid)  {  	struct e1000_adapter *adapter = netdev_priv(netdev);  	struct e1000_hw *hw = &adapter->hw; @@ -4609,7 +4610,7 @@ static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid)  	if ((hw->mng_cookie.status &  	     E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) &&  	    (vid == adapter->mng_vlan_id)) -		return; +		return 0;  	if (!e1000_vlan_used(adapter))  		e1000_vlan_filter_on_off(adapter, true); @@ -4621,9 +4622,11 @@ static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid)  	e1000_write_vfta(hw, index, vfta);  	set_bit(vid, adapter->active_vlans); + +	return 0;  } -static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) +static int e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid)  {  	struct e1000_adapter *adapter = netdev_priv(netdev);  	struct e1000_hw *hw = &adapter->hw; @@ -4644,6 +4647,8 @@ static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid)  	if (!e1000_vlan_used(adapter))  		e1000_vlan_filter_on_off(adapter, false); + +	return 0;  }  static void e1000_restore_vlan(struct e1000_adapter *adapter) @@ -4716,8 +4721,6 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)  	netif_device_detach(netdev); -	mutex_lock(&adapter->mutex); -  	if (netif_running(netdev)) {  		WARN_ON(test_bit(__E1000_RESETTING, &adapter->flags));  		e1000_down(adapter); @@ -4725,10 +4728,8 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)  #ifdef CONFIG_PM  	retval = pci_save_state(pdev); -	if (retval) { -		mutex_unlock(&adapter->mutex); +	if (retval)  		return retval; -	}  #endif  	status = er32(STATUS); @@ -4783,8 +4784,6 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)  	if (netif_running(netdev))  		e1000_free_irq(adapter); -	mutex_unlock(&adapter->mutex); -  	pci_disable_device(pdev);  	return 0;  |