Message ID | 20170907075152.4522-1-luca@coelho.fi (mailing list archive) |
---|---|
State | Accepted |
Commit | 2eabc84d2f8e4f36d3719eeb6a330e10c46c8da7 |
Delegated to: | Kalle Valo |
Headers | show |
Luca Coelho <luca@coelho.fi> writes: > From: Luca Coelho <luciano.coelho@intel.com> > > The LEDS_CMD command is only supported in some newer FW versions > (e.g. iwlwifi-8000C-31.ucode), so we can't send it to older versions > (such as iwlwifi-8000C-27.ucode). > > To fix this, check for a new bit in the FW capabilities TLV that tells > when the command is supported. > > Note that the current version of -31.ucode in linux-firmware.git > (31.532993.0) does not have this capability bit set, so the LED won't > work, even though this version should support it. But we will update > this firmware soon, so it won't be a problem anymore. > > Fixes: 7089ae634c50 ("iwlwifi: mvm: use firmware LED command where applicable") > Reported-by: Linus Torvalds <torvalds@linux-foundation.org> > Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Linus, do you want to apply this directly or should we take it via the normal route (wireless-drivers -> net)? If your prefer the latter when I'm planning to submit this to Dave in a day or two and expecting it to get to your tree in about a week, depending of course what is Dave's schedule.
On Thu, Sep 7, 2017 at 5:39 AM, Kalle Valo <kvalo@codeaurora.org> wrote: > > Linus, do you want to apply this directly or should we take it via the > normal route (wireless-drivers -> net)? If your prefer the latter when > I'm planning to submit this to Dave in a day or two and expecting it to > get to your tree in about a week, depending of course what is Dave's > schedule. Since we have a workaround for the problem, let's just go through the regular channels. As long as I get the fix through David before the merge window closes, I'm happy. Linus
Linus Torvalds <torvalds@linux-foundation.org> writes: > On Thu, Sep 7, 2017 at 5:39 AM, Kalle Valo <kvalo@codeaurora.org> wrote: >> >> Linus, do you want to apply this directly or should we take it via the >> normal route (wireless-drivers -> net)? If your prefer the latter when >> I'm planning to submit this to Dave in a day or two and expecting it to >> get to your tree in about a week, depending of course what is Dave's >> schedule. > > Since we have a workaround for the problem, let's just go through the > regular channels. As long as I get the fix through David before the > merge window closes, I'm happy. Ok, I'll aim to send the pull request to Dave tomorrow.
Luciano Coelho <luca@coelho.fi> wrote: > From: Luca Coelho <luciano.coelho@intel.com> > > The LEDS_CMD command is only supported in some newer FW versions > (e.g. iwlwifi-8000C-31.ucode), so we can't send it to older versions > (such as iwlwifi-8000C-27.ucode). > > To fix this, check for a new bit in the FW capabilities TLV that tells > when the command is supported. > > Note that the current version of -31.ucode in linux-firmware.git > (31.532993.0) does not have this capability bit set, so the LED won't > work, even though this version should support it. But we will update > this firmware soon, so it won't be a problem anymore. > > Fixes: 7089ae634c50 ("iwlwifi: mvm: use firmware LED command where applicable") > Reported-by: Linus Torvalds <torvalds@linux-foundation.org> > Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Patch applied to wireless-drivers.git, thanks. 2eabc84d2f8e iwlwifi: mvm: only send LEDS_CMD when the FW supports it
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/file.h b/drivers/net/wireless/intel/iwlwifi/fw/file.h index 887f6d8fc8a7..279248cd9cfb 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/file.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/file.h @@ -378,6 +378,7 @@ enum iwl_ucode_tlv_capa { IWL_UCODE_TLV_CAPA_EXTEND_SHARED_MEM_CFG = (__force iwl_ucode_tlv_capa_t)80, IWL_UCODE_TLV_CAPA_LQM_SUPPORT = (__force iwl_ucode_tlv_capa_t)81, IWL_UCODE_TLV_CAPA_TX_POWER_ACK = (__force iwl_ucode_tlv_capa_t)84, + IWL_UCODE_TLV_CAPA_LED_CMD_SUPPORT = (__force iwl_ucode_tlv_capa_t)86, IWL_UCODE_TLV_CAPA_MLME_OFFLOAD = (__force iwl_ucode_tlv_capa_t)96, NUM_IWL_UCODE_TLV_CAPA diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/led.c b/drivers/net/wireless/intel/iwlwifi/mvm/led.c index 005e2e7278a5..b27269504a62 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/led.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/led.c @@ -92,7 +92,8 @@ static void iwl_mvm_send_led_fw_cmd(struct iwl_mvm *mvm, bool on) static void iwl_mvm_led_set(struct iwl_mvm *mvm, bool on) { - if (mvm->cfg->device_family >= IWL_DEVICE_FAMILY_8000) { + if (fw_has_capa(&mvm->fw->ucode_capa, + IWL_UCODE_TLV_CAPA_LED_CMD_SUPPORT)) { iwl_mvm_send_led_fw_cmd(mvm, on); return; }