Autonegotiation fixes. NIC now autonegotiates to whatever the switch supports.
This commit is contained in:
parent
e41550b0ba
commit
8973caa1e6
|
@ -267,10 +267,16 @@ e1000_sw_init ( struct e1000_adapter *adapter )
|
||||||
/* Disable Flow Control */
|
/* Disable Flow Control */
|
||||||
hw->fc = E1000_FC_NONE;
|
hw->fc = E1000_FC_NONE;
|
||||||
|
|
||||||
adapter->rx_buffer_len = E1000_RXBUFFER_2048;
|
adapter->eeprom_wol = 0;
|
||||||
|
adapter->wol = adapter->eeprom_wol;
|
||||||
|
adapter->en_mng_pt = 0;
|
||||||
|
adapter->rx_int_delay = 0;
|
||||||
|
adapter->rx_abs_int_delay = 0;
|
||||||
|
|
||||||
|
adapter->rx_buffer_len = 1600;
|
||||||
adapter->rx_ps_bsize0 = E1000_RXBUFFER_128;
|
adapter->rx_ps_bsize0 = E1000_RXBUFFER_128;
|
||||||
hw->max_frame_size = E1000_RXBUFFER_2048;
|
hw->max_frame_size = 1600;
|
||||||
hw->min_frame_size = 64;
|
hw->min_frame_size = ETH_ZLEN;
|
||||||
|
|
||||||
/* identify the MAC */
|
/* identify the MAC */
|
||||||
|
|
||||||
|
@ -294,7 +300,10 @@ e1000_sw_init ( struct e1000_adapter *adapter )
|
||||||
|
|
||||||
e1000_set_media_type ( hw );
|
e1000_set_media_type ( hw );
|
||||||
|
|
||||||
hw->wait_autoneg_complete = FALSE;
|
hw->autoneg = TRUE;
|
||||||
|
hw->autoneg_advertised = AUTONEG_ADVERTISE_SPEED_DEFAULT;
|
||||||
|
hw->wait_autoneg_complete = TRUE;
|
||||||
|
|
||||||
hw->tbi_compatibility_en = TRUE;
|
hw->tbi_compatibility_en = TRUE;
|
||||||
hw->adaptive_ifs = TRUE;
|
hw->adaptive_ifs = TRUE;
|
||||||
|
|
||||||
|
@ -512,7 +521,7 @@ e1000_setup_rx_resources ( struct e1000_adapter *adapter )
|
||||||
|
|
||||||
for ( i = 0; i < NUM_RX_DESC; i++ ) {
|
for ( i = 0; i < NUM_RX_DESC; i++ ) {
|
||||||
|
|
||||||
adapter->rx_iobuf[i] = alloc_iob ( E1000_RXBUFFER_2048 );
|
adapter->rx_iobuf[i] = alloc_iob ( 1600 );
|
||||||
|
|
||||||
/* If unable to allocate all iobufs, free any that
|
/* If unable to allocate all iobufs, free any that
|
||||||
* were successfully allocated, and return an error
|
* were successfully allocated, and return an error
|
||||||
|
@ -1014,13 +1023,7 @@ e1000_probe ( struct pci_device *pdev,
|
||||||
adapter->netdev = netdev;
|
adapter->netdev = netdev;
|
||||||
adapter->pdev = pdev;
|
adapter->pdev = pdev;
|
||||||
adapter->hw.back = adapter;
|
adapter->hw.back = adapter;
|
||||||
adapter->eeprom_wol = 0;
|
|
||||||
adapter->wol = adapter->eeprom_wol;
|
|
||||||
#if 0
|
|
||||||
adapter->en_mng_pt = 0;
|
|
||||||
adapter->rx_int_delay = 0;
|
|
||||||
adapter->rx_abs_int_delay = 0;
|
|
||||||
#endif
|
|
||||||
mmio_start = pci_bar_start ( pdev, PCI_BASE_ADDRESS_0 );
|
mmio_start = pci_bar_start ( pdev, PCI_BASE_ADDRESS_0 );
|
||||||
mmio_len = pci_bar_size ( pdev, PCI_BASE_ADDRESS_0 );
|
mmio_len = pci_bar_size ( pdev, PCI_BASE_ADDRESS_0 );
|
||||||
|
|
||||||
|
@ -1169,8 +1172,8 @@ e1000_open ( struct net_device *netdev )
|
||||||
/* allocate transmit descriptors */
|
/* allocate transmit descriptors */
|
||||||
err = e1000_setup_tx_resources ( adapter );
|
err = e1000_setup_tx_resources ( adapter );
|
||||||
if (err) {
|
if (err) {
|
||||||
goto err_setup_tx;
|
|
||||||
DBG ( "Error setting up TX resources!\n" );
|
DBG ( "Error setting up TX resources!\n" );
|
||||||
|
goto err_setup_tx;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* allocate receive descriptors */
|
/* allocate receive descriptors */
|
||||||
|
@ -1186,7 +1189,7 @@ e1000_open ( struct net_device *netdev )
|
||||||
|
|
||||||
e1000_irq_enable ( adapter );
|
e1000_irq_enable ( adapter );
|
||||||
|
|
||||||
return E1000_SUCCESS;
|
return 0;
|
||||||
|
|
||||||
err_setup_rx:
|
err_setup_rx:
|
||||||
e1000_free_tx_resources ( adapter );
|
e1000_free_tx_resources ( adapter );
|
||||||
|
|
|
@ -598,7 +598,7 @@ struct e1000_rx_desc {
|
||||||
uint8_t status; /* Descriptor status */
|
uint8_t status; /* Descriptor status */
|
||||||
uint8_t errors; /* Descriptor Errors */
|
uint8_t errors; /* Descriptor Errors */
|
||||||
uint16_t special;
|
uint16_t special;
|
||||||
} __attribute__ (( packed )) ;
|
};
|
||||||
|
|
||||||
/* Receive Descriptor - Extended */
|
/* Receive Descriptor - Extended */
|
||||||
union e1000_rx_desc_extended {
|
union e1000_rx_desc_extended {
|
||||||
|
@ -729,7 +729,7 @@ struct e1000_tx_desc {
|
||||||
uint16_t special;
|
uint16_t special;
|
||||||
} fields;
|
} fields;
|
||||||
} upper;
|
} upper;
|
||||||
} __attribute__ (( packed )) ;
|
};
|
||||||
|
|
||||||
/* Transmit Descriptor bit definitions */
|
/* Transmit Descriptor bit definitions */
|
||||||
#define E1000_TXD_DTYP_D 0x00100000 /* Data Descriptor */
|
#define E1000_TXD_DTYP_D 0x00100000 /* Data Descriptor */
|
||||||
|
@ -1381,8 +1381,8 @@ struct e1000_hw_stats {
|
||||||
|
|
||||||
/* Structure containing variables used by the shared code (e1000_hw.c) */
|
/* Structure containing variables used by the shared code (e1000_hw.c) */
|
||||||
struct e1000_hw {
|
struct e1000_hw {
|
||||||
uint8_t *hw_addr;
|
uint8_t *hw_addr;
|
||||||
uint8_t *flash_address;
|
uint8_t *flash_address;
|
||||||
e1000_mac_type mac_type;
|
e1000_mac_type mac_type;
|
||||||
e1000_phy_type phy_type;
|
e1000_phy_type phy_type;
|
||||||
uint32_t phy_init_script;
|
uint32_t phy_init_script;
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
|
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
/* glue for the OS independent part of e1000
|
/* glue for the OS independent part of e1000
|
||||||
* includes register access macros
|
* includes register access macros
|
||||||
*/
|
*/
|
||||||
|
|
Reference in New Issue