On 05.10.2022 14:37, Daniel Lezcano wrote:
Sorry, I've been busy with other stuff. I thought I will fix this once I
Hi Marek,
On 03/10/2022 23:18, Daniel Lezcano wrote:
[ ... ]
I've tested this v8 patchset after fixing the issue with Exynos TMU
with
https://lore.kernel.org/all/20221003132943.1383065-1-daniel.lezcano@xxxxxxxxxx/
patch and I got the following lockdep warning on all Exynos-based
boards:
======================================================
WARNING: possible circular locking dependency detected
6.0.0-rc1-00083-ge5c9d117223e #12945 Not tainted
------------------------------------------------------
swapper/0/1 is trying to acquire lock:
c1ce66b0 (&data->lock#2){+.+.}-{3:3}, at: exynos_get_temp+0x3c/0xc8
but task is already holding lock:
c2979b94 (&tz->lock){+.+.}-{3:3}, at:
thermal_zone_device_update.part.0+0x3c/0x528
which lock already depends on the new lock.
I'm wondering if the problem is not already there and related to
data->lock ...
Doesn't the thermal zone lock already prevent racy access to the data
structure?
Another question: if the sensor clock is disabled after reading it,
how does the hardware update the temperature and detect the programed
threshold is crossed?
just a gentle ping, as the fix will depend on your answer ;)
find a bit of spare time.
IMHO the clock management is a bit over-engineered, as there is little
(if any) benefit from such fine grade clock management. That clock is
needed only for the AHB related part of the TMU (reading/writing the
registers). The IRQ generation and temperature measurement is clocked
from so called 'sclk' (special clock).
I also briefly looked at the code and the internal lock doesn't look to
be really necessary assuming that the thermal core already serializes
all the calls.