Hi Lukasz,

On Thu, Jan 22, 2015 at 2:31 PM, Lukasz Majewski <l.majew...@samsung.com> wrote:
> Hi Abhilash,
>
>> Hi Lukasz,
>>
>> On Mon, Jan 19, 2015 at 5:14 PM, Lukasz Majewski
>> <l.majew...@samsung.com> wrote:
>> > The exynos_map_dt_data() function must be called before
>> > thermal_zone_of_sensor_register(), and hence provide tmu_read()
>> > function, before it is needed.
>> >
>> > This change is driven by adding support for enabling thermal_zoneX
>> > when it is properly initialized.
>> >
>> > One can read the mode of operation
>> > at /sys/class/thermal/thermal_zone0/mode Such functionality was
>> > missing in the of-thermal.c code.
>> >
>> > Reported-by: Abhilash Kesavan <a.kesa...@samsung.com>
>> > Signed-off-by: Lukasz Majewski <l.majew...@samsung.com>
>> > ---
>> >  drivers/thermal/samsung/exynos_tmu.c | 7 ++++---
>> >  1 file changed, 4 insertions(+), 3 deletions(-)
>> >
>> > diff --git a/drivers/thermal/samsung/exynos_tmu.c
>> > b/drivers/thermal/samsung/exynos_tmu.c index 9d2d685..5d946ab 100644
>> > --- a/drivers/thermal/samsung/exynos_tmu.c
>> > +++ b/drivers/thermal/samsung/exynos_tmu.c
>> > @@ -975,15 +975,16 @@ static int exynos_tmu_probe(struct
>> > platform_device *pdev) platform_set_drvdata(pdev, data);
>> >         mutex_init(&data->lock);
>> >
>> > +       ret = exynos_map_dt_data(pdev);
>> > +       if (ret)
>> > +               goto err_sensor;
>> > +
>> >         data->tzd = thermal_zone_of_sensor_register(&pdev->dev, 0,
>> > data, &exynos_sensor_ops);
>> >         if (IS_ERR(data->tzd)) {
>> >                 pr_err("thermal: tz: %p ERROR\n", data->tzd);
>> >                 return PTR_ERR(data->tzd);
>> >         }
>> > -       ret = exynos_map_dt_data(pdev);
>> > -       if (ret)
>> > -               goto err_sensor;
>> >
>> >         pdata = data->pdata;
>>
>> I have been testing this along with your v5 patch set and am seeing
>> incorrect temperature being reported at boot-up on exynos7.
>
> Does it show a maximal temperature value (0x1FF)?

I did not print the current temperature register, but I remember the
message showing ~105C. Will give you the register value when I test
with more debug prints tomorrow.

>
>>  It looks
>> like exynos_tmu_read gets called from thermal_zone_of_device_update
>> during boot-up, now that we have it populated early. However, as the
>> tmu initialization function has not been called yet it returns a wrong
>> value. Does that sound correct ?
>
> No, this is a mistake. However, I'm wondering why on Exynos4/5 this
> error didn't show up...

I have been lowering the software trip point temperature in the
exynos7 dts file (to 55C) for testing purposes. Hence, when the
temperature is read incorrectly as ~105C the board trips at boot-up
itself. Maybe for exynos4/5 the incorrect value read during boot-up is
in the non-tripping range and once the tmu is initialized later it
continues to function properly thereafter ?

>
> The reordering is needed to be able to call set_mode callback at
> of-thermal.c to set the mode.
>
> If this change causes problems, then another solution (probably not so
> neat) must be found.

Please let me know if you need any further details.

Thanks,
Abhilash
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to