<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/bus/ti-sysc.c, branch linux-5.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-06-27T10:02:55Z</updated>
<entry>
<title>Revert "bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first"</title>
<updated>2025-06-27T10:02:55Z</updated>
<author>
<name>Alexander Sverdlin</name>
</author>
<published>2025-04-01T09:06:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=882ff6d3246a5c0e95cb7b33e6794cda6eab58c8'/>
<id>urn:sha1:882ff6d3246a5c0e95cb7b33e6794cda6eab58c8</id>
<content type='text'>
[ Upstream commit 36305857b1ead8f6ca033a913162ebc09bee0b43 ]

This reverts commit 4700a00755fb5a4bb5109128297d6fd2d1272ee6.

It breaks target-module@2b300050 ("ti,sysc-omap2") probe on AM62x in a case
when minimally-configured system tries to network-boot:

[    6.888776] probe of 2b300050.target-module returned 517 after 258 usecs
[   17.129637] probe of 2b300050.target-module returned 517 after 708 usecs
[   17.137397] platform 2b300050.target-module: deferred probe pending: (reason unknown)
[   26.878471] Waiting up to 100 more seconds for network.

There are minimal configurations possible when the deferred device is not
being probed any more (because everything else has been successfully
probed) and deferral lists are not processed any more.

Stable mmc enumeration can be achieved by filling /aliases node properly
(4700a00755fb commit's rationale).

After revert:

[    9.006816] IP-Config: Complete:
[    9.010058]      device=lan0, ...

Tested-by: Andreas Kemnade &lt;andreas@kemnade.info&gt; # GTA04, Panda, BT200
Reviewed-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Alexander Sverdlin &lt;alexander.sverdlin@siemens.com&gt;
Link: https://lore.kernel.org/r/20250401090643.2776793-1-alexander.sverdlin@siemens.com
Signed-off-by: Kevin Hilman &lt;khilman@baylibre.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up</title>
<updated>2023-10-10T19:46:39Z</updated>
<author>
<name>Tony Lindgren</name>
</author>
<published>2023-09-07T05:53:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=49dc6fcd4b6a4743075087f6c6c1c2811b763f4c'/>
<id>urn:sha1:49dc6fcd4b6a4743075087f6c6c1c2811b763f4c</id>
<content type='text'>
[ Upstream commit e5deb8f76e64d94ccef715e75ebafffd0c312d80 ]

The uarts should be tagged with SYSC_QUIRK_SWSUP_SIDLE instead of
SYSC_QUIRK_SWSUP_SIDLE_ACT. The difference is that SYSC_QUIRK_SWSUP_SIDLE
is used to force idle target modules rather than block idle during usage.

The SYSC_QUIRK_SWSUP_SIDLE_ACT should disable autoidle and wake-up when
a target module is active, and configure autoidle and wake-up when a
target module is inactive. We are missing configuring the target module
on sysc_disable_module(), and missing toggling of the wake-up bit.

Let's fix the issue to allow uart wake-up to work.

Fixes: fb685f1c190e ("bus: ti-sysc: Handle swsup idle mode quirks")
Tested-by: Dhruva Gole &lt;d-gole@ti.com&gt;
Tested-by: Kevin Hilman &lt;khilman@baylibre.com&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>bus: ti-sysc: Configure uart quirks for k3 SoC</title>
<updated>2023-09-23T09:00:04Z</updated>
<author>
<name>Tony Lindgren</name>
</author>
<published>2023-08-04T10:38:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=77918680ab078363338860334b170fc1b7334f65'/>
<id>urn:sha1:77918680ab078363338860334b170fc1b7334f65</id>
<content type='text'>
[ Upstream commit 03a711d3cb83692733f865312f49e665c49de6de ]

Enable the uart quirks similar to the earlier SoCs. Let's assume we are
likely going to need a k3 specific quirk mask separate from the earlier
SoCs, so let's not start changing the revision register mask at this point.

Note that SYSC_QUIRK_LEGACY_IDLE will be needed until we can remove the
need for pm_runtime_irq_safe() from 8250_omap driver.

Reviewed-by: Nishanth Menon &lt;nm@ti.com&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>bus: ti-sysc: Flush posted write on enable before reset</title>
<updated>2023-08-30T14:27:17Z</updated>
<author>
<name>Tony Lindgren</name>
</author>
<published>2023-06-14T07:18:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=37cfbf847c2d0a7a099676a1d70bf54980d1adb3'/>
<id>urn:sha1:37cfbf847c2d0a7a099676a1d70bf54980d1adb3</id>
<content type='text'>
[ Upstream commit 34539b442b3bc7d5bf10164750302b60b91f18a7 ]

The am335x devices started producing boot errors for resetting musb module
in because of subtle timing changes:

Unhandled fault: external abort on non-linefetch (0x1008)
...
sysc_poll_reset_sysconfig from sysc_reset+0x109/0x12
sysc_reset from sysc_probe+0xa99/0xeb0
...

The fix is to flush posted write after enable before reset during
probe. Note that some devices also need to specify the delay after enable
with ti,sysc-delay-us, but this is not needed for musb on am335x based on
my tests.

Reported-by: kernelci.org bot &lt;bot@kernelci.org&gt;
Closes: https://storage.kernelci.org/next/master/next-20230614/arm/multi_v7_defconfig+CONFIG_THUMB2_KERNEL=y/gcc-10/lab-cip/baseline-beaglebone-black.html
Fixes: 596e7955692b ("bus: ti-sysc: Add support for software reset")
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>bus: ti-sysc: Improve reset to work with modules with no sysconfig</title>
<updated>2023-08-30T14:27:17Z</updated>
<author>
<name>Tony Lindgren</name>
</author>
<published>2020-02-24T20:58:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4637b2fa65414bb8396e0b6a41035840465291de'/>
<id>urn:sha1:4637b2fa65414bb8396e0b6a41035840465291de</id>
<content type='text'>
[ Upstream commit ab4d309d8708035bd323b2e2446eb68cda5e61e5 ]

At least display susbsystem (DSS) has modules with no sysconfig registers
and rely on custom function for module reset handling. Let's make reset
work with that too.

Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Stable-dep-of: 34539b442b3b ("bus: ti-sysc: Flush posted write on enable before reset")
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>bus: ti-sysc: Fix warnings for unbind for serial</title>
<updated>2022-06-14T16:11:54Z</updated>
<author>
<name>Tony Lindgren</name>
</author>
<published>2022-05-12T05:30:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3157118c1795338ce27d484c5df5018f2624229e'/>
<id>urn:sha1:3157118c1795338ce27d484c5df5018f2624229e</id>
<content type='text'>
[ Upstream commit c337125b8834f9719dfda0e40b25eaa266f1b8cf ]

We can get "failed to disable" clock_unprepare warnings on unbind at least
for the serial console device if the unbind is done before the device has
been idled.

As some devices are using deferred idle, we must check the status for
pending idle work to idle the device.

Fixes: 76f0f772e469 ("bus: ti-sysc: Improve handling for no-reset-on-init and no-idle-on-init")
Cc: Romain Naour &lt;romain.naour@smile.fr&gt;
Reviewed-by: Romain Naour &lt;romain.naour@smile.fr&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Link: https://lore.kernel.org/r/20220512053021.61650-1-tony@atomide.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893</title>
<updated>2021-10-13T08:08:19Z</updated>
<author>
<name>Tony Lindgren</name>
</author>
<published>2021-09-08T05:49:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=04f981251e20089899bb7be60b56699a37371fa3'/>
<id>urn:sha1:04f981251e20089899bb7be60b56699a37371fa3</id>
<content type='text'>
[ Upstream commit b13a270ace2e4c70653aa1d1d0394c553905802f ]

Commit 94f6345712b3 ("bus: ti-sysc: Implement quirk handling for
CLKDM_NOAUTO") should have also added the quirk for dra7 dcan1 in
addition to dcan2 for errata i893 handling.

Let's also pass the quirk flag for legacy mode booting for if "ti,hwmods"
dts property is used with related dcan hwmod data. This should be only
needed if anybody needs to git bisect earlier stable trees though.

Fixes: 94f6345712b3 ("bus: ti-sysc: Implement quirk handling for CLKDM_NOAUTO")
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>bus: ti-sysc: Fix flakey idling of uarts and stop using swsup_sidle_act</title>
<updated>2021-06-10T11:37:08Z</updated>
<author>
<name>Tony Lindgren</name>
</author>
<published>2021-05-25T06:08:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0fa160a7574859192a1328a029c70d05b44a4c75'/>
<id>urn:sha1:0fa160a7574859192a1328a029c70d05b44a4c75</id>
<content type='text'>
[ Upstream commit c8692ad416dcc420ce1b403596a425c8f4c2720b ]

Looks like the swsup_sidle_act quirk handling is unreliable for serial
ports. The serial ports just eventually stop idling until woken up and
re-idled again. As the serial port not idling blocks any deeper SoC idle
states, it's adds an annoying random flakeyness for power management.

Let's just switch to swsup_sidle quirk instead like we already do for
omap3 uarts. This means we manually idle the port instead of trying to
use the hardware autoidle features when not in use.

For more details on why the serial ports have been using swsup_idle_act,
see commit 66dde54e978a ("ARM: OMAP2+: hwmod-data: UART IP needs software
control to manage sidle modes"). It seems that the swsup_idle_act quirk
handling is not enough though, and for example the TI Android kernel
changed to using swsup_sidle with commit 77c34c84e1e0 ("OMAP4: HWMOD:
UART1: disable smart-idle.").

Fixes: b4a9a7a38917 ("bus: ti-sysc: Handle swsup idle mode quirks")
Cc: Carl Philipp Klemm &lt;philipp@uvos.xyz&gt;
Cc: Ivan Jelincic &lt;parazyd@dyne.org&gt;
Cc: Merlijn Wajer &lt;merlijn@wizzup.org&gt;
Cc: Pavel Machek &lt;pavel@ucw.cz&gt;
Cc: Sebastian Reichel &lt;sre@kernel.org&gt;
Cc: Sicelo A. Mhlongo &lt;absicsz@gmail.com&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first</title>
<updated>2021-05-11T12:04:04Z</updated>
<author>
<name>Tony Lindgren</name>
</author>
<published>2021-03-08T09:35:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ce64f57a0fe0771379a24341b55823a676681a84'/>
<id>urn:sha1:ce64f57a0fe0771379a24341b55823a676681a84</id>
<content type='text'>
[ Upstream commit 4700a00755fb5a4bb5109128297d6fd2d1272ee6 ]

We want to probe l4_wkup and l4_cfg interconnect devices first to avoid
issues with missing resources. Otherwise we attempt to probe l4_per
devices first causing pointless deferred probe and also annoyingh
renumbering of the MMC devices for example.

Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>bus: ti-sysc: Fix warning on unbind if reset is not deasserted</title>
<updated>2021-04-10T11:34:30Z</updated>
<author>
<name>Tony Lindgren</name>
</author>
<published>2021-02-18T11:06:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=422c68101110ab29ab9bed723bb837c1a36ce3f4'/>
<id>urn:sha1:422c68101110ab29ab9bed723bb837c1a36ce3f4</id>
<content type='text'>
[ Upstream commit a7b5d7c4969aba8d1f04c29048906abaa71fb6a9 ]

We currently get thefollowing on driver unbind if a reset is configured
and asserted:

WARNING: CPU: 0 PID: 993 at drivers/reset/core.c:432 reset_control_assert
...
(reset_control_assert) from [&lt;c0fecda8&gt;] (sysc_remove+0x190/0x1e4)
(sysc_remove) from [&lt;c0a2bb58&gt;] (platform_remove+0x24/0x3c)
(platform_remove) from [&lt;c0a292fc&gt;] (__device_release_driver+0x154/0x214)
(__device_release_driver) from [&lt;c0a2a210&gt;] (device_driver_detach+0x3c/0x8c)
(device_driver_detach) from [&lt;c0a27d64&gt;] (unbind_store+0x60/0xd4)
(unbind_store) from [&lt;c0546bec&gt;] (kernfs_fop_write_iter+0x10c/0x1cc)

Let's fix it by checking the reset status.

Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
</feed>
