Implement set_phys_id led control on SysKonnect board. Signed-off-by: Stephen Hemminger --- a/drivers/net/skge.c 2011-04-04 10:48:15.713539204 -0700 +++ b/drivers/net/skge.c 2011-04-04 10:50:07.387094723 -0700 @@ -786,29 +786,28 @@ static void skge_led(struct skge_port *s } /* blink LED's for finding board */ -static int skge_phys_id(struct net_device *dev, u32 data) +static int skge_set_phys_id(struct net_device *dev, + enum ethtool_phys_id_state state) { struct skge_port *skge = netdev_priv(dev); - unsigned long ms; - enum led_mode mode = LED_MODE_TST; - if (!data || data > (u32)(MAX_SCHEDULE_TIMEOUT / HZ)) - ms = jiffies_to_msecs(MAX_SCHEDULE_TIMEOUT / HZ) * 1000; - else - ms = data * 1000; - - while (ms > 0) { - skge_led(skge, mode); - mode ^= LED_MODE_TST; - - if (msleep_interruptible(BLINK_MS)) - break; - ms -= BLINK_MS; + switch (state) { + case ETHTOOL_ID_ACTIVE: + return -1; + + case ETHTOOL_ID_ON: + skge_led(skge, LED_MODE_TST); + break; + + case ETHTOOL_ID_OFF: + skge_led(skge, LED_MODE_OFF); + break; + + case ETHTOOL_ID_INACTIVE: + /* back to regular LED state */ + skge_led(skge, netif_running(dev) ? LED_MODE_ON : LED_MODE_OFF); } - /* back to regular LED state */ - skge_led(skge, netif_running(dev) ? LED_MODE_ON : LED_MODE_OFF); - return 0; } @@ -930,7 +929,7 @@ static const struct ethtool_ops skge_eth .get_rx_csum = skge_get_rx_csum, .set_rx_csum = skge_set_rx_csum, .get_strings = skge_get_strings, - .phys_id = skge_phys_id, + .set_phys_id = skge_set_phys_id, .get_sset_count = skge_get_sset_count, .get_ethtool_stats = skge_get_ethtool_stats, }; -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html