Skip to content

Commit 851faa8

Browse files
committed
Merge tag 'drm-next-2025-02-01' of https://gitlab.freedesktop.org/drm/kernel
Pull drm fixes from Dave Airlie: "This is only AMD fixes: amdgpu: - GC 12 fix - Aldebaran fix - DCN 3.5 fix - Freesync fix amdkfd: - Per queue reset fix - MES fix" * tag 'drm-next-2025-02-01' of https://gitlab.freedesktop.org/drm/kernel: drm/amd/display: restore invalid MSA timing check for freesync drm/amdkfd: only flush the validate MES contex drm/amd/display: Correct register address in dcn35 drm/amd/pm: Mark MM activity as unsupported drm/amd/amdgpu: change the config of cgcg on gfx12 drm/amdkfd: Block per-queue reset when halt_if_hws_hang=1
2 parents 0c0746f + 8dcb26b commit 851faa8

File tree

6 files changed

+16
-21
lines changed

6 files changed

+16
-21
lines changed

drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4021,17 +4021,6 @@ static void gfx_v12_0_update_coarse_grain_clock_gating(struct amdgpu_device *ade
40214021

40224022
if (def != data)
40234023
WREG32_SOC15(GC, 0, regRLC_CGCG_CGLS_CTRL_3D, data);
4024-
4025-
data = RREG32_SOC15(GC, 0, regSDMA0_RLC_CGCG_CTRL);
4026-
data &= ~SDMA0_RLC_CGCG_CTRL__CGCG_INT_ENABLE_MASK;
4027-
WREG32_SOC15(GC, 0, regSDMA0_RLC_CGCG_CTRL, data);
4028-
4029-
/* Some ASICs only have one SDMA instance, not need to configure SDMA1 */
4030-
if (adev->sdma.num_instances > 1) {
4031-
data = RREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL);
4032-
data &= ~SDMA1_RLC_CGCG_CTRL__CGCG_INT_ENABLE_MASK;
4033-
WREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL, data);
4034-
}
40354024
}
40364025
}
40374026

drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2325,9 +2325,9 @@ static int unmap_queues_cpsch(struct device_queue_manager *dqm,
23252325
*/
23262326
mqd_mgr = dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ];
23272327
if (mqd_mgr->check_preemption_failed(mqd_mgr, dqm->packet_mgr.priv_queue->queue->mqd)) {
2328+
while (halt_if_hws_hang)
2329+
schedule();
23282330
if (reset_queues_on_hws_hang(dqm)) {
2329-
while (halt_if_hws_hang)
2330-
schedule();
23312331
dqm->is_hws_hang = true;
23322332
kfd_hws_hang(dqm);
23332333
retval = -ETIME;

drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,12 @@ void kfd_process_dequeue_from_device(struct kfd_process_device *pdd)
8686

8787
if (pdd->already_dequeued)
8888
return;
89-
89+
/* The MES context flush needs to filter out the case which the
90+
* KFD process is created without setting up the MES context and
91+
* queue for creating a compute queue.
92+
*/
9093
dev->dqm->ops.process_termination(dev->dqm, &pdd->qpd);
91-
if (dev->kfd->shared_resources.enable_mes &&
94+
if (dev->kfd->shared_resources.enable_mes && !!pdd->proc_ctx_gpu_addr &&
9295
down_read_trylock(&dev->adev->reset_domain->sem)) {
9396
amdgpu_mes_flush_shader_debugger(dev->adev,
9497
pdd->proc_ctx_gpu_addr);

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12326,10 +12326,14 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
1232612326

1232712327
if (edid && (sink->sink_signal == SIGNAL_TYPE_DISPLAY_PORT ||
1232812328
sink->sink_signal == SIGNAL_TYPE_EDP)) {
12329-
amdgpu_dm_connector->min_vfreq = connector->display_info.monitor_range.min_vfreq;
12330-
amdgpu_dm_connector->max_vfreq = connector->display_info.monitor_range.max_vfreq;
12331-
if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
12332-
freesync_capable = true;
12329+
if (amdgpu_dm_connector->dc_link &&
12330+
amdgpu_dm_connector->dc_link->dpcd_caps.allow_invalid_MSA_timing_param) {
12331+
amdgpu_dm_connector->min_vfreq = connector->display_info.monitor_range.min_vfreq;
12332+
amdgpu_dm_connector->max_vfreq = connector->display_info.monitor_range.max_vfreq;
12333+
if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
12334+
freesync_capable = true;
12335+
}
12336+
1233312337
parse_amd_vsdb(amdgpu_dm_connector, edid, &vsdb_info);
1233412338

1233512339
if (vsdb_info.replay_mode) {

drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
#define mmCLK1_CLK4_ALLOW_DS 0x16EA8
9090
#define mmCLK1_CLK5_ALLOW_DS 0x16EB1
9191

92-
#define mmCLK5_spll_field_8 0x1B04B
92+
#define mmCLK5_spll_field_8 0x1B24B
9393
#define mmDENTIST_DISPCLK_CNTL 0x0124
9494
#define regDENTIST_DISPCLK_CNTL 0x0064
9595
#define regDENTIST_DISPCLK_CNTL_BASE_IDX 1

drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1732,7 +1732,6 @@ static ssize_t aldebaran_get_gpu_metrics(struct smu_context *smu,
17321732

17331733
gpu_metrics->average_gfx_activity = metrics.AverageGfxActivity;
17341734
gpu_metrics->average_umc_activity = metrics.AverageUclkActivity;
1735-
gpu_metrics->average_mm_activity = 0;
17361735

17371736
/* Valid power data is available only from primary die */
17381737
if (aldebaran_is_primary(smu)) {

0 commit comments

Comments
 (0)