<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/thermal/samsung, branch linux-6.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.9.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.9.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2024-01-02T08:33:19Z</updated>
<entry>
<title>thermal/drivers/exynos: Use set_trips ops</title>
<updated>2024-01-02T08:33:19Z</updated>
<author>
<name>Mateusz Majewski</name>
</author>
<published>2023-12-01T09:56:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5314b1543787e6cd5d248186fcfd5c5fc4ca2146'/>
<id>urn:sha1:5314b1543787e6cd5d248186fcfd5c5fc4ca2146</id>
<content type='text'>
Currently, each trip point defined in the device tree corresponds to a
single hardware interrupt. This commit instead switches to using two
hardware interrupts, whose values are set dynamically using the
set_trips callback. Additionally, the critical temperature threshold is
handled specifically.

Setting interrupts in this way also fixes a long-standing lockdep
warning, which was caused by calling thermal_zone_get_trips with our
lock being held. Do note that this requires TMU initialization to be
split into two parts, as done by the parent commit: parts of the
initialization call into the thermal_zone_device structure and so must
be done after its registration, but the initialization is also
responsible for setting up calibration, which must be done before
thermal_zone_device registration, which will call set_trips for the
first time; if the calibration is not done in time, the interrupt values
will be silently wrong!

Reviewed-by: Lukasz Luba &lt;lukasz.luba@arm.com&gt;
Signed-off-by: Mateusz Majewski &lt;m.majewski2@samsung.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Link: https://lore.kernel.org/r/20231201095625.301884-10-m.majewski2@samsung.com
</content>
</entry>
<entry>
<title>thermal/drivers/exynos: Use BIT wherever possible</title>
<updated>2024-01-02T08:33:19Z</updated>
<author>
<name>Mateusz Majewski</name>
</author>
<published>2023-12-01T09:56:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=af00d488339aee7bf42b07057053ef919bedee6f'/>
<id>urn:sha1:af00d488339aee7bf42b07057053ef919bedee6f</id>
<content type='text'>
The original driver did not use that macro and it allows us to make our
intentions slightly clearer.

Reviewed-by: Lukasz Luba &lt;lukasz.luba@arm.com&gt;
Signed-off-by: Mateusz Majewski &lt;m.majewski2@samsung.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Link: https://lore.kernel.org/r/20231201095625.301884-9-m.majewski2@samsung.com
</content>
</entry>
<entry>
<title>thermal/drivers/exynos: Split initialization of TMU and the thermal zone</title>
<updated>2024-01-02T08:33:19Z</updated>
<author>
<name>Mateusz Majewski</name>
</author>
<published>2023-12-01T09:56:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b72ba67baec1d8ff67edc6e70c371ab6b2f7d31c'/>
<id>urn:sha1:b72ba67baec1d8ff67edc6e70c371ab6b2f7d31c</id>
<content type='text'>
This will be needed in the future, as the thermal zone subsystem might
call our callbacks right after devm_thermal_of_zone_register. Currently
we just make get_temp return EAGAIN in such case, but this will not be
possible with state-modifying callbacks, for instance set_trips.

Reviewed-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@linaro.org&gt;
Signed-off-by: Mateusz Majewski &lt;m.majewski2@samsung.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Link: https://lore.kernel.org/r/20231201095625.301884-8-m.majewski2@samsung.com
</content>
</entry>
<entry>
<title>thermal/drivers/exynos: Stop using the threshold mechanism on Exynos 4210</title>
<updated>2024-01-02T08:33:19Z</updated>
<author>
<name>Mateusz Majewski</name>
</author>
<published>2023-12-01T09:56:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d7a5b431911c5d9da7fbff852433e6f99a4c6616'/>
<id>urn:sha1:d7a5b431911c5d9da7fbff852433e6f99a4c6616</id>
<content type='text'>
Exynos 4210 supports setting a base threshold value, which is added to
all trip points. This might be useful, but is not really necessary in
our usecase, so we always set it to 0 to simplify the code a bit.

Additionally, this change makes it so that we convert the value to the
calibrated one in a slightly different place. This is more correct
morally, though it does not make any change when single-point
calibration is being used (which is the case currently).

Reviewed-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@linaro.org&gt;
Signed-off-by: Mateusz Majewski &lt;m.majewski2@samsung.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Link: https://lore.kernel.org/r/20231201095625.301884-7-m.majewski2@samsung.com
</content>
</entry>
<entry>
<title>thermal/drivers/exynos: Simplify regulator (de)initialization</title>
<updated>2024-01-02T08:33:19Z</updated>
<author>
<name>Mateusz Majewski</name>
</author>
<published>2023-12-01T09:56:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5d6976d01414f23af4b81d7f91cfd59839c8b1fe'/>
<id>urn:sha1:5d6976d01414f23af4b81d7f91cfd59839c8b1fe</id>
<content type='text'>
We rewrite the initialization to enable the regulator as part of devm,
which allows us to not handle the struct instance manually.

Reviewed-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@linaro.org&gt;
Signed-off-by: Mateusz Majewski &lt;m.majewski2@samsung.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt; Link:
https://lore.kernel.org/r/20231201095625.301884-6-m.majewski2@samsung.com
</content>
</entry>
<entry>
<title>thermal/drivers/exynos: Handle devm_regulator_get_optional return value correctly</title>
<updated>2024-01-02T08:33:19Z</updated>
<author>
<name>Mateusz Majewski</name>
</author>
<published>2023-12-01T09:56:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=52ef6f567e6b9a878a8e0e5d6367aa65a08227a5'/>
<id>urn:sha1:52ef6f567e6b9a878a8e0e5d6367aa65a08227a5</id>
<content type='text'>
Currently, if regulator is required in the SoC, but
devm_regulator_get_optional fails for whatever reason, the execution
will proceed without propagating the error. Meanwhile there is no
reason to output the error in case of -ENODEV.

Reviewed-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@linaro.org&gt;
Signed-off-by: Mateusz Majewski &lt;m.majewski2@samsung.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Link: https://lore.kernel.org/r/20231201095625.301884-5-m.majewski2@samsung.com
</content>
</entry>
<entry>
<title>thermal/drivers/exynos: Wwitch from workqueue-driven interrupt handling to threaded interrupts</title>
<updated>2024-01-02T08:33:19Z</updated>
<author>
<name>Mateusz Majewski</name>
</author>
<published>2023-12-01T09:56:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=20009a8137eefbeebb86402d04cae8955795385a'/>
<id>urn:sha1:20009a8137eefbeebb86402d04cae8955795385a</id>
<content type='text'>
The workqueue boilerplate is mostly one-to-one what the threaded
interrupts do.

Reviewed-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@linaro.org&gt;
Signed-off-by: Mateusz Majewski &lt;m.majewski2@samsung.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Link: https://lore.kernel.org/r/20231201095625.301884-4-m.majewski2@samsung.com
</content>
</entry>
<entry>
<title>thermal/drivers/exynos: Drop id field</title>
<updated>2024-01-02T08:33:19Z</updated>
<author>
<name>Mateusz Majewski</name>
</author>
<published>2023-12-01T09:56:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0ac3e1cf37367aea1fef26569b793b5e57eb7a51'/>
<id>urn:sha1:0ac3e1cf37367aea1fef26569b793b5e57eb7a51</id>
<content type='text'>
We do not use the value, and only Exynos 7 defines this alias anyway.

Reviewed-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@linaro.org&gt;
Signed-off-by: Mateusz Majewski &lt;m.majewski2@samsung.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Link: https://lore.kernel.org/r/20231201095625.301884-3-m.majewski2@samsung.com
</content>
</entry>
<entry>
<title>thermal/drivers/exynos: Remove an unnecessary field description</title>
<updated>2024-01-02T08:33:19Z</updated>
<author>
<name>Mateusz Majewski</name>
</author>
<published>2023-12-01T09:56:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0cefaf6c89c016e9eae9f8881ecaf50e836869a9'/>
<id>urn:sha1:0cefaf6c89c016e9eae9f8881ecaf50e836869a9</id>
<content type='text'>
It seems that the field has been removed in one of the previous commits,
but the description has been forgotten.

Reviewed-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@linaro.org&gt;
Signed-off-by: Mateusz Majewski &lt;m.majewski2@samsung.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Link: https://lore.kernel.org/r/20231201095625.301884-2-m.majewski2@samsung.com
</content>
</entry>
<entry>
<title>thermal: exynos_tmu: Convert to platform remove callback returning void</title>
<updated>2023-10-02T12:24:02Z</updated>
<author>
<name>Uwe Kleine-König</name>
</author>
<published>2023-09-27T19:37:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b478d7b867b9c1621b0bb31ee0c416bed376631'/>
<id>urn:sha1:0b478d7b867b9c1621b0bb31ee0c416bed376631</id>
<content type='text'>
The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.

To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
.remove_new(), which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Acked-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
</feed>
