Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH v3] iwlwifi: mvm: adding check if the thermal firmware is running
@ 2024-06-05 19:51 Guilherme Giacomo Simoes
  2024-06-05 19:54 ` Wysocki, Rafael J
  0 siblings, 1 reply; 3+ messages in thread
From: Guilherme Giacomo Simoes @ 2024-06-05 19:51 UTC (permalink / raw)
  To: miriam.rachel.korenblit, kvalo, rafael.j.wysocki, daniel.lezcano,
	johannes.berg, dmantipov
  Cc: Guilherme Giacomo Simoes, linux-wireless, linux-kernel

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> ,
Kalle Valo <kvalo@kernel.org> and Johannes Berg <johannes@sipsolutions.net>
for your suggestions in my previous patch.

Signed-off-by: Guilherme Giacomo Simoes <trintaeoitogc@gmail.com>
---
 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..9aa9e3be39b8 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) {
+	int res = iwl_mvm_firmware_running(mvm);
+
+	if (!res) {
+		ret = -EAGAIN;
+		goto out;
+	}
+
+	if (mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) {
 		ret = -ENODATA;
 		goto out;
 	}
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] iwlwifi: mvm: adding check if the thermal firmware is running
  2024-06-05 19:51 [PATCH v3] iwlwifi: mvm: adding check if the thermal firmware is running Guilherme Giacomo Simoes
@ 2024-06-05 19:54 ` Wysocki, Rafael J
  2024-06-05 20:02   ` Guilherme Giácomo Simões
  0 siblings, 1 reply; 3+ messages in thread
From: Wysocki, Rafael J @ 2024-06-05 19:54 UTC (permalink / raw)
  To: Guilherme Giacomo Simoes, miriam.rachel.korenblit, kvalo,
	daniel.lezcano, johannes.berg, dmantipov
  Cc: linux-wireless, linux-kernel

On 6/5/2024 9:51 PM, 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> ,
> Kalle Valo <kvalo@kernel.org> and Johannes Berg <johannes@sipsolutions.net>
> for your suggestions in my previous patch.
>
> Signed-off-by: Guilherme Giacomo Simoes <trintaeoitogc@gmail.com>
> ---
>   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..9aa9e3be39b8 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) {
> +	int res = iwl_mvm_firmware_running(mvm);

Why do you need the res variable at all?  You can just call the function 
directly in the if () statement.


> +
> +	if (!res) {
> +		ret = -EAGAIN;
> +		goto out;
> +	}
> +
> +	if (mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) {
>   		ret = -ENODATA;
>   		goto out;
>   	}

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] iwlwifi: mvm: adding check if the thermal firmware is running
  2024-06-05 19:54 ` Wysocki, Rafael J
@ 2024-06-05 20:02   ` Guilherme Giácomo Simões
  0 siblings, 0 replies; 3+ messages in thread
From: Guilherme Giácomo Simões @ 2024-06-05 20:02 UTC (permalink / raw)
  To: Wysocki, Rafael J
  Cc: miriam.rachel.korenblit, kvalo, daniel.lezcano, johannes.berg,
	dmantipov, linux-wireless, linux-kernel

Wysocki, Rafael J <rafael.j.wysocki@intel.com> write:
>
> On 6/5/2024 9:51 PM, 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> ,
> > Kalle Valo <kvalo@kernel.org> and Johannes Berg <johannes@sipsolutions.net>
> > for your suggestions in my previous patch.
> >
> > Signed-off-by: Guilherme Giacomo Simoes <trintaeoitogc@gmail.com>
> > ---
> >   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..9aa9e3be39b8 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) {
> > +     int res = iwl_mvm_firmware_running(mvm);
>
> Why do you need the res variable at all?  You can just call the function
> directly in the if () statement.
>
>
> > +
> > +     if (!res) {
> > +             ret = -EAGAIN;
> > +             goto out;
> > +     }
> > +
> > +     if (mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) {
> >               ret = -ENODATA;
> >               goto out;
> >       }

Yes, this makes sense, I only declare the "res" variable because
seeing some files in the linux kernel, I see this standard practice.
But I really don't need this variable. I will send a new patch v4
without this variable.
Thank you for your suggestion on my code.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-06-05 20:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-05 19:51 [PATCH v3] iwlwifi: mvm: adding check if the thermal firmware is running Guilherme Giacomo Simoes
2024-06-05 19:54 ` Wysocki, Rafael J
2024-06-05 20:02   ` Guilherme Giácomo Simões

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox