Hi Oleksij,Hi Oleksij,
On Thu, 21 Oct 2021 at 19:21, Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> wrote:
Hi Petr,
On Wed, Oct 20, 2021 at 05:53:03PM +0200, Petr Benes wrote:
On Wed, 20 Oct 2021 at 07:05, Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> wrote:
Hi Petr and Michal,
I forgot to add you for v2 in CC. Please test/review this version.
Hi Oleksij,
It works good. with PM as well as without PM. The only minor issue I found is,
that the first temperature reading (when the driver probes) fails. That is
(val & soc_data->temp_valid_mask) == 0) holds true. How does
pm_runtime_resume_and_get() behave in imx_thermal_probe()?
Does it go through imx_thermal_runtime_resume() with usleep_range()?
How exactly did you reproduce it? Even more or less understanding how
I just placed my debug print into get_temp()
if ((val & soc_data->temp_valid_mask) == 0) {
dev_dbg(&tz->device, "temp measurement never finished\n");
printk("Wrong temperature reading!!!!!!\n");
return -EAGAIN;
}
this can potentially happen, i never had this issue on my HW. Is it something
HW specific?
IMHO it is just product of the following sequence:
pm_runtime_set_active(&pdev->dev);
pm_runtime_enable(data->dev);
pm_runtime_resume_and_get(data->dev);
thermal_zone_device_enable(data->tz);
With assumption imx_thermal_runtime_resume() didn't run,
hence the sensor didn't get enough time to come up.
I didn't have time to spend it on and you have better knowledge of the
area. If it is not that straightforward I can try to diagnose it better.