diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2008-10-31 19:52:04 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-11-02 08:00:15 -0500 |
commit | e053b628d367cd7b39ae2c4bb0124edc2e058a41 (patch) | |
tree | e5a5c6ae57e55185f92ea6f453a70a32663b6dbf /drivers/net/atlx/atl1.c | |
parent | 02e7173149c3ffcf963075ec2bdc5f7be8335a78 (diff) |
atlx: timer cleanup
Do some cleanup on timer usage in this driver:
* Use round_jiffies to align wakeups and reduce power.
* Remove atl1_watchdog which does nothing but rearm itself
* Use setup_timer() function
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/atlx/atl1.c')
-rw-r--r-- | drivers/net/atlx/atl1.c | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c index 6cc47616b6d4..3836e625ba58 100644 --- a/drivers/net/atlx/atl1.c +++ b/drivers/net/atlx/atl1.c | |||
@@ -1390,7 +1390,8 @@ static u32 atl1_check_link(struct atl1_adapter *adapter) | |||
1390 | /* auto-neg, insert timer to re-config phy */ | 1390 | /* auto-neg, insert timer to re-config phy */ |
1391 | if (!adapter->phy_timer_pending) { | 1391 | if (!adapter->phy_timer_pending) { |
1392 | adapter->phy_timer_pending = true; | 1392 | adapter->phy_timer_pending = true; |
1393 | mod_timer(&adapter->phy_config_timer, jiffies + 3 * HZ); | 1393 | mod_timer(&adapter->phy_config_timer, |
1394 | round_jiffies(jiffies + 3 * HZ)); | ||
1394 | } | 1395 | } |
1395 | 1396 | ||
1396 | return 0; | 1397 | return 0; |
@@ -2525,17 +2526,6 @@ static irqreturn_t atl1_intr(int irq, void *data) | |||
2525 | return IRQ_HANDLED; | 2526 | return IRQ_HANDLED; |
2526 | } | 2527 | } |
2527 | 2528 | ||
2528 | /* | ||
2529 | * atl1_watchdog - Timer Call-back | ||
2530 | * @data: pointer to netdev cast into an unsigned long | ||
2531 | */ | ||
2532 | static void atl1_watchdog(unsigned long data) | ||
2533 | { | ||
2534 | struct atl1_adapter *adapter = (struct atl1_adapter *)data; | ||
2535 | |||
2536 | /* Reset the timer */ | ||
2537 | mod_timer(&adapter->watchdog_timer, jiffies + 2 * HZ); | ||
2538 | } | ||
2539 | 2529 | ||
2540 | /* | 2530 | /* |
2541 | * atl1_phy_config - Timer Call-back | 2531 | * atl1_phy_config - Timer Call-back |
@@ -2608,7 +2598,6 @@ static s32 atl1_up(struct atl1_adapter *adapter) | |||
2608 | if (unlikely(err)) | 2598 | if (unlikely(err)) |
2609 | goto err_up; | 2599 | goto err_up; |
2610 | 2600 | ||
2611 | mod_timer(&adapter->watchdog_timer, jiffies); | ||
2612 | atlx_irq_enable(adapter); | 2601 | atlx_irq_enable(adapter); |
2613 | atl1_check_link(adapter); | 2602 | atl1_check_link(adapter); |
2614 | netif_start_queue(netdev); | 2603 | netif_start_queue(netdev); |
@@ -2626,7 +2615,6 @@ static void atl1_down(struct atl1_adapter *adapter) | |||
2626 | struct net_device *netdev = adapter->netdev; | 2615 | struct net_device *netdev = adapter->netdev; |
2627 | 2616 | ||
2628 | netif_stop_queue(netdev); | 2617 | netif_stop_queue(netdev); |
2629 | del_timer_sync(&adapter->watchdog_timer); | ||
2630 | del_timer_sync(&adapter->phy_config_timer); | 2618 | del_timer_sync(&adapter->phy_config_timer); |
2631 | adapter->phy_timer_pending = false; | 2619 | adapter->phy_timer_pending = false; |
2632 | 2620 | ||
@@ -3050,13 +3038,8 @@ static int __devinit atl1_probe(struct pci_dev *pdev, | |||
3050 | netif_carrier_off(netdev); | 3038 | netif_carrier_off(netdev); |
3051 | netif_stop_queue(netdev); | 3039 | netif_stop_queue(netdev); |
3052 | 3040 | ||
3053 | init_timer(&adapter->watchdog_timer); | 3041 | setup_timer(&adapter->phy_config_timer, &atl1_phy_config, |
3054 | adapter->watchdog_timer.function = &atl1_watchdog; | 3042 | (unsigned long)adapter); |
3055 | adapter->watchdog_timer.data = (unsigned long)adapter; | ||
3056 | |||
3057 | init_timer(&adapter->phy_config_timer); | ||
3058 | adapter->phy_config_timer.function = &atl1_phy_config; | ||
3059 | adapter->phy_config_timer.data = (unsigned long)adapter; | ||
3060 | adapter->phy_timer_pending = false; | 3043 | adapter->phy_timer_pending = false; |
3061 | 3044 | ||
3062 | INIT_WORK(&adapter->tx_timeout_task, atl1_tx_timeout_task); | 3045 | INIT_WORK(&adapter->tx_timeout_task, atl1_tx_timeout_task); |