Messages in this thread | ![/](/images/icornerl.gif) | | Date | Fri, 17 May 2024 13:43:09 -0400 | Subject | Re: [PATCH] thermal: adding check if the thermal firmware is running | From | Jonathan Bither <> |
| |
On 5/17/24 13:25, Guilherme Giácomo Simões wrote: > Em sex., 17 de mai. de 2024 às 13:57, Jonathan Bither > <jonbither@gmail.com> escreveu: >> >> On 5/17/24 10:16, Guilherme Giacomo Simoes wrote: >>> In the dmesg is showing the message "failed to read out thermal zone" >>> as if the temperature read is failed by don't find the thermal zone. >>> >>> After researching and debugging, I see that this specific error is >>> occurrenced because the thermal try read the temperature when is started, >>> but the firmware is not running yet. >>> >>> For more legibiliti i change the tt.c for return EAGAIN when this was occurrence. >>> After this change, in my computer I compile and install kernel in /boot >>> and in my dmesg the message "failed to read out thermal zone" is not show >>> any more. >>> >>> I would like to thanks for Rafael Wysocki <refael.j.wysocki@intel.com> for >>> your suggestions in mu first patch that results in this another patch. >>> --- >>> drivers/net/wireless/intel/iwlwifi/mvm/tt.c | 10 ++++++++-- >>> 1 file changed, 8 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c >>> index 8083c4b2ab6b..68ab9966330c 100644 >>> --- a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c >>> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c >>> @@ -620,8 +620,14 @@ static int iwl_mvm_tzone_get_temp(struct thermal_zone_device *device, >>> >>> mutex_lock(&mvm->mutex); >>> >>> - if (!iwl_mvm_firmware_running(mvm) || >>> - mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) { >>> + const int res = iwl_mvm_firmware_running(mvm); >>> + >>> + if (!res) { >>> + ret = -EAGAIN; >>> + goto out; >>> + } >>> + >> You could skip using the res variable and move the mutex lock here and >> simplify the above a bit. Ex: >> >> int temp; >> >> - mutex_lock(&mvm->mutex); >> + if (!iwl_mvm_firmware_running(mvm)) >> + return -EAGAIN; >> >> - if (!iwl_mvm_firmware_running(mvm) || >> - mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) { >> + mutex_lock(&mvm->mutex); >> + if (mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) { >> ret = -ENODATA; >> goto out; >> } >> >>> + if (mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) { >>> ret = -ENODATA; >>> goto out; >>> } > Hey Jonathan, Thank you for your suggestion. > I sended a v2 patch of this patch > https://patchwork.kernel.org/project/linux-wireless/patch/20240517171311.3705-1-trintaeoitogc@gmail.com/ > > If you want, you can send this suggestion in this patch v2. Hey Guilherme, no worries. > > Thanks.
| ![\](/images/icornerr.gif) |