<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/soc/ti/pruss.c, branch linux-rolling-stable</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-rolling-stable</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-rolling-stable'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2026-03-04T12:21:05Z</updated>
<entry>
<title>soc: ti: pruss: Fix double free in pruss_clk_mux_setup()</title>
<updated>2026-03-04T12:21:05Z</updated>
<author>
<name>Wentao Liang</name>
</author>
<published>2026-01-13T01:47:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b7db9953c2f8da37de498198623b05b46f8e2ca0'/>
<id>urn:sha1:b7db9953c2f8da37de498198623b05b46f8e2ca0</id>
<content type='text'>
[ Upstream commit 80db65d4acfb9ff12d00172aed39ea8b98261aad ]

In the pruss_clk_mux_setup(), the devm_add_action_or_reset() indirectly
calls pruss_of_free_clk_provider(), which calls of_node_put(clk_mux_np)
on the error path. However, after the devm_add_action_or_reset()
returns, the of_node_put(clk_mux_np) is called again, causing a double
free.

Fix by returning directly, to avoid the duplicate of_node_put().

Fixes: ba59c9b43c86 ("soc: ti: pruss: support CORECLK_MUX and IEPCLK_MUX")
Cc: stable@vger.kernel.org
Signed-off-by: Wentao Liang &lt;vulab@iscas.ac.cn&gt;
Link: https://patch.msgid.link/20260113014716.2464741-1-vulab@iscas.ac.cn
Signed-off-by: Nishanth Menon &lt;nm@ti.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>soc: ti: pruss: don't use %pK through printk</title>
<updated>2025-08-13T14:28:19Z</updated>
<author>
<name>Thomas Weißschuh</name>
</author>
<published>2025-08-11T07:48:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a5039648f86424885aae37f03dc39bc9cb972ecb'/>
<id>urn:sha1:a5039648f86424885aae37f03dc39bc9cb972ecb</id>
<content type='text'>
In the past %pK was preferable to %p as it would not leak raw pointer
values into the kernel log.
Since commit ad67b74d2469 ("printk: hash addresses printed with %p")
the regular %p has been improved to avoid this issue.
Furthermore, restricted pointers ("%pK") were never meant to be used
through printk(). They can still unintentionally leak raw pointers or
acquire sleeping locks in atomic contexts.

Switch to the regular pointer formatting which is safer and
easier to reason about.

Signed-off-by: Thomas Weißschuh &lt;thomas.weissschuh@linutronix.de&gt;
Link: https://lore.kernel.org/r/20250811-restricted-pointers-soc-v2-1-7af7ed993546@linutronix.de
Signed-off-by: Nishanth Menon &lt;nm@ti.com&gt;
</content>
</entry>
<entry>
<title>soc: Switch back to struct platform_driver::remove()</title>
<updated>2024-11-01T16:08:57Z</updated>
<author>
<name>Uwe Kleine-König</name>
</author>
<published>2024-10-29T07:48:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=511c06e3903563dba4472430e1b586745b6ae238'/>
<id>urn:sha1:511c06e3903563dba4472430e1b586745b6ae238</id>
<content type='text'>
After commit 0edb555a65d1 ("platform: Make platform_driver::remove()
return void") .remove() is (again) the right callback to implement for
platform drivers.

Convert all platform drivers below drivers/soc to use .remove(), with
the eventual goal to drop struct platform_driver::remove_new(). As
.remove() and .remove_new() have the same prototypes, conversion is done
by just changing the structure member name in the driver initializer.

On the way do a few whitespace changes to make indention consistent.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@baylibre.com&gt;
Acked-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Acked-by: Herve Codina &lt;herve.codina@bootlin.com&gt; # for fsl/qe/{qmc,tsa}.c
Acked-by: Bjorn Andersson &lt;andersson@kernel.org&gt; # qcom parts
Acked-by: Gabriel Somlo &lt;gsomlo@gmail.com&gt;
Acked-by: Andrew Jeffery &lt;andrew@codeconstruct.com.au&gt; # aspeed
Link: https://lore.kernel.org/r/20241029074859.509587-2-u.kleine-koenig@baylibre.com
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
</entry>
<entry>
<title>soc: ti: pruss: do device_node auto cleanup</title>
<updated>2024-08-28T17:18:02Z</updated>
<author>
<name>Kousik Sanagavarapu</name>
</author>
<published>2024-08-25T08:48:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=df70c0b4828bb85f1370453288a0a63d7618decf'/>
<id>urn:sha1:df70c0b4828bb85f1370453288a0a63d7618decf</id>
<content type='text'>
Use scope based cleanup instead of manual of_node_put() calls, hence
simplifying the handling of error paths at various places.

While at it, use dev_err_probe() instead of dev_err() in all the code
paths touched.

Suggested-by: Julia Lawall &lt;julia.lawall@inria.fr&gt;
Signed-off-by: Kousik Sanagavarapu &lt;five231003@gmail.com&gt;
Link: https://lore.kernel.org/r/20240825085714.10736-3-five231003@gmail.com
Signed-off-by: Nishanth Menon &lt;nm@ti.com&gt;
</content>
</entry>
<entry>
<title>soc: ti: pruss: factor out memories setup</title>
<updated>2024-08-28T17:18:02Z</updated>
<author>
<name>Kousik Sanagavarapu</name>
</author>
<published>2024-08-25T08:48:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=952ceb03787dde88fc713c7453824e25bf12cb3a'/>
<id>urn:sha1:952ceb03787dde88fc713c7453824e25bf12cb3a</id>
<content type='text'>
Factor out memories setup code from probe() into a new function
pruss_of_setup_memories().  This sets the stage for introducing auto
cleanup of the device node (done in the subsequent patch), since the
clean up depends on the scope of the pointer and factoring out
code into a separate function obviously limits the scope of the various
variables used in that function.

Apart from the above, this change also has the advantage of making the
code look more neat.

While at it, use dev_err_probe() instead of plain dev_err() as this new
function is called by the probe().

Signed-off-by: Kousik Sanagavarapu &lt;five231003@gmail.com&gt;
Link: https://lore.kernel.org/r/20240825085714.10736-2-five231003@gmail.com
Signed-off-by: Nishanth Menon &lt;nm@ti.com&gt;
</content>
</entry>
<entry>
<title>soc/ti: pruss: Convert to platform remove callback returning void</title>
<updated>2023-10-02T14:11:45Z</updated>
<author>
<name>Uwe Kleine-König</name>
</author>
<published>2023-09-25T09:55:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d183b20d340b7c098f44cb5c02f4ced01cfd0b16'/>
<id>urn:sha1:d183b20d340b7c098f44cb5c02f4ced01cfd0b16</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: Konrad Dybcio &lt;konrad.dybcio@linaro.org&gt; # qcom
Link: https://lore.kernel.org/r/20230925095532.1984344-38-u.kleine-koenig@pengutronix.de
Signed-off-by: Nishanth Menon &lt;nm@ti.com&gt;
</content>
</entry>
<entry>
<title>soc: ti: Explicitly include correct DT includes</title>
<updated>2023-07-25T11:26:34Z</updated>
<author>
<name>Rob Herring</name>
</author>
<published>2023-07-14T17:51:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cdbab28c3728e6c47228585eb6e84669518a1e7d'/>
<id>urn:sha1:cdbab28c3728e6c47228585eb6e84669518a1e7d</id>
<content type='text'>
The DT of_device.h and of_platform.h date back to the separate
of_platform_bus_type before it as merged into the regular platform bus.
As part of that merge prepping Arm DT support 13 years ago, they
"temporarily" include each other. They also include platform_device.h
and of.h. As a result, there's a pretty much random mix of those include
files used throughout the tree. In order to detangle these headers and
replace the implicit includes with struct declarations, users need to
explicitly include the correct includes.

Signed-off-by: Rob Herring &lt;robh@kernel.org&gt;
Link: https://lore.kernel.org/r/20230714175156.4068520-1-robh@kernel.org
Signed-off-by: Nishanth Menon &lt;nm@ti.com&gt;
</content>
</entry>
<entry>
<title>soc: ti: pruss: Add helper functions to set GPI mode, MII_RT_event and XFR</title>
<updated>2023-05-17T14:15:40Z</updated>
<author>
<name>Suman Anna</name>
</author>
<published>2023-04-14T04:55:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0211cc1e4fbbc81853227147bf0982c47362c567'/>
<id>urn:sha1:0211cc1e4fbbc81853227147bf0982c47362c567</id>
<content type='text'>
The PRUSS CFG module is represented as a syscon node and is currently
managed by the PRUSS platform driver. Add easy accessor functions to set
GPI mode, MII_RT event enable/disable and XFR (XIN XOUT) enable/disable
to enable the PRUSS Ethernet usecase. These functions reuse the generic
pruss_cfg_update() API function.

Signed-off-by: Suman Anna &lt;s-anna@ti.com&gt;
Co-developed-by: Grzegorz Jaszczyk &lt;grzegorz.jaszczyk@linaro.org&gt;
Signed-off-by: Grzegorz Jaszczyk &lt;grzegorz.jaszczyk@linaro.org&gt;
Signed-off-by: Puranjay Mohan &lt;p-mohan@ti.com&gt;
Reviewed-by: Roger Quadros &lt;rogerq@kernel.org&gt;
Reviewed-by: Tony Lindgren &lt;tony@atomide.com&gt;
Reviewed-by: Simon Horman &lt;simon.horman@corigine.com&gt;
Reviewed-by: Mathieu Poirier &lt;mathieu.poirier@linaro.org&gt;
Signed-off-by: MD Danish Anwar &lt;danishanwar@ti.com&gt;
Link: https://lore.kernel.org/r/20230414045542.3249939-5-danishanwar@ti.com
Signed-off-by: Nishanth Menon &lt;nm@ti.com&gt;
</content>
</entry>
<entry>
<title>soc: ti: pruss: Add pruss_cfg_read()/update(), pruss_cfg_get_gpmux()/set_gpmux() APIs</title>
<updated>2023-05-17T14:15:39Z</updated>
<author>
<name>Suman Anna</name>
</author>
<published>2023-04-14T04:55:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=51b5760e56ef19106a3c4487a66d186d46ccc6f4'/>
<id>urn:sha1:51b5760e56ef19106a3c4487a66d186d46ccc6f4</id>
<content type='text'>
Add two new generic API pruss_cfg_read() and pruss_cfg_update() to
the PRUSS platform driver to read and program respectively a register
within the PRUSS CFG sub-module represented by a syscon driver. These
APIs are internal to PRUSS driver.

Add two new helper functions pruss_cfg_get_gpmux() &amp; pruss_cfg_set_gpmux()
to get and set the GP MUX mode for programming the PRUSS internal wrapper
mux functionality as needed by usecases.

Various useful registers and macros for certain register bit-fields and
their values have also been added.

Signed-off-by: Suman Anna &lt;s-anna@ti.com&gt;
Co-developed-by: Grzegorz Jaszczyk &lt;grzegorz.jaszczyk@linaro.org&gt;
Signed-off-by: Grzegorz Jaszczyk &lt;grzegorz.jaszczyk@linaro.org&gt;
Signed-off-by: Puranjay Mohan &lt;p-mohan@ti.com&gt;
Reviewed-by: Roger Quadros &lt;rogerq@kernel.org&gt;
Reviewed-by: Tony Lindgren &lt;tony@atomide.com&gt;
Reviewed-by: Simon Horman &lt;simon.horman@corigine.com&gt;
Acked-by: Mathieu Poirier &lt;mathieu.poirier@linaro.org&gt;
Signed-off-by: MD Danish Anwar &lt;danishanwar@ti.com&gt;
Link: https://lore.kernel.org/r/20230414045542.3249939-4-danishanwar@ti.com
Signed-off-by: Nishanth Menon &lt;nm@ti.com&gt;
</content>
</entry>
<entry>
<title>soc: ti: pruss: Add pruss_{request,release}_mem_region() API</title>
<updated>2023-05-17T14:15:39Z</updated>
<author>
<name>Andrew F. Davis</name>
</author>
<published>2023-04-14T04:55:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b789ca1e3380ab63b60c3356c026a7e8eb26ba01'/>
<id>urn:sha1:b789ca1e3380ab63b60c3356c026a7e8eb26ba01</id>
<content type='text'>
Add two new API - pruss_request_mem_region() &amp; pruss_release_mem_region(),
to the PRUSS platform driver to allow client drivers to acquire and release
the common memory resources present within a PRU-ICSS subsystem. This
allows the client drivers to directly manipulate the respective memories,
as per their design contract with the associated firmware.

Co-developed-by: Suman Anna &lt;s-anna@ti.com&gt;
Signed-off-by: Suman Anna &lt;s-anna@ti.com&gt;
Signed-off-by: Andrew F. Davis &lt;afd@ti.com&gt;
Co-developed-by: Grzegorz Jaszczyk &lt;grzegorz.jaszczyk@linaro.org&gt;
Signed-off-by: Grzegorz Jaszczyk &lt;grzegorz.jaszczyk@linaro.org&gt;
Reviewed-by: Roger Quadros &lt;rogerq@kernel.org&gt;
Acked-by: Mathieu Poirier &lt;mathieu.poirier@linaro.org&gt;
Reviewed-by: Tony Lindgren &lt;tony@atomide.com&gt;
Reviewed-by: Simon Horman &lt;simon.horman@corigine.com&gt;
Signed-off-by: MD Danish Anwar &lt;danishanwar@ti.com&gt;
Link: https://lore.kernel.org/r/20230414045542.3249939-3-danishanwar@ti.com
Signed-off-by: Nishanth Menon &lt;nm@ti.com&gt;
</content>
</entry>
</feed>
