Re: [PATCH v2 1/3] thermal: tegra: continue if sensor register fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 21/11/2018 11:23, Wei Ni wrote:
> 
> 
> On 21/11/2018 4:55 PM, Daniel Lezcano wrote:
>> On 13/11/2018 11:06, Wei Ni wrote:
>>> Don't bail when a sensor fails to register with the
>>> thermal zone and allow other sensors to register.
>>> This allows other sensors to register with thermal
>>> framework even if one sensor fails registration.
>>
>> I'm not sure if ignoring the error is really safe. Can you describe the
>> real situation you want to overcome ? How do you differentiate critical
>> sensors ?
> 
> The driver will always try to register 4 thermal zones, including cpu,
> gpu, mem and pll, but if the dts file doesn't set the corresponding
> sensors, then the register will be failed.
> Normally, the dts file will set all 4 sensors, but there may have some
> platform doesn't support them all. So we post this patch.

Ignoring errors is not the way to go to support different platforms. Fix
the DT.


> BTW, what do you mean "critical sensors"? We will set critical trip temp
> for all sensors.

I meant sensor for thermal zone getting really high temperature.


>>> Signed-off-by: Wei Ni <wni@xxxxxxxxxx>
>>> ---
>>>  drivers/thermal/tegra/soctherm.c | 8 +++++---
>>>  1 file changed, 5 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/thermal/tegra/soctherm.c b/drivers/thermal/tegra/soctherm.c
>>> index ed28110a3535..a824d2e63af3 100644
>>> --- a/drivers/thermal/tegra/soctherm.c
>>> +++ b/drivers/thermal/tegra/soctherm.c
>>> @@ -1370,9 +1370,9 @@ static int tegra_soctherm_probe(struct platform_device *pdev)
>>>  							 &tegra_of_thermal_ops);
>>>  		if (IS_ERR(z)) {
>>>  			err = PTR_ERR(z);
>>> -			dev_err(&pdev->dev, "failed to register sensor: %d\n",
>>> -				err);
>>> -			goto disable_clocks;
>>> +			dev_warn(&pdev->dev, "failed to register sensor %s: %d\n",
>>> +				 soc->ttgs[i]->name, err);
>>> +			continue;
>>>  		}
>>>  
>>>  		zone->tz = z;
>>> @@ -1434,6 +1434,8 @@ static int __maybe_unused soctherm_resume(struct device *dev)
>>>  		struct thermal_zone_device *tz;
>>>  
>>>  		tz = tegra->thermctl_tzs[soc->ttgs[i]->id];
>>> +		if (!tz)
>>> +			continue;
>>>  		err = tegra_soctherm_set_hwtrips(dev, soc->ttgs[i], tz);
>>>  		if (err) {
>>>  			dev_err(&pdev->dev,
>>>
>>
>>


-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog




[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux