sfc: Merge struct efx_blinker into struct efx_board
authorBen Hutchings <bhutchings@solarflare.com>
Fri, 23 Oct 2009 08:31:29 +0000 (08:31 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 24 Oct 2009 11:27:08 +0000 (04:27 -0700)
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sfc/falcon_boards.c
drivers/net/sfc/net_driver.h

index 3078c00..f65738b 100644 (file)
 static void blink_led_timer(unsigned long context)
 {
        struct efx_nic *efx = (struct efx_nic *)context;
-       struct efx_blinker *bl = &efx->board_info.blinker;
-       efx->board_info.set_id_led(efx, bl->state);
-       bl->state = !bl->state;
-       if (bl->resubmit)
-               mod_timer(&bl->timer, jiffies + BLINK_INTERVAL);
+       struct efx_board *board = &efx->board_info;
+
+       board->set_id_led(efx, board->blink_state);
+       board->blink_state = !board->blink_state;
+       if (board->blink_resubmit)
+               mod_timer(&board->blink_timer, jiffies + BLINK_INTERVAL);
 }
 
 static void board_blink(struct efx_nic *efx, bool blink)
 {
-       struct efx_blinker *blinker = &efx->board_info.blinker;
+       struct efx_board *board = &efx->board_info;
 
        /* The rtnl mutex serialises all ethtool ioctls, so
         * nothing special needs doing here. */
        if (blink) {
-               blinker->resubmit = true;
-               blinker->state = false;
-               setup_timer(&blinker->timer, blink_led_timer,
+               board->blink_resubmit = true;
+               board->blink_state = false;
+               setup_timer(&board->blink_timer, blink_led_timer,
                            (unsigned long)efx);
-               mod_timer(&blinker->timer, jiffies + BLINK_INTERVAL);
+               mod_timer(&board->blink_timer, jiffies + BLINK_INTERVAL);
        } else {
-               blinker->resubmit = false;
-               if (blinker->timer.function)
-                       del_timer_sync(&blinker->timer);
-               efx->board_info.init_leds(efx);
+               board->blink_resubmit = false;
+               if (board->blink_timer.function)
+                       del_timer_sync(&board->blink_timer);
+               board->init_leds(efx);
        }
 }
 
index 91d8952..8e7b854 100644 (file)
@@ -389,19 +389,6 @@ struct efx_channel {
 };
 
 /**
- * struct efx_blinker - S/W LED blinking context
- * @state: Current state - on or off
- * @resubmit: Timer resubmission flag
- * @timer: Control timer for blinking
- */
-struct efx_blinker {
-       bool state;
-       bool resubmit;
-       struct timer_list timer;
-};
-
-
-/**
  * struct efx_board - board information
  * @type: Board model type
  * @major: Major rev. ('A', 'B' ...)
@@ -412,7 +399,9 @@ struct efx_blinker {
  * @blink: Starts/stops blinking
  * @monitor: Board-specific health check function
  * @fini: Cleanup function
- * @blinker: used to blink LEDs in software
+ * @blink_state: Current blink state
+ * @blink_resubmit: Blink timer resubmission flag
+ * @blink_timer: Blink timer
  * @hwmon_client: I2C client for hardware monitor
  * @ioexp_client: I2C client for power/port control
  */
@@ -429,7 +418,9 @@ struct efx_board {
        int (*monitor) (struct efx_nic *nic);
        void (*blink) (struct efx_nic *efx, bool start);
        void (*fini) (struct efx_nic *nic);
-       struct efx_blinker blinker;
+       bool blink_state;
+       bool blink_resubmit;
+       struct timer_list blink_timer;
        struct i2c_client *hwmon_client, *ioexp_client;
 };