summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/task-analyzer.py
diff options
context:
space:
mode:
authorIvan Lipski <ivan.lipski@amd.com>2026-09-10 15:44:20 -0400
committerAlex Deucher <alexander.deucher@amd.com>2026-09-23 14:18:16 -0400
commitc66847b01c5d8e8b2eb24b4370a277f557a74218 (patch)
tree6bde3df2e2e74e3019faf2b3b85d64bede0b57da /tools/perf/scripts/python/task-analyzer.py
parentad1f4faa76d4aee438e89993403a8f6f67ed9431 (diff)
downloadlinux-c66847b01c5d8e8b2eb24b4370a277f557a74218.tar.gz
linux-c66847b01c5d8e8b2eb24b4370a277f557a74218.zip
drm/amd/display: Resync cursor cache after offload abort on DCN60
[Why&How] The cursor programming path caches the last-written cursor state in SW and, for the enable bit, skips the register write when the cache already matches the request. Under cursor offload the SW cache is updated even though the actual register write is deferred to firmware. When an offloaded cursor update is aborted (e.g. an overlay geometry change reprograms the cursor directly in the same frame), the queued firmware write is dropped but the cache is left stale, so the following direct programming pass skips the enable write and the cursor disappears over the overlay plane. Add a refresh_cursor_state() hubp/dpp hook that reads the cursor position and attribute registers back from hardware into the SW cache, and call it from dcn35_abort_cursor_offload_update() so the cache is truthful after an abort. This keeps the enable-change optimization intact for all ASICs and is race-robust regardless of whether firmware applied the queued write before the abort. Only dcn60 (the sole offload user) wires up the hook. Assisted-by: Copilot:Claude-Opus-4.8 Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Signed-off-by: Ivan Lipski <ivan.lipski@amd.com> Signed-off-by: George Zhang <george.zhang@amd.com> Tested-by: Dan Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions