<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/gpu/drm/amd/display/dc/dpp, branch linux-6.16.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.16.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.16.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-09-09T17:02:33Z</updated>
<entry>
<title>drm/amd/display: Clear the CUR_ENABLE register on DCN314 w/out DPP PG</title>
<updated>2025-09-09T17:02:33Z</updated>
<author>
<name>Ivan Lipski</name>
</author>
<published>2025-08-20T19:46:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6c6eaa2686d054a0ee8ddda9fa21d081dc6af7be'/>
<id>urn:sha1:6c6eaa2686d054a0ee8ddda9fa21d081dc6af7be</id>
<content type='text'>
commit 3ebf766c35464ebdeefb6068246267147503dc04 upstream.

[Why&amp;How]
ON DCN314, clearing DPP SW structure without power gating it can cause a
double cursor in full screen with non-native scaling.

A W/A that clears CURSOR0_CONTROL cursor_enable flag if
dcn10_plane_atomic_power_down is called and DPP power gating is disabled.

Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4168
Reviewed-by: Sun peng (Leo) Li &lt;sunpeng.li@amd.com&gt;
Signed-off-by: Ivan Lipski &lt;ivan.lipski@amd.com&gt;
Signed-off-by: Alex Hung &lt;alex.hung@amd.com&gt;
Tested-by: Dan Wheeler &lt;daniel.wheeler@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
(cherry picked from commit 645f74f1dc119dad5a2c7bbc05cc315e76883011)
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Revert "drm/amd/display: Hardware cursor changes color when switched to software cursor"</title>
<updated>2025-05-14T15:27:09Z</updated>
<author>
<name>Melissa Wen</name>
</author>
<published>2025-04-22T14:58:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f6a305d4748801a6c799ae9375b2ecff3aed094b'/>
<id>urn:sha1:f6a305d4748801a6c799ae9375b2ecff3aed094b</id>
<content type='text'>
This reverts commit 272e6aab14bbf98d7a06b2b1cd6308a02d4a10a1.

Applying degamma curve to the cursor by default breaks Linux userspace
expectation.

On Linux, AMD display manager enables cursor degamma ROM just for
implict sRGB on HW versions where degamma is split into two blocks:
degamma ROM for pre-defined TFs and `gamma correction` for user/custom
curves, and degamma ROM settings doesn't apply to cursor plane.

Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1513
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2803
Reported-by: Michel Dänzer &lt;michel.daenzer@mailbox.org&gt;
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4144
Signed-off-by: Melissa Wen &lt;mwen@igalia.com&gt;
Reviewed-by: Alex Hung &lt;alex.hung@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/amd/display: Update IPS sequential_ono requirement checks</title>
<updated>2025-05-05T16:54:12Z</updated>
<author>
<name>Ovidiu Bunea</name>
</author>
<published>2025-04-10T15:00:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b4db797117ceba88ba405a080811369418104304'/>
<id>urn:sha1:b4db797117ceba88ba405a080811369418104304</id>
<content type='text'>
[why &amp; how]
ASICs that require special RCG/PG programming are determined based
on hw_internal_rev. Update these checks to properly include all such
ASICs.

Reviewed-by: Nicholas Kazlauskas &lt;nicholas.kazlauskas@amd.com&gt;
Signed-off-by: Ovidiu Bunea &lt;Ovidiu.Bunea@amd.com&gt;
Signed-off-by: Ray Wu &lt;ray.wu@amd.com&gt;
Tested-by: Daniel Wheeler &lt;daniel.wheeler@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/amd/display: Remove double checks for `debug.enable_mem_low_power.bits.cm`</title>
<updated>2025-04-07T22:01:07Z</updated>
<author>
<name>Mario Limonciello</name>
</author>
<published>2024-12-04T20:27:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=33056a97ae5e1ff37535d70cbe5dcf1bbc70f20d'/>
<id>urn:sha1:33056a97ae5e1ff37535d70cbe5dcf1bbc70f20d</id>
<content type='text'>
[Why]
A variety of the 3DLUT handling functions check
`debug.enable_mem_low_power.bits.cm` both in the caller and function.
This is unnecessary overhead.

[How]
For each of them reduce to just checking just in caller or function.

Reviewed-by: Alex Hung &lt;alex.hung@amd.com&gt;
Signed-off-by: Mario Limonciello &lt;mario.limonciello@amd.com&gt;
Signed-off-by: Roman Li &lt;roman.li@amd.com&gt;
Tested-by: Daniel Wheeler &lt;daniel.wheeler@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/amd/display: handle max_downscale_src_width fail check</title>
<updated>2025-02-25T16:45:11Z</updated>
<author>
<name>Yihan Zhu</name>
</author>
<published>2025-02-12T20:17:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=02a940da2ccc0cc0299811379580852b405a0ea2'/>
<id>urn:sha1:02a940da2ccc0cc0299811379580852b405a0ea2</id>
<content type='text'>
[WHY]
If max_downscale_src_width check fails, we exit early from TAP calculation and left a NULL
value to the scaling data structure to cause the zero divide in the DML validation.

[HOW]
Call set default TAP calculation before early exit in get_optimal_number_of_taps due to
max downscale limit exceed.

Reviewed-by: Samson Tam &lt;samson.tam@amd.com&gt;
Signed-off-by: Yihan Zhu &lt;Yihan.Zhu@amd.com&gt;
Signed-off-by: Zaeem Mohamed &lt;zaeem.mohamed@amd.com&gt;
Tested-by: Daniel Wheeler &lt;daniel.wheeler@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/amd/display: Refactor DCN4x and related code</title>
<updated>2025-02-25T16:44:02Z</updated>
<author>
<name>Patel, Swapnil</name>
</author>
<published>2025-02-09T16:42:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=02a2793ab27e3aa3f345f4e7761005e5c9e3ebd4'/>
<id>urn:sha1:02a2793ab27e3aa3f345f4e7761005e5c9e3ebd4</id>
<content type='text'>
[why &amp; how]
Refactor existing code related to DCN4x for better code sharing with
other modules.

Reviewed-by: Charlene Liu &lt;charlene.liu@amd.com&gt;
Signed-off-by: Swapnil Patel &lt;Swapnil.Patel@amd.com&gt;
Signed-off-by: Zaeem Mohamed &lt;zaeem.mohamed@amd.com&gt;
Tested-by: Daniel Wheeler &lt;daniel.wheeler@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/amd/display: Move SPL to a new path</title>
<updated>2025-02-13T02:03:01Z</updated>
<author>
<name>Samson Tam</name>
</author>
<published>2025-01-23T19:36:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5c06c1df3582102e837dc7d6e8a462323277e57b'/>
<id>urn:sha1:5c06c1df3582102e837dc7d6e8a462323277e57b</id>
<content type='text'>
[WHY &amp; HOW]
- Move SPL from dc/spl to dc/sspl
- Update build files and header paths
- Remove dc/spl files

Reviewed-by: George Zhang &lt;george.zhang@amd.com&gt;
Signed-off-by: Samson Tam &lt;Samson.Tam@amd.com&gt;
Signed-off-by: Alex Hung &lt;alex.hung@amd.com&gt;
Tested-by: Daniel Wheeler &lt;daniel.wheeler@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/amd/display: Optimize cursor position updates</title>
<updated>2025-01-24T14:56:28Z</updated>
<author>
<name>Aric Cyr</name>
</author>
<published>2024-12-10T23:38:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=024771f3fb75dc817e9429d5763f1a6eb84b6f21'/>
<id>urn:sha1:024771f3fb75dc817e9429d5763f1a6eb84b6f21</id>
<content type='text'>
[why]
Updating the cursor enablement register can be a slow operation and accumulates
when high polling rate cursors cause frequent updates asynchronously to the
cursor position.

[how]
Since the cursor enable bit is cached there is no need to update the
enablement register if there is no change to it.  This removes the
read-modify-write from the cursor position programming path in HUBP and
DPP, leaving only the register writes.

Cc: Mario Limonciello &lt;mario.limonciello@amd.com&gt;
Cc: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: stable@vger.kernel.org
Reviewed-by: Sung Lee &lt;sung.lee@amd.com&gt;
Signed-off-by: Aric Cyr &lt;Aric.Cyr@amd.com&gt;
Signed-off-by: Wayne Lin &lt;wayne.lin@amd.com&gt;
Tested-by: Daniel Wheeler &lt;daniel.wheeler@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/amd/display: Add hubp cache reset when powergating</title>
<updated>2025-01-24T14:56:22Z</updated>
<author>
<name>Aric Cyr</name>
</author>
<published>2025-01-09T20:03:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=01130f5260e5868fb6b15ab8c00dbc894139f48e'/>
<id>urn:sha1:01130f5260e5868fb6b15ab8c00dbc894139f48e</id>
<content type='text'>
[Why]
When HUBP is power gated, the SW state can get out of sync with the
hardware state causing cursor to not be programmed correctly.

[How]
Similar to DPP, add a HUBP reset function which is called wherever
HUBP is initialized or powergated.  This function will clear the cursor
position and attribute cache allowing for proper programming when the
HUBP is brought back up.

Cc: Mario Limonciello &lt;mario.limonciello@amd.com&gt;
Cc: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: stable@vger.kernel.org
Reviewed-by: Sung Lee &lt;sung.lee@amd.com&gt;
Signed-off-by: Aric Cyr &lt;Aric.Cyr@amd.com&gt;
Signed-off-by: Wayne Lin &lt;wayne.lin@amd.com&gt;
Tested-by: Daniel Wheeler &lt;daniel.wheeler@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/amd/display: store sharpness 1dlut table in dscl_prog_data</title>
<updated>2024-10-28T20:37:02Z</updated>
<author>
<name>Samson Tam</name>
</author>
<published>2024-10-18T04:26:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f3928f3d481920c748328192ec2ed4ab5d125d6b'/>
<id>urn:sha1:f3928f3d481920c748328192ec2ed4ab5d125d6b</id>
<content type='text'>
[Why]
Previously dscl_prog_data stored pointer to sharpness 1dlut table.
SPL had four pre-generated tables, one for each setup. This allowed
us to minimize number of times we had to recalculate table when
switching between setups.
However, with dual display, this becomes an issue because for a given
setup, we could have a different per app sharpness value than the
global sharpness value. So the pre-generated table will change
but both displays may point to the same table and one of them
will have the wrong sharpness setting.

[How]
Store the sharpness 1dlut table in dscl_prog_data. This ensures
that each display can have its own sharpness setting.

Reviewed-by: Ilya Bakoulin &lt;ilya.bakoulin@amd.com&gt;
Signed-off-by: Samson Tam &lt;Samson.Tam@amd.com&gt;
Signed-off-by: Tom Chung &lt;chiahsuan.chung@amd.com&gt;
Tested-by: Daniel Wheeler &lt;daniel.wheeler@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
</feed>
