<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/soc/litex/litex_soc_ctrl.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>2025-01-19T19:05:35Z</updated>
<entry>
<title>drivers/soc/litex: Use devm_register_restart_handler()</title>
<updated>2025-01-19T19:05:35Z</updated>
<author>
<name>Andrew Davis</name>
</author>
<published>2024-01-23T16:44:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c7345869aa382b1e22691d51cbbd218d7f488a55'/>
<id>urn:sha1:c7345869aa382b1e22691d51cbbd218d7f488a55</id>
<content type='text'>
Use device life-cycle managed register function to simplify probe error
path and eliminate need for explicit remove function.

Signed-off-by: Andrew Davis &lt;afd@ti.com&gt;
Reviewed-by: Gabriel Somlo &lt;gsomlo@gmail.com&gt;
Link: https://lore.kernel.org/all/20240123164443.394642-3-afd@ti.com
Signed-off-by: Gabriel Somlo &lt;gsomlo@gmail.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>drivers/soc/litex: drop obsolete dependency on COMPILE_TEST</title>
<updated>2024-06-27T14:33:39Z</updated>
<author>
<name>Jean Delvare</name>
</author>
<published>2024-06-17T11:30:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4b381cf4c46b848fb809a4829682ee5a22a182d9'/>
<id>urn:sha1:4b381cf4c46b848fb809a4829682ee5a22a182d9</id>
<content type='text'>
Since commit 0166dc11be91 ("of: make CONFIG_OF user selectable"), it
is possible to test-build any driver which depends on OF on any
architecture by explicitly selecting OF. Therefore depending on
COMPILE_TEST as an alternative is no longer needed.

It is actually better to always build such drivers with OF enabled,
so that the test builds are closer to how each driver will actually be
built on its intended target. Building them without OF may not test
much as the compiler will optimize out potentially large parts of the
code. In the worst case, this could even pop false positive warnings.
Dropping COMPILE_TEST here improves the quality of our testing and
avoids wasting time on non-existent issues.

As a minor optimization, this also lets us drop of_match_ptr() and
ifdef-guarding, as we now know what they will resolve to, we might as
well save cpp some work.

Signed-off-by: Jean Delvare &lt;jdelvare@suse.de&gt;
Reviewed-by: Gabriel Somlo &lt;gsomlo@gmail.com&gt;
Cc: Karol Gugala &lt;kgugala@antmicro.com&gt;
Cc: Mateusz Holenko &lt;mholenko@antmicro.com&gt;
Cc: Joel Stanley &lt;joel@jms.id.au&gt;
Link: https://lore.kernel.org/r/20240617133004.59887629@endymion.delvare
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
</entry>
<entry>
<title>soc/litex: litex_soc_ctrl: Convert to platform remove callback returning void</title>
<updated>2023-10-14T21:27:17Z</updated>
<author>
<name>Uwe Kleine-König</name>
</author>
<published>2023-09-25T09:55:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=95589c0349829c9f4de823075e727af8f2016ebf'/>
<id>urn:sha1:95589c0349829c9f4de823075e727af8f2016ebf</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.

Acked-by: Gabriel Somlo &lt;gsomlo@gmail.com&gt;
Link: https://lore.kernel.org/r/20230925095532.1984344-13-u.kleine-koenig@pengutronix.de
Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>drivers/soc/litex: remove 8-bit subregister option</title>
<updated>2021-06-10T19:35:40Z</updated>
<author>
<name>Gabriel Somlo</name>
</author>
<published>2021-05-26T10:51:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ad4e600cbf897f47525b342cd4b02e88ed300a83'/>
<id>urn:sha1:ad4e600cbf897f47525b342cd4b02e88ed300a83</id>
<content type='text'>
Since upstream LiteX recommends that Linux support be limited to
designs configured with 32-bit CSR subregisters (see commit a2b71fde
in upstream LiteX, https://github.com/enjoy-digital/litex), remove
the option to select 8-bit subregisters, significantly reducing the
complexity of LiteX CSR (MMIO register) accessor methods.

NOTE: for details on the underlying mechanics of LiteX CSR registers,
see https://github.com/enjoy-digital/litex/wiki/CSR-Bus or the original
LiteX accessors (litex/soc/software/include/hw/common.h in the upstream
repository).

Signed-off-by: Gabriel Somlo &lt;gsomlo@gmail.com&gt;
Cc: Stafford Horne &lt;shorne@gmail.com&gt;
Cc: Florent Kermarrec &lt;florent@enjoy-digital.fr&gt;
Cc: Mateusz Holenko &lt;mholenko@antmicro.com&gt;
Cc: Joel Stanley &lt;joel@jms.id.au&gt;
Reviewed-by: Joel Stanley &lt;joel@jms.id.au&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
</entry>
<entry>
<title>soc: litex: Remove duplicated header file inclusion</title>
<updated>2021-04-03T20:46:46Z</updated>
<author>
<name>Zhen Lei</name>
</author>
<published>2021-03-31T13:06:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1683f7de65dbf0a2c6a7d639173fe92430a28930'/>
<id>urn:sha1:1683f7de65dbf0a2c6a7d639173fe92430a28930</id>
<content type='text'>
The header file &lt;linux/errno.h&gt; is already included above and can be
removed here.

Signed-off-by: Zhen Lei &lt;thunder.leizhen@huawei.com&gt;
Signed-off-by: Mateusz Holenko &lt;mholenko@antmicro.com&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'openrisc/or1k-5.11-fixes' into or1k-5.12-updates</title>
<updated>2021-01-25T02:16:06Z</updated>
<author>
<name>Stafford Horne</name>
</author>
<published>2021-01-25T02:08:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2261352157a932717ec08b9dd18d1bfbb7c37c52'/>
<id>urn:sha1:2261352157a932717ec08b9dd18d1bfbb7c37c52</id>
<content type='text'>
Pickup fixes that went upstream already in order to resolve conflicts in
litex_soc_ctrl.c between 5.11 fixes that went upstream and the
or1k-5.12-updates linux-next queue.

Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
</entry>
<entry>
<title>drivers/soc/litex: Add restart handler</title>
<updated>2021-01-21T12:40:05Z</updated>
<author>
<name>Geert Uytterhoeven</name>
</author>
<published>2021-01-19T08:09:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3706f9f76a4f79f8e7b2eb8b99877e89fe9ad732'/>
<id>urn:sha1:3706f9f76a4f79f8e7b2eb8b99877e89fe9ad732</id>
<content type='text'>
Let the LiteX SoC Controller register a restart handler, which resets
the LiteX SoC by writing 1 to CSR_CTRL_RESET_ADDR.

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Reviewed-by: Joel Stanley &lt;joel@jms.id.au&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
</entry>
<entry>
<title>drivers/soc/litex: support 32-bit subregisters, 64-bit CPUs</title>
<updated>2021-01-14T00:52:54Z</updated>
<author>
<name>Gabriel Somlo</name>
</author>
<published>2021-01-12T17:31:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=51f109228308a87c7f2583360e54acfc567203da'/>
<id>urn:sha1:51f109228308a87c7f2583360e54acfc567203da</id>
<content type='text'>
Upstream LiteX now defaults to using 32-bit CSR subregisters
(see https://github.com/enjoy-digital/litex/commit/a2b71fde).

This patch expands on commit 22447a99c97e ("drivers/soc/litex: add
LiteX SoC Controller driver"), adding support for handling both 8-
and 32-bit LiteX CSR (MMIO) subregisters, as determined by the
LITEX_SUBREG_SIZE Kconfig option.

NOTE that while LITEX_SUBREG_SIZE could theoretically be a device
tree property, defining it as a compile-time constant allows for
much better optimization of the resulting code. This is further
supported by the low expected usefulness of deploying the same
kernel across LiteX SoCs built with different CSR-Bus data widths.

Finally, the litex_[read|write][8|16|32|64]() accessors are
redefined in terms of litex_[get|set]_reg(), which, after compiler
optimization, will result in code as efficient as hardcoded shifts,
but with the added benefit of automatically matching the appropriate
LITEX_SUBREG_SIZE.

NOTE that litex_[get|set]_reg() nominally operate on 64-bit data,
but that will also be optimized by the compiler in situations where
narrower data is used from a call site.

Signed-off-by: Gabriel Somlo &lt;gsomlo@gmail.com&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
</entry>
<entry>
<title>drivers/soc/litex: move generic accessors to litex.h</title>
<updated>2021-01-14T00:52:54Z</updated>
<author>
<name>Gabriel Somlo</name>
</author>
<published>2021-01-12T17:31:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9d93a9e8aab3f82b6742dd034a6a81d4025cd82e'/>
<id>urn:sha1:9d93a9e8aab3f82b6742dd034a6a81d4025cd82e</id>
<content type='text'>
Move generic LiteX CSR (MMIO) register accessors to litex.h and
declare them as "static inline", in preparation for supporting
32-bit CSR subregisters and 64-bit CPUs.

NOTE: this is a non-functional change.

Signed-off-by: Gabriel Somlo &lt;gsomlo@gmail.com&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
</entry>
</feed>
