Commit c922d124 authored by Mark Einon's avatar Mark Einon Committed by Greg Kroah-Hartman

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: default avatarMark Einon <mark.einon@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 10f00a49
......@@ -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;
......
......@@ -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;
......
......@@ -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 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment