<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/soc/imx, branch linux-5.16.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.16.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.16.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2022-03-08T18:14:14Z</updated>
<entry>
<title>soc: imx: gpcv2: Fix clock disabling imbalance in error path</title>
<updated>2022-03-08T18:14:14Z</updated>
<author>
<name>Laurent Pinchart</name>
</author>
<published>2022-02-18T21:57:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3de5b97f859e48bb5725a00ac844fd788596602e'/>
<id>urn:sha1:3de5b97f859e48bb5725a00ac844fd788596602e</id>
<content type='text'>
[ Upstream commit fa231bef3b34f1670b240409c11e59a3ce095e6d ]

The imx_pgc_power_down() starts by enabling the domain clocks, and thus
disables them in the error path. Commit 18c98573a4cf ("soc: imx: gpcv2:
add domain option to keep domain clocks enabled") made the clock enable
conditional, but forgot to add the same condition to the error path.
This can result in a clock enable/disable imbalance. Fix it.

Fixes: 18c98573a4cf ("soc: imx: gpcv2: add domain option to keep domain clocks enabled")
Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Reviewed-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Signed-off-by: Shawn Guo &lt;shawnguo@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>soc: imx: gpcv2: Synchronously suspend MIX domains</title>
<updated>2022-01-27T11:02:16Z</updated>
<author>
<name>Marek Vasut</name>
</author>
<published>2021-10-16T21:05:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fd6150e5c0821ea1c6c4ab3e46566e238d80180e'/>
<id>urn:sha1:fd6150e5c0821ea1c6c4ab3e46566e238d80180e</id>
<content type='text'>
[ Upstream commit f756f435f7dd823f2d4bd593ce1bf3168def1308 ]

In case the following power domain sequence happens, iMX8M Mini always hangs:
  gpumix:on -&gt; gpu:on -&gt; gpu:off -&gt; gpu:on
This is likely due to another quirk of the GPC block. This situation can be
prevented by always synchronously powering off both the domain and MIX domain.
Make it so. This turns the aforementioned sequence into:
  gpumix:on -&gt; gpu:on -&gt; gpu:off -&gt; gpumix:off -&gt; gpumix:on -&gt; gpu:on

Signed-off-by: Marek Vasut &lt;marex@denx.de&gt;
Cc: Frieder Schrempf &lt;frieder.schrempf@kontron.de&gt;
Cc: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Cc: NXP Linux Team &lt;linux-imx@nxp.com&gt;
Cc: Peng Fan &lt;peng.fan@nxp.com&gt;
Cc: Shawn Guo &lt;shawnguo@kernel.org&gt;
Acked-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Signed-off-by: Shawn Guo &lt;shawnguo@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>soc: imx: gpcv2: keep i.MX8MM VPU-H1 bus clock active</title>
<updated>2022-01-27T11:01:33Z</updated>
<author>
<name>Adam Ford</name>
</author>
<published>2021-11-20T19:39:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a938ea3a0da03eab3dfef2c11eee55beda99f1c1'/>
<id>urn:sha1:a938ea3a0da03eab3dfef2c11eee55beda99f1c1</id>
<content type='text'>
[ Upstream commit 8361b8b29f9389084b679db854cf733375c64763 ]

Enable the vpu-h1 clock when the domain is active because reading
or writing to the VPU-H1 IP block cause the system to hang.

Fixes: 656ade7aa42a ("soc: imx: gpcv2: keep i.MX8M* bus clocks enabled")
Signed-off-by: Adam Ford &lt;aford173@gmail.com&gt;
Reviewed-by: Fabio Estevam &lt;festevam@gmail.com&gt;
Signed-off-by: Shawn Guo &lt;shawnguo@kernel.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>soc: imx: Register SoC device only on i.MX boards</title>
<updated>2021-12-08T12:30:00Z</updated>
<author>
<name>Stephan Gerhold</name>
</author>
<published>2021-12-06T11:38:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4ebd29f91629e69da7d57390cdc953772eee03ab'/>
<id>urn:sha1:4ebd29f91629e69da7d57390cdc953772eee03ab</id>
<content type='text'>
At the moment, using the ARM32 multi_v7_defconfig always results in two
SoCs being exposed in sysfs. This is wrong, as far as I'm aware the
Qualcomm DragonBoard 410c does not actually make use of a i.MX SoC. :)

  qcom-db410c:/sys/devices/soc0$ grep . *
  family:Freescale i.MX
  machine:Qualcomm Technologies, Inc. APQ 8016 SBC
  revision:0.0
  serial_number:0000000000000000
  soc_id:Unknown

  qcom-db410c:/sys/devices/soc1$ grep . *
  family:Snapdragon
  machine:APQ8016
  ...

This happens because imx_soc_device_init() registers the soc device
unconditionally, even when running on devices that do not make use of i.MX.
Arnd already reported this more than a year ago and even suggested a fix
similar to this commit, but for some reason it was never submitted.

Fix it by checking if the "__mxc_cpu_type" variable was actually
initialized by earlier platform code. On devices without i.MX it will
simply stay 0.

Cc: Peng Fan &lt;peng.fan@nxp.com&gt;
Fixes: d2199b34871b ("ARM: imx: use device_initcall for imx_soc_device_init")
Reported-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Link: https://lore.kernel.org/r/CAK8P3a0hxO1TmK6oOMQ70AHSWJnP_CAq57YMOutrxkSYNjFeuw@mail.gmail.com/
Signed-off-by: Stephan Gerhold &lt;stephan@gerhold.net&gt;
Reviewed-by: Fabio Estevam &lt;festevam@gmail.com&gt;
Reviewed-by: Peng Fan &lt;peng.fan@nxp.com&gt;
Signed-off-by: Shawn Guo &lt;shawnguo@kernel.org&gt;
</content>
</entry>
<entry>
<title>soc: imx: imx8m-blk-ctrl: Fix imx8mm mipi reset</title>
<updated>2021-12-06T02:28:30Z</updated>
<author>
<name>Adam Ford</name>
</author>
<published>2021-11-28T12:50:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=042b67799e2991e301df8269e166d8bc5944495e'/>
<id>urn:sha1:042b67799e2991e301df8269e166d8bc5944495e</id>
<content type='text'>
Most of the blk-ctrl reset bits are found in one register, however
there are two bits in offset 8 for pulling the MIPI DPHY out of reset
and one of them needs to be set when IMX8MM_DISPBLK_PD_MIPI_CSI is brought
out of reset or the MIPI_CSI hangs.

Since MIPI_DSI is impacted, add the additional one for MIPI_DSI too.

Fixes: 926e57c065df ("soc: imx: imx8m-blk-ctrl: add DISP blk-ctrl")
Signed-off-by: Adam Ford &lt;aford173@gmail.com&gt;
Reviewed-by: Fabio Estevam &lt;festevam@gmail.com&gt;
Reviewed-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Reviewed-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Tested by: Tim Harvey &lt;tharvey@gateworks.com&gt;
Signed-off-by: Shawn Guo &lt;shawnguo@kernel.org&gt;
</content>
</entry>
<entry>
<title>soc: imx: imx8m-blk-ctrl: off by one in imx8m_blk_ctrl_xlate()</title>
<updated>2021-10-15T03:10:05Z</updated>
<author>
<name>Dan Carpenter</name>
</author>
<published>2021-10-11T12:36:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=72949f76565c9ea9f4231c977774a31d4713c386'/>
<id>urn:sha1:72949f76565c9ea9f4231c977774a31d4713c386</id>
<content type='text'>
The &gt; comparison should be &gt;= to prevent reading one element beyond the
end of the array.  The onecell_data-&gt;domains[] array is allocated in
imx8m_blk_ctrl_probe() and it has "onecell_data-&gt;num_domains" elements.

Fixes: 5b340e7813d4 ("soc: imx: add i.MX8M blk-ctrl driver")
Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Reviewed-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Signed-off-by: Shawn Guo &lt;shawnguo@kernel.org&gt;
</content>
</entry>
<entry>
<title>soc: imx: imx8m-blk-ctrl: add DISP blk-ctrl</title>
<updated>2021-10-06T12:13:51Z</updated>
<author>
<name>Lucas Stach</name>
</author>
<published>2021-10-02T00:59:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=926e57c065dfcf5a824b206760330f32e786dd8c'/>
<id>urn:sha1:926e57c065dfcf5a824b206760330f32e786dd8c</id>
<content type='text'>
This adds the description for the i.MX8MM disp blk-ctrl.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Reviewed-by: Peng Fan &lt;peng.fan@nxp.com&gt;
Signed-off-by: Shawn Guo &lt;shawnguo@kernel.org&gt;
</content>
</entry>
<entry>
<title>soc: imx: add i.MX8M blk-ctrl driver</title>
<updated>2021-10-06T12:13:47Z</updated>
<author>
<name>Lucas Stach</name>
</author>
<published>2021-10-02T00:59:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2684ac05a8c4d2d5c49e6c11eb6206b30a284813'/>
<id>urn:sha1:2684ac05a8c4d2d5c49e6c11eb6206b30a284813</id>
<content type='text'>
This adds a driver for the blk-ctrl blocks found in the i.MX8M* line of
SoCs. The blk-ctrl is a top-level peripheral located in the various *MIX
power domains and interacts with the GPC power controller to provide the
peripherals in the power domain access to the NoC and ensures that those
peripherals are properly reset when their respective power domain is
brought back to life.

Software needs to do different things to make the bus handshake happen
after the GPC *MIX domain is powered up and before it is powered down.
As the requirements are quite different between the various blk-ctrls
there is a callback function provided to hook in the proper sequence.

The peripheral domains are quite uniform, they handle the soft clock
enables and resets in the blk-ctrl address space and sequencing with the
upstream GPC power domains.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Acked-by: Frieder Schrempf &lt;frieder.schrempf@kontron.de&gt;
Reviewed-by: Philipp Zabel &lt;p.zabel@pengutronix.de&gt;
Signed-off-by: Shawn Guo &lt;shawnguo@kernel.org&gt;
</content>
</entry>
<entry>
<title>soc: imx: gpcv2: support system suspend/resume</title>
<updated>2021-10-06T12:13:45Z</updated>
<author>
<name>Lucas Stach</name>
</author>
<published>2021-10-02T00:59:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da4112230f86558f7d3b2cb261e71160e4f88849'/>
<id>urn:sha1:da4112230f86558f7d3b2cb261e71160e4f88849</id>
<content type='text'>
Our usage of runtime PM to control the hierarchy of power domains is
slightly unusual and means that powering up a domain may fail in early
system resume, as runtime PM is still disallowed at this stage.

However the system suspend/resume path takes care of powering down/up
the power domains in the order defined by the device parent/child and
power-domain provider/consumer hierarachy. So we can just runtime
resume all our power-domain devices to allow the power-up to work
properly in the resume path. System suspend will still disable all
domains as intended.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Acked-by: Peng Fan &lt;peng.fan@nxp.com&gt;
Signed-off-by: Shawn Guo &lt;shawnguo@kernel.org&gt;
</content>
</entry>
<entry>
<title>soc: imx: gpcv2: keep i.MX8M* bus clocks enabled</title>
<updated>2021-10-06T12:13:42Z</updated>
<author>
<name>Lucas Stach</name>
</author>
<published>2021-10-02T00:59:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=656ade7aa42a2c6d08b3c5ddff074b54d025ccc2'/>
<id>urn:sha1:656ade7aa42a2c6d08b3c5ddff074b54d025ccc2</id>
<content type='text'>
Annotate the domains with bus clocks to keep those clocks enabled
as long as the domain is active.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Reviewed-by: Peng Fan &lt;peng.fan@nxp.com&gt;
Signed-off-by: Shawn Guo &lt;shawnguo@kernel.org&gt;
</content>
</entry>
</feed>
