|
Revision tags: v6.15 |
|
| #
7e7cb7a1 |
| 22-May-2025 |
Mario Limonciello <[email protected]> |
Revert "drm/amd: Keep display off while going into S4"
commit 68bfdc8dc0a1a ("drm/amd: Keep display off while going into S4") attempted to keep displays off during the S4 sequence by not resuming di
Revert "drm/amd: Keep display off while going into S4"
commit 68bfdc8dc0a1a ("drm/amd: Keep display off while going into S4") attempted to keep displays off during the S4 sequence by not resuming display IP. This however leads to hangs because DRM clients such as the console can try to access registers and cause a hang.
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4155 Fixes: 68bfdc8dc0a1a ("drm/amd: Keep display off while going into S4") Reviewed-by: Alex Deucher <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit e485502c37b097b0bd773baa7e2741bf7bd2909a) Cc: [email protected]
show more ...
|
|
Revision tags: v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3 |
|
| #
874697e1 |
| 16-Apr-2025 |
John Olender <[email protected]> |
drm/amd/display: Defer BW-optimization-blocked DRR adjustments
[Why & How] Instead of dropping DRR updates, defer them. This fixes issues where monitor continues to see incorrect refresh rate after
drm/amd/display: Defer BW-optimization-blocked DRR adjustments
[Why & How] Instead of dropping DRR updates, defer them. This fixes issues where monitor continues to see incorrect refresh rate after VRR was turned off by userspace.
Fixes: 32953485c558 ("drm/amd/display: Do not update DRR while BW optimizations pending") Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3546 Reviewed-by: Sun peng Li <[email protected]> Signed-off-by: John Olender <[email protected]> Signed-off-by: Aurabindo Pillai <[email protected]> Signed-off-by: Ray Wu <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 53761b7ecd83e6fbb9f2206f8c980a6aa308c844) Cc: [email protected]
show more ...
|
| #
d4339813 |
| 25-Apr-2025 |
Wayne Lin <[email protected]> |
drm/amd/display: Correct the reply value when AUX write incomplete
[Why] Now forcing aux->transfer to return 0 when incomplete AUX write is inappropriate. It should return bytes have been transferre
drm/amd/display: Correct the reply value when AUX write incomplete
[Why] Now forcing aux->transfer to return 0 when incomplete AUX write is inappropriate. It should return bytes have been transferred.
[How] aux->transfer is asked not to change original msg except reply field of drm_dp_aux_msg structure. Copy the msg->buffer when it's write request, and overwrite the first byte when sink reply 1 byte indicating partially written byte number. Then we can return the correct value without changing the original msg.
Fixes: 3637e457eb00 ("drm/amd/display: Fix wrong handling for AUX_DEFER case") Cc: Mario Limonciello <[email protected]> Cc: Alex Deucher <[email protected]> Reviewed-by: Ray Wu <[email protected]> Signed-off-by: Wayne Lin <[email protected]> Signed-off-by: Ray Wu <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 7ac37f0dcd2e0b729fa7b5513908dc8ab802b540) Cc: [email protected]
show more ...
|
| #
3924f45d |
| 20-Apr-2025 |
Wayne Lin <[email protected]> |
drm/amd/display: Copy AUX read reply data whenever length > 0
[Why] amdgpu_dm_process_dmub_aux_transfer_sync() should return all exact data reply from the sink side. Don't do the analysis job in it.
drm/amd/display: Copy AUX read reply data whenever length > 0
[Why] amdgpu_dm_process_dmub_aux_transfer_sync() should return all exact data reply from the sink side. Don't do the analysis job in it.
[How] Remove unnecessary check condition AUX_TRANSACTION_REPLY_AUX_ACK.
Fixes: ead08b95fa50 ("drm/amd/display: Fix race condition in DPIA AUX transfer") Cc: Mario Limonciello <[email protected]> Cc: Alex Deucher <[email protected]> Reviewed-by: Ray Wu <[email protected]> Signed-off-by: Wayne Lin <[email protected]> Signed-off-by: Ray Wu <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 9b540e3fe6796fec4fb1344f3be8952fc2f084d4) Cc: [email protected]
show more ...
|
| #
396dc51b |
| 20-Apr-2025 |
Wayne Lin <[email protected]> |
drm/amd/display: Remove incorrect checking in dmub aux handler
[Why & How] "Request length != reply length" is expected behavior defined in spec. It's not an invalid reply. Besides, replied data han
drm/amd/display: Remove incorrect checking in dmub aux handler
[Why & How] "Request length != reply length" is expected behavior defined in spec. It's not an invalid reply. Besides, replied data handling logic is not designed to be written in amdgpu_dm_process_dmub_aux_transfer_sync(). Remove the incorrectly handling section.
Fixes: ead08b95fa50 ("drm/amd/display: Fix race condition in DPIA AUX transfer") Cc: Mario Limonciello <[email protected]> Cc: Alex Deucher <[email protected]> Reviewed-by: Ray Wu <[email protected]> Signed-off-by: Wayne Lin <[email protected]> Signed-off-by: Ray Wu <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 81b5c6fa62af62fe89ae9576f41aae37830b94cb) Cc: [email protected]
show more ...
|
| #
bc70e11b |
| 20-Apr-2025 |
Wayne Lin <[email protected]> |
drm/amd/display: Fix the checking condition in dmub aux handling
[Why & How] Fix the checking condition for detecting AUX_RET_ERROR_PROTOCOL_ERROR. It was wrongly checking by "not equals to"
Review
drm/amd/display: Fix the checking condition in dmub aux handling
[Why & How] Fix the checking condition for detecting AUX_RET_ERROR_PROTOCOL_ERROR. It was wrongly checking by "not equals to"
Reviewed-by: Ray Wu <[email protected]> Signed-off-by: Wayne Lin <[email protected]> Signed-off-by: Ray Wu <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 1db6c9e9b62e1a8912f0a281c941099fca678da3) Cc: [email protected]
show more ...
|
| #
5a384664 |
| 18-Apr-2025 |
Wayne Lin <[email protected]> |
drm/amd/display: Shift DMUB AUX reply command if necessary
[Why] Defined value of dmub AUX reply command field get updated but didn't adjust dm receiving side accordingly.
[How] Check the received
drm/amd/display: Shift DMUB AUX reply command if necessary
[Why] Defined value of dmub AUX reply command field get updated but didn't adjust dm receiving side accordingly.
[How] Check the received reply command value to see if it's updated version or not. Adjust it if necessary.
Fixes: ead08b95fa50 ("drm/amd/display: Fix race condition in DPIA AUX transfer") Cc: Mario Limonciello <[email protected]> Cc: Alex Deucher <[email protected]> Reviewed-by: Ray Wu <[email protected]> Signed-off-by: Wayne Lin <[email protected]> Signed-off-by: Ray Wu <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit d5c9ade755a9afa210840708a12a8f44c0d532f4) Cc: [email protected]
show more ...
|
| #
f1c6be39 |
| 16-Apr-2025 |
Aurabindo Pillai <[email protected]> |
drm/amd/display: more liberal vmin/vmax update for freesync
[Why] FAMS2 expects vmin/vmax to be updated in the case when freesync is off, but supported. But we only update it when freesync is enable
drm/amd/display: more liberal vmin/vmax update for freesync
[Why] FAMS2 expects vmin/vmax to be updated in the case when freesync is off, but supported. But we only update it when freesync is enabled.
[How] Change the vsync handler such that dc_stream_adjust_vmin_vmax() its called irrespective of whether freesync is enabled. If freesync is supported, then there is no harm in updating vmin/vmax registers.
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3546 Reviewed-by: ChiaHsuan Chung <[email protected]> Signed-off-by: Aurabindo Pillai <[email protected]> Signed-off-by: Ray Wu <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit cfb2d41831ee5647a4ae0ea7c24971a92d5dfa0d) Cc: [email protected]
show more ...
|
|
Revision tags: v6.15-rc2, v6.15-rc1 |
|
| #
b316727a |
| 02-Apr-2025 |
Gergo Koteles <[email protected]> |
drm/amd/display: do not copy invalid CRTC timing info
Since b255ce4388e0, it is possible that the CRTC timing information for the preferred mode has not yet been calculated while amdgpu_dm_connector
drm/amd/display: do not copy invalid CRTC timing info
Since b255ce4388e0, it is possible that the CRTC timing information for the preferred mode has not yet been calculated while amdgpu_dm_connector_mode_valid() is running.
In this case use the CRTC timing information of the actual mode.
Fixes: b255ce4388e0 ("drm/amdgpu: don't change mode in amdgpu_dm_connector_mode_valid()") Closes: https://lore.kernel.org/all/[email protected]/ Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4085 Signed-off-by: Gergo Koteles <[email protected]> Reviewed-by: Zaeem Mohamed <[email protected]> Tested-by: Mark Broadworth <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 20232192a5044d1f66dcbef0a24de1bb8157738d) Cc: [email protected]
show more ...
|
|
Revision tags: v6.14 |
|
| #
6ed0dc3f |
| 18-Mar-2025 |
Leo Li <[email protected]> |
drm/amd/display: Default IPS to RCG_IN_ACTIVE_IPS2_IN_OFF
[Why]
Recent findings show negligible power savings between IPS2 and RCG during static desktop. In fact, DCN related clocks are higher when
drm/amd/display: Default IPS to RCG_IN_ACTIVE_IPS2_IN_OFF
[Why]
Recent findings show negligible power savings between IPS2 and RCG during static desktop. In fact, DCN related clocks are higher when IPS2 is enabled vs RCG.
RCG_IN_ACTIVE is also the default policy for another OS supported by DC, and it has faster entry/exit.
[How]
Remove previous logic that checked for IPS2 support, and just default to `DMUB_IPS_RCG_IN_ACTIVE_IPS2_IN_OFF`.
Fixes: 199888aa25b3 ("drm/amd/display: Update IPS default mode for DCN35/DCN351") Reviewed-by: Aurabindo Pillai <[email protected]> Signed-off-by: Leo Li <[email protected]> Signed-off-by: Zaeem Mohamed <[email protected]> Tested-by: Mark Broadworth <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 8f772d79ef39b463ead00ef6f009bebada3a9d49) Cc: [email protected]
show more ...
|
| #
67fe5746 |
| 26-Mar-2025 |
Roman Li <[email protected]> |
drm/amd/display: Force full update in gpu reset
[Why] While system undergoing gpu reset always do full update to sync the dc state before and after reset.
[How] Return true in should_reset_plane()
drm/amd/display: Force full update in gpu reset
[Why] While system undergoing gpu reset always do full update to sync the dc state before and after reset.
[How] Return true in should_reset_plane() if gpu reset detected
Reviewed-by: Aurabindo Pillai <[email protected]> Reviewed-by: Mario Limonciello <[email protected]> Signed-off-by: Roman Li <[email protected]> Signed-off-by: Zaeem Mohamed <[email protected]> Tested-by: Mark Broadworth <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 2ba8619b9a378ad218ad6c2e2ccaee8f531e08de) Cc: [email protected]
show more ...
|
| #
7eb287be |
| 01-Apr-2025 |
Roman Li <[email protected]> |
drm/amd/display: Fix gpu reset in multidisplay config
[Why] The indexing of stream_status in dm_gpureset_commit_state() is incorrect. That leads to asserts in multi-display configuration after gpu r
drm/amd/display: Fix gpu reset in multidisplay config
[Why] The indexing of stream_status in dm_gpureset_commit_state() is incorrect. That leads to asserts in multi-display configuration after gpu reset.
[How] Adjust the indexing logic to align stream_status with surface_updates.
Fixes: cdaae8371aa9 ("drm/amd/display: Handle GPU reset for DC block") Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3808 Reviewed-by: Aurabindo Pillai <[email protected]> Reviewed-by: Mario Limonciello <[email protected]> Signed-off-by: Roman Li <[email protected]> Signed-off-by: Zaeem Mohamed <[email protected]> Tested-by: Mark Broadworth <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit d91bc901398741d317d9b55c59ca949d4bc7394b) Cc: [email protected]
show more ...
|
| #
1c5fdef3 |
| 27-Mar-2025 |
Mario Limonciello <[email protected]> |
drm/amd/display: Add HP Elitebook 645 to the quirk list for eDP on DP1
[Why] HP Elitebook 645 has DP0 and DP1 swapped.
[How] Add HP Elitebook 645 to DP0/DP1 swap quirk list.
Cc: [email protected]
drm/amd/display: Add HP Elitebook 645 to the quirk list for eDP on DP1
[Why] HP Elitebook 645 has DP0 and DP1 swapped.
[How] Add HP Elitebook 645 to DP0/DP1 swap quirk list.
Cc: [email protected] Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3701 Reviewed-by: Alex Hung <[email protected]> Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Roman Li <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc7, v6.14-rc6 |
|
| #
139e99d5 |
| 06-Mar-2025 |
Mario Limonciello <[email protected]> |
drm/amd/display: Add HP Probook 445 and 465 to the quirk list for eDP on DP1
[Why] HP Probook 445 and 465 has DP0 and DP1 swapped.
[How] Add HP Probook 445 and 465 to DP0/DP1 swap quirk list.
Cc:
drm/amd/display: Add HP Probook 445 and 465 to the quirk list for eDP on DP1
[Why] HP Probook 445 and 465 has DP0 and DP1 swapped.
[How] Add HP Probook 445 and 465 to DP0/DP1 swap quirk list.
Cc: [email protected] Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3995 Reviewed-by: Alex Hung <[email protected]> Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Roman Li <[email protected]> Tested-by: Anson Tsao <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
show more ...
|
| #
704bc361 |
| 11-Mar-2025 |
Leo Li <[email protected]> |
drm/amd/display: Actually do immediate vblank disable
[Why]
The `vblank_config.offdelay` field follows the same semantics as the `drm_vblank_offdelay` parameter. Setting it to 0 will never disable
drm/amd/display: Actually do immediate vblank disable
[Why]
The `vblank_config.offdelay` field follows the same semantics as the `drm_vblank_offdelay` parameter. Setting it to 0 will never disable vblank.
[How]
Set `offdelay` to a positive number.
Fixes: e45b6716de4b ("drm/amd/display: use a more lax vblank enable policy for DCN35+") Reviewed-by: Harry Wentland <[email protected]> Signed-off-by: Leo Li <[email protected]> Signed-off-by: Aurabindo Pillai <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected]
show more ...
|
| #
f21e6d14 |
| 10-Mar-2025 |
Leo Li <[email protected]> |
drm/amd/display: Increase vblank offdelay for PSR panels
[Why]
Depending on when the HW latching event (vupdate) of double-buffered registers happen relative to the PSR SDP (signals panel psr enter
drm/amd/display: Increase vblank offdelay for PSR panels
[Why]
Depending on when the HW latching event (vupdate) of double-buffered registers happen relative to the PSR SDP (signals panel psr enter/exit) deadline, and how bad the Panel clock has drifted since the last ALPM off event, there can be up to 3 frames of delay between sending the PSR exit cmd to DMUB fw, and when the panel starts displaying live frames. This can manifest as micro-stuttering when userspace commit patterns cause rapid toggling of the DRM vblank counter, since PSR enter/exit is hooked up to DRM vblank disable/enable respectively.
In the ideal world, the panel should present the live frame immediately on PSR exit cmd. But due to HW design and PSR limitations, immediate exit can only happen by chance, when:
1. PSR exit cmd is ack'd by FW before HW latching (vupdate) event, and 2. Panel's SDP deadline -- determined by it's PSR Start Delay in DPCD 71h -- is after the vupdate event. The PSR exit SDP can then be sent immediately after HW latches. Otherwise, we have to wait 1 frame. And 3. There is negligible drift between the panel's clock and source clock. Otherwise, there can be up to 1 frame of drift.
Note that this delay is not expected with Panel Replay.
[How]
Since PSR power savings can be quite substantial, and there are a lot of systems in the wild with PSR panels, It'll be nice to have a middle ground that balances user experience with power savings.
A simple way to achieve this is by extending the vblank offdelay, such that additional PSR exit delays will be less perceivable.
We can set:
20/100 * offdelay_ms = 3_frames_ms => offdelay_ms = 5 * 3_frames_ms
This ensures that `3_frames_ms` will only be experienced as a 20% delay on top how long the panel has been static, and thus make the delay less perceivable.
If this ends up being too high of a percentage, it can be dropped further in a future change.
Fixes: 537ef0f88897 ("drm/amd/display: use new vblank enable policy for DCN35+") Reviewed-by: Harry Wentland <[email protected]> Signed-off-by: Leo Li <[email protected]> Signed-off-by: Aurabindo Pillai <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected]
show more ...
|
| #
35f0f9f4 |
| 05-Mar-2025 |
Yilin Chen <[email protected]> |
drm/amd/display: Fix message for support_edp0_on_dp1
[WHY] The info message was wrong when support_edp0_on_dp1 is enabled
[HOW] Use correct info message for support_edp0_on_dp1
Fixes: f6d17270d18a
drm/amd/display: Fix message for support_edp0_on_dp1
[WHY] The info message was wrong when support_edp0_on_dp1 is enabled
[HOW] Use correct info message for support_edp0_on_dp1
Fixes: f6d17270d18a ("drm/amd/display: add a quirk to enable eDP0 on DP1") Reviewed-by: Aurabindo Pillai <[email protected]> Signed-off-by: Yilin Chen <[email protected]> Signed-off-by: Alex Hung <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 79538e6365c99d7b1c3e560d1ea8d11ef8313465) Cc: [email protected]
show more ...
|
| #
79538e63 |
| 05-Mar-2025 |
Yilin Chen <[email protected]> |
drm/amd/display: Fix message for support_edp0_on_dp1
[WHY] The info message was wrong when support_edp0_on_dp1 is enabled
[HOW] Use correct info message for support_edp0_on_dp1
Fixes: f6d17270d18a
drm/amd/display: Fix message for support_edp0_on_dp1
[WHY] The info message was wrong when support_edp0_on_dp1 is enabled
[HOW] Use correct info message for support_edp0_on_dp1
Fixes: f6d17270d18a ("drm/amd/display: add a quirk to enable eDP0 on DP1") Reviewed-by: Aurabindo Pillai <[email protected]> Signed-off-by: Yilin Chen <[email protected]> Signed-off-by: Alex Hung <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc5, v6.14-rc4 |
|
| #
5760388d |
| 23-Feb-2025 |
Mario Limonciello <[email protected]> |
drm/amd/display: Restore correct backlight brightness after a GPU reset
[Why] GPU reset will attempt to restore cached state, but brightness doesn't get restored. It will come back at 100% brightnes
drm/amd/display: Restore correct backlight brightness after a GPU reset
[Why] GPU reset will attempt to restore cached state, but brightness doesn't get restored. It will come back at 100% brightness, but userspace thinks it's the previous value.
[How] When running resume sequence if GPU is in reset restore brightness to previous value.
Acked-by: Wayne Lin <[email protected]> Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Tom Chung <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 5e19e2b57b6bb640d68dfc7991e1e182922cf867) Cc: [email protected]
show more ...
|
| #
b5a981e1 |
| 23-Feb-2025 |
Mario Limonciello <[email protected]> |
drm/amd/display: fix default brightness
[Why] To avoid flickering during boot default brightness level set by BIOS should be maintained for as much of the boot as feasible. commit 2fe87f54abdc ("drm
drm/amd/display: fix default brightness
[Why] To avoid flickering during boot default brightness level set by BIOS should be maintained for as much of the boot as feasible. commit 2fe87f54abdc ("drm/amd/display: Set default brightness according to ACPI") attempted to set the right levels for AC vs DC, but brightness still got reset to maximum level in initialization code for setup_backlight_device().
[How] Remove the hardcoded initialization in setup_backlight_device() and instead program brightness value to match BIOS (AC or DC). This avoids a brightness flicker from kernel changing the value. Userspace may however still change it during boot.
Fixes: 2fe87f54abdc ("drm/amd/display: Set default brightness according to ACPI") Acked-by: Wayne Lin <[email protected]> Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Tom Chung <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 0747acf3311229e22009bec4a9e7fc30c879e842) Cc: [email protected]
show more ...
|
| #
4afacc99 |
| 06-Mar-2025 |
Mario Limonciello <[email protected]> |
drm/amd: Keep display off while going into S4
When userspace invokes S4 the flow is:
1) amdgpu_pmops_prepare() 2) amdgpu_pmops_freeze() 3) Create hibernation image 4) amdgpu_pmops_thaw() 5) Write o
drm/amd: Keep display off while going into S4
When userspace invokes S4 the flow is:
1) amdgpu_pmops_prepare() 2) amdgpu_pmops_freeze() 3) Create hibernation image 4) amdgpu_pmops_thaw() 5) Write out image to disk 6) Turn off system
Then on resume amdgpu_pmops_restore() is called.
This flow has a problem that because amdgpu_pmops_thaw() is called it will call amdgpu_device_resume() which will resume all of the GPU.
This includes turning the display hardware back on and discovering connectors again.
This is an unexpected experience for the display to turn back on. Adjust the flow so that during the S4 sequence display hardware is not turned back on.
Reported-by: Xaver Hugl <[email protected]> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/2038 Cc: Muhammad Usama Anjum <[email protected]> Tested-by: Muhammad Usama Anjum <[email protected]> Acked-by: Alex Deucher <[email protected]> Acked-by: Harry Wentland <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Alex Deucher <[email protected]> (cherry picked from commit 68bfdc8dc0a1a7fdd9ab61e69907ae71a6fd3d91)
show more ...
|
|
Revision tags: v6.14-rc3 |
|
| #
50e0bae3 |
| 13-Feb-2025 |
Mario Limonciello <[email protected]> |
drm/amd/display: Add and use new dm_prepare_suspend() callback
[Why] The displays currently don't get turned off until after other IP blocks have been suspended. However turning off the displays fi
drm/amd/display: Add and use new dm_prepare_suspend() callback
[Why] The displays currently don't get turned off until after other IP blocks have been suspended. However turning off the displays first gives a very visible response that the system is on it's way down.
[How] Turn off displays in a prepare_suspend() callback instead when possible. This will help for suspend and hibernate sequences. The shutdown sequence however will not call prepare() so check whether the state has been already saved to decide what to do.
Acked-by: Wayne Lin <[email protected]> Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Tom Chung <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
show more ...
|
| #
5e19e2b5 |
| 23-Feb-2025 |
Mario Limonciello <[email protected]> |
drm/amd/display: Restore correct backlight brightness after a GPU reset
[Why] GPU reset will attempt to restore cached state, but brightness doesn't get restored. It will come back at 100% brightnes
drm/amd/display: Restore correct backlight brightness after a GPU reset
[Why] GPU reset will attempt to restore cached state, but brightness doesn't get restored. It will come back at 100% brightness, but userspace thinks it's the previous value.
[How] When running resume sequence if GPU is in reset restore brightness to previous value.
Acked-by: Wayne Lin <[email protected]> Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Tom Chung <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
show more ...
|
| #
0747acf3 |
| 23-Feb-2025 |
Mario Limonciello <[email protected]> |
drm/amd/display: fix default brightness
[Why] To avoid flickering during boot default brightness level set by BIOS should be maintained for as much of the boot as feasible. commit 2fe87f54abdc ("drm
drm/amd/display: fix default brightness
[Why] To avoid flickering during boot default brightness level set by BIOS should be maintained for as much of the boot as feasible. commit 2fe87f54abdc ("drm/amd/display: Set default brightness according to ACPI") attempted to set the right levels for AC vs DC, but brightness still got reset to maximum level in initialization code for setup_backlight_device().
[How] Remove the hardcoded initialization in setup_backlight_device() and instead program brightness value to match BIOS (AC or DC). This avoids a brightness flicker from kernel changing the value. Userspace may however still change it during boot.
Fixes: 2fe87f54abdc ("drm/amd/display: Set default brightness according to ACPI") Acked-by: Wayne Lin <[email protected]> Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Tom Chung <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
show more ...
|
| #
68bfdc8d |
| 06-Mar-2025 |
Mario Limonciello <[email protected]> |
drm/amd: Keep display off while going into S4
When userspace invokes S4 the flow is:
1) amdgpu_pmops_prepare() 2) amdgpu_pmops_freeze() 3) Create hibernation image 4) amdgpu_pmops_thaw() 5) Write o
drm/amd: Keep display off while going into S4
When userspace invokes S4 the flow is:
1) amdgpu_pmops_prepare() 2) amdgpu_pmops_freeze() 3) Create hibernation image 4) amdgpu_pmops_thaw() 5) Write out image to disk 6) Turn off system
Then on resume amdgpu_pmops_restore() is called.
This flow has a problem that because amdgpu_pmops_thaw() is called it will call amdgpu_device_resume() which will resume all of the GPU.
This includes turning the display hardware back on and discovering connectors again.
This is an unexpected experience for the display to turn back on. Adjust the flow so that during the S4 sequence display hardware is not turned back on.
Reported-by: Xaver Hugl <[email protected]> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/2038 Cc: Muhammad Usama Anjum <[email protected]> Tested-by: Muhammad Usama Anjum <[email protected]> Acked-by: Alex Deucher <[email protected]> Acked-by: Harry Wentland <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
show more ...
|