staging: et131x: Fix link detection signalling

Remove redundant code around netif_carrier_XXX calls, and associated adapter->media_state, which prevented the link from being reported as off.
Tested on an ET-1310 device.

Signed-off-by: Mark Einon <mark.einon@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Mark Einon 2011-08-23 23:40:38 +01:00 committed by Greg Kroah-Hartman
parent 10f00a49b0
commit c922d1241f
3 changed files with 2 additions and 53 deletions

View File

@ -737,16 +737,6 @@ void et131x_mii_check(struct et131x_adapter *adapter,
if (bmsr_ints & MI_BMSR_LINK_STATUS) {
if (bmsr & MI_BMSR_LINK_STATUS) {
adapter->boot_coma = 20;
/* Update our state variables and indicate the
* connected state
*/
spin_lock_irqsave(&adapter->lock, flags);
adapter->media_state = NETIF_STATUS_MEDIA_CONNECT;
spin_unlock_irqrestore(&adapter->lock, flags);
netif_carrier_on(adapter->netdev);
} else {
dev_warn(&adapter->pdev->dev,
@ -768,21 +758,7 @@ void et131x_mii_check(struct et131x_adapter *adapter,
et131x_mii_write(adapter, 0x12, register18);
}
/* For the first N seconds of life, we are in "link
* detection" When we are in this state, we should
* only report "connected". When the LinkDetection
* Timer expires, we can report disconnected (handled
* in the LinkDetectionDPC).
*/
if (adapter->media_state == NETIF_STATUS_MEDIA_DISCONNECT) {
spin_lock_irqsave(&adapter->lock, flags);
adapter->media_state =
NETIF_STATUS_MEDIA_DISCONNECT;
spin_unlock_irqrestore(&adapter->lock,
flags);
netif_carrier_off(adapter->netdev);
}
netif_carrier_off(adapter->netdev);
adapter->linkspeed = 0;
adapter->duplex_mode = 0;

View File

@ -196,12 +196,6 @@ struct et131x_adapter {
u8 ai_force_duplex; /* duplex setting */
u16 ai_force_speed; /* 'Speed', user over-ride of line speed */
u8 flowcontrol; /* flow control validated by the far-end */
enum {
NETIF_STATUS_INVALID = 0,
NETIF_STATUS_MEDIA_CONNECT,
NETIF_STATUS_MEDIA_DISCONNECT,
NETIF_STATUS_MAX
} media_state;
/* Minimize init-time */
struct timer_list error_timer;

View File

@ -298,27 +298,6 @@ void et131x_error_timer_handler(unsigned long data)
TX_ERROR_PERIOD * HZ / 1000);
}
/**
* et131x_link_detection_handler
*
* Timer function for link up at driver load time
*/
void et131x_link_detection_handler(unsigned long data)
{
struct et131x_adapter *adapter = (struct et131x_adapter *) data;
unsigned long flags;
if (adapter->media_state == 0) {
spin_lock_irqsave(&adapter->lock, flags);
adapter->media_state = NETIF_STATUS_MEDIA_DISCONNECT;
spin_unlock_irqrestore(&adapter->lock, flags);
netif_carrier_off(adapter->netdev);
}
}
/**
* et131x_configure_global_regs - configure JAGCore global regs
* @adapter: pointer to our adapter structure
@ -718,7 +697,7 @@ static int __devinit et131x_pci_setup(struct pci_dev *pdev,
adapter->error_timer.data = (unsigned long)adapter;
/* Initialize link state */
et131x_link_detection_handler((unsigned long)adapter);
netif_carrier_off(adapter->netdev);
/* Initialize variable for counting how long we do not have
link status */