<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/drivers/gpu/drm/tidss/tidss_dispc.h, branch docs-fixes</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=docs-fixes</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=docs-fixes'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2025-11-12T09:52:40+00:00</updated>
<entry>
<title>drm/tidss: Remove max_pclk_khz and min_pclk_khz from tidss display features</title>
<updated>2025-11-12T09:52:40+00:00</updated>
<author>
<name>Jayesh Choudhary</name>
<email>j-choudhary@ti.com</email>
</author>
<published>2025-11-04T15:14:21+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=527e132573dfa793818a536b18eec49598a6f6f5'/>
<id>urn:sha1:527e132573dfa793818a536b18eec49598a6f6f5</id>
<content type='text'>
The TIDSS hardware does not have independent maximum or minimum pixel
clock limits for each video port. Instead, these limits are determined
by the SoC's clock architecture. Previously, this constraint was
modeled using the 'max_pclk_khz' and 'min_pclk_khz' fields in
'dispc_features', but this approach is static and does not account for
the dynamic behavior of PLLs.

This patch removes the 'max_pclk_khz' and 'min_pclk_khz' fields from
'dispc_features'. The correct way to check if a requested mode's pixel
clock is supported is by using 'clk_round_rate()' in the 'mode_valid()'
hook. If the best frequency match for the mode clock falls within the
supported tolerance, it is approved. TIDSS supports a 5% pixel clock
tolerance, which is now reflected in the validation logic.

This change allows existing DSS-compatible drivers to be reused across
SoCs that only differ in their pixel clock characteristics. The
validation uses 'clk_round_rate()' for each mode, which may introduce
additional delay (about 3.5 ms for 30 modes), but this is generally
negligible. Users desiring faster validation may bypass these calls
selectively, for example, checking only the highest resolution mode,
as shown here[1].

[1]: https://lore.kernel.org/all/20250704094851.182131-3-j-choudhary@ti.com/

Tested-by: Michael Walle &lt;mwalle@kernel.org&gt;
Reviewed-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
Reviewed-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Signed-off-by: Jayesh Choudhary &lt;j-choudhary@ti.com&gt;
Signed-off-by: Swamil Jain &lt;s-jain1@ti.com&gt;
Link: https://patch.msgid.link/20251104151422.307162-2-s-jain1@ti.com
[Tomi: dropped 'inline' from check_pixel_clock]
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</content>
</entry>
<entry>
<title>drm/tidss: Restructure dispc_vp_prepare() and dispc_vp_enable()</title>
<updated>2025-10-31T14:56:05+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2025-09-05T13:58:06+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=6939508c905b967b3d0de7467424dd47f95f0da6'/>
<id>urn:sha1:6939508c905b967b3d0de7467424dd47f95f0da6</id>
<content type='text'>
tidss_crtc.c calls dispc_vp_prepare() and dispc_vp_enable() in that
order, next to each other. dispc_vp_prepare() does preparations for
enabling the crtc, by writing some registers, and dispc_vp_enable() does
more preparations. As the last thing, dispc_vp_enable() enables the CRTC
by writing the enable bit.

There might have been a reason at some point in the history for this
split, but I can't find any point to it. They also do a bit of
overlapping work: both call dispc_vp_find_bus_fmt(). They could as well
be a single function.

But instead of combining them, this patch moves everything from
dispc_vp_enable() to dispc_vp_prepare(), except the actual CRTC enable
bit write. The reason for this is that unlike all the preparatory
register writes, CRTC enable has an immediate effect, starting the
timing generator and the CRTC as a whole. Thus it may be important to
time the enable just right (as we do in the next patch).

No functional changes.

Reviewed-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
Link: https://patch.msgid.link/20250905-tidss-fix-timestamp-v1-1-c2aedf31e2c9@ideasonboard.com
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</content>
</entry>
<entry>
<title>drm/tidss: Fix missing includes and struct decls</title>
<updated>2025-08-13T07:20:37+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2025-07-23T10:05:08+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=f7e831db2d021a6e27ab6a89d4ca42613db2dc8b'/>
<id>urn:sha1:f7e831db2d021a6e27ab6a89d4ca42613db2dc8b</id>
<content type='text'>
Fix missing includes and struct declarations. Even if these don't cause
any compile issues at the moment, it's good to have them correct.

Reviewed-by: Aradhya Bhatia &lt;aradhya.bhatia@linux.dev&gt;
Tested-by: Parth Pancholi &lt;parth.pancholi@toradex.com&gt;
Tested-by: Jayesh Choudhary &lt;j-choudhary@ti.com&gt;
Reviewed-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
Link: https://lore.kernel.org/r/20250723-cdns-dsi-impro-v5-2-e61cc06074c2@ideasonboard.com
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</content>
</entry>
<entry>
<title>drm/tidss: Add OLDI bridge support</title>
<updated>2025-06-26T09:37:24+00:00</updated>
<author>
<name>Aradhya Bhatia</name>
<email>a-bhatia1@ti.com</email>
</author>
<published>2025-05-28T12:25:44+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=7246e092994556ccfef39f7d3a7cbecdedddc3ad'/>
<id>urn:sha1:7246e092994556ccfef39f7d3a7cbecdedddc3ad</id>
<content type='text'>
The AM62x and AM62Px SoCs feature 2 OLDI TXes each, which makes it
possible to connect them in dual-link or cloned single-link OLDI display
modes. The current OLDI support in tidss_dispc.c can only support for
a single OLDI TX, connected to a VP and doesn't really support
configuration of OLDIs in the other modes. The current OLDI support in
tidss_dispc.c also works on the principle that the OLDI output can only
be served by one, and only one, DSS video-port. This isn't the case in
the AM62Px SoC, where there are 2 DSS controllers present that share the
OLDI TXes.

Having their own devicetree and their own bridge entity will help
support the various display modes and sharing possiblilities of the OLDI
hardware.

For all these reasons, add support for the OLDI TXes as DRM bridges.

Signed-off-by: Aradhya Bhatia &lt;a-bhatia1@ti.com&gt;
Signed-off-by: Aradhya Bhatia &lt;aradhya.bhatia@linux.dev&gt;
Tested-by: Michael Walle &lt;mwalle@kernel.org&gt; # on am67a
Reviewed-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://lore.kernel.org/r/20250528122544.817829-5-aradhya.bhatia@linux.dev
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</content>
</entry>
<entry>
<title>drm/tidss: Mark AM65x OLDI code separately</title>
<updated>2025-06-26T09:37:20+00:00</updated>
<author>
<name>Aradhya Bhatia</name>
<email>aradhya.bhatia@linux.dev</email>
</author>
<published>2025-05-28T12:25:43+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=d18bf71253c58bd9de8314896e5acf368eba36dc'/>
<id>urn:sha1:d18bf71253c58bd9de8314896e5acf368eba36dc</id>
<content type='text'>
The dss dt schema and the tidss driver have kept the single-link OLDI in
AM65x integrated with the parent video-port (VP) from DSS (as the OLDI
configuration happens from the source VP only).
To help configure the dual-lvds modes that the OLDI has to offer in
devices AM62x and later, a new OLDI bridge driver will be introduced.

Mark the existing OLDI code separately by renaming all the current OLDI
identifiers with the 'AM65X_' prefix in tidss driver, to help
distinguish from the upcoming OLDI bridge driver.

Reviewed-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Signed-off-by: Aradhya Bhatia &lt;aradhya.bhatia@linux.dev&gt;
Link: https://lore.kernel.org/r/20250528122544.817829-4-aradhya.bhatia@linux.dev
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</content>
</entry>
<entry>
<title>drm/tidss: Add support for AM62L display subsystem</title>
<updated>2025-05-20T11:43:56+00:00</updated>
<author>
<name>Devarsh Thakkar</name>
<email>devarsht@ti.com</email>
</author>
<published>2025-05-07T18:06:31+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=46a7c081be700d802741f26d2e9acf1861ee88f1'/>
<id>urn:sha1:46a7c081be700d802741f26d2e9acf1861ee88f1</id>
<content type='text'>
Enable display for AM62L DSS [1] which supports only a single display
pipeline using a single overlay manager, single video port and a single
video lite pipeline which does not support scaling.

The output of video port is routed to SoC boundary via DPI interface and
the DPI signals from the video port are also routed to DSI Tx controller
present within the SoC.

[1]: Section 11.7 (Display Subsystem and Peripherals)
Link : https://www.ti.com/lit/pdf/sprujb4

Signed-off-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
Reviewed-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://lore.kernel.org/r/20250507180631.874930-4-devarsht@ti.com
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</content>
</entry>
<entry>
<title>drm/tidss: Update infrastructure to support K3 DSS cut-down versions</title>
<updated>2025-05-20T11:43:56+00:00</updated>
<author>
<name>Devarsh Thakkar</name>
<email>devarsht@ti.com</email>
</author>
<published>2025-05-07T18:06:30+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=e019f515c969cef78187b9cb87c6da06b47568b2'/>
<id>urn:sha1:e019f515c969cef78187b9cb87c6da06b47568b2</id>
<content type='text'>
SoCs like AM62Lx support cut-down version of K3 DSS where although same
register space is supported as in other K3 DSS supported SoCs such as
AM65x, AM62x, AM62Ax but some of the resources such as planes and
corresponding register spaces are truncated.

For e.g. AM62Lx has only single VIDL pipeline supported, so corresponding
register spaces for other video pipelines need to be skipped.

To add a generic support for future SoCs where one or more video pipelines
can get truncated from the parent register space, move the video plane
related information to vid_info struct which will also have a field to
indicate hardware index of each of the available video planes, so that
driver only maps and programs those video pipes and skips the unavailable
ones.

While at it, also change the num_planes field in the features structure to
num_vid so that all places in code which use vid_info structure are
highlighted in the code.

Signed-off-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
Reviewed-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://lore.kernel.org/r/20250507180631.874930-3-devarsht@ti.com
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</content>
</entry>
<entry>
<title>drm/tidss: Add support for AM62A7 DSS</title>
<updated>2023-12-01T10:04:37+00:00</updated>
<author>
<name>Aradhya Bhatia</name>
<email>a-bhatia1@ti.com</email>
</author>
<published>2023-11-08T17:16:19+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=5cc5ea7b6d7b0649b74df1e0f2d1875e683704d9'/>
<id>urn:sha1:5cc5ea7b6d7b0649b74df1e0f2d1875e683704d9</id>
<content type='text'>
Add support for the DSS controller on TI's AM62A7 SoC in the tidss
driver.

This controller has 2 video pipelines that can render 2 video planes on
over a screen, using the overlay managers. The output of the DSS comes
from video port 2 (VP2) in the form of RGB88 DPI signals, while the VP1
is tied off inside the SoC.

Also add and use a new type of VP, DISPC_VP_TIED_OFF, for the tied-off
VP1 of AM62A DSS.

Signed-off-by: Aradhya Bhatia &lt;a-bhatia1@ti.com&gt;
Reviewed-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://lore.kernel.org/r/20231108171619.978438-3-a-bhatia1@ti.com
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</content>
</entry>
<entry>
<title>drm/tidss: Add support for AM625 DSS</title>
<updated>2023-06-19T08:30:12+00:00</updated>
<author>
<name>Aradhya Bhatia</name>
<email>a-bhatia1@ti.com</email>
</author>
<published>2023-06-16T15:09:00+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=ad2ac9dc94262ebaa46bfd82b7b4ed8e366e9a44'/>
<id>urn:sha1:ad2ac9dc94262ebaa46bfd82b7b4ed8e366e9a44</id>
<content type='text'>
Add support for the DSS controller on TI's AM625 SoC in the tidss
driver.

The AM625 DSS supports 2 video planes connecting to 2 video ports.
The first plane is a full plane supporting all the features, while the
2nd plane is a "lite" plane without scaling support.

The first video port in AM625 DSS internally provides DPI output to 2
OLDI transmitters. Each OLDI TX outputs 4 differential lanes of video
output and 1 of clock output.

This patch does not automatically enable the OLDI features of AM625 yet.
That support for OLDI will be added subsequently.

The second video port outputs DPI data directly out of the SoC. It has
24 data lines and can support a maximum of RGB888 output bus format.

Signed-off-by: Aradhya Bhatia &lt;a-bhatia1@ti.com&gt;
Reviewed-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20230616150900.6617-3-a-bhatia1@ti.com
</content>
</entry>
<entry>
<title>drm/tidss: Remove return values from dispc_plane_{setup, enable}()</title>
<updated>2023-02-20T14:20:45+00:00</updated>
<author>
<name>Thomas Zimmermann</name>
<email>tzimmermann@suse.de</email>
</author>
<published>2023-02-09T15:41:06+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=e1174133a4682d7afe169c74bfad8ed390e818c3'/>
<id>urn:sha1:e1174133a4682d7afe169c74bfad8ed390e818c3</id>
<content type='text'>
Calls to dispc_plane_setup() and dispc_plane_enable() cannot fail.
Remove the return value.

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Reviewed-by: Javier Martinez Canillas &lt;javierm@redhat.com&gt;
Reviewed-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20230209154107.30680-6-tzimmermann@suse.de
</content>
</entry>
</feed>
