/* Set led pattern command */ static int iwl_led_cmd(struct iwl_priv *priv, unsigned long on, unsigned long off) { struct iwl_led_cmd led_cmd = { .id = IWL_LED_LINK, .interval = IWL_DEF_LED_INTRVL }; int ret; if (!test_bit(STATUS_READY, &priv->status)) return -EBUSY; if (priv->blink_on == on && priv->blink_off == off) return 0; IWL_DEBUG_LED(priv, "Led blink time compensation=%u\n", priv->cfg->base_params->led_compensation); led_cmd.on = iwl_blink_compensation(priv, on, priv->cfg->base_params->led_compensation); led_cmd.off = iwl_blink_compensation(priv, off, priv->cfg->base_params->led_compensation); ret = priv->cfg->ops->led->cmd(priv, &led_cmd); if (!ret) { priv->blink_on = on; priv->blink_off = off; } return ret; }
/* Set led pattern command */ static int iwl_led_pattern(struct iwl_priv *priv, unsigned int idx) { struct iwl_led_cmd led_cmd = { .id = IWL_LED_LINK, .interval = IWL_DEF_LED_INTRVL }; BUG_ON(idx > IWL_MAX_BLINK_TBL); IWL_DEBUG_LED(priv, "Led blink time compensation= %u\n", priv->cfg->led_compensation); led_cmd.on = iwl_blink_compensation(priv, blink_tbl[idx].on_time, priv->cfg->led_compensation); led_cmd.off = iwl_blink_compensation(priv, blink_tbl[idx].off_time, priv->cfg->led_compensation); return priv->cfg->ops->led->cmd(priv, &led_cmd); }