mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-01-04 22:54:56 +01:00
Merge tag 'drm-fixes-2022-12-02' of git://anongit.freedesktop.org/drm/drm
Pull drm fixes from Dave Airlie: "Things do seem to have finally settled down, just four i915 and one amdgpu this week. Probably won't have much for next week if you do push rc8 out. i915: - Fix dram info readout - Remove non-existent pipes from bigjoiner pipe mask - Fix negative value passed as remaining time - Never return 0 if not all requests retired amdgpu: - VCN fix for vangogh" * tag 'drm-fixes-2022-12-02' of git://anongit.freedesktop.org/drm/drm: drm/amdgpu: enable Vangogh VCN indirect sram mode drm/i915: Never return 0 if not all requests retired drm/i915: Fix negative value passed as remaining time drm/i915: Remove non-existent pipes from bigjoiner pipe mask drm/i915/mtl: Fix dram info readout
This commit is contained in:
@@ -156,6 +156,9 @@ int amdgpu_vcn_sw_init(struct amdgpu_device *adev)
|
||||
break;
|
||||
case IP_VERSION(3, 0, 2):
|
||||
fw_name = FIRMWARE_VANGOGH;
|
||||
if ((adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) &&
|
||||
(adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG))
|
||||
adev->vcn.indirect_sram = true;
|
||||
break;
|
||||
case IP_VERSION(3, 0, 16):
|
||||
fw_name = FIRMWARE_DIMGREY_CAVEFISH;
|
||||
|
||||
@@ -3723,12 +3723,16 @@ out:
|
||||
|
||||
static u8 bigjoiner_pipes(struct drm_i915_private *i915)
|
||||
{
|
||||
u8 pipes;
|
||||
|
||||
if (DISPLAY_VER(i915) >= 12)
|
||||
return BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D);
|
||||
pipes = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D);
|
||||
else if (DISPLAY_VER(i915) >= 11)
|
||||
return BIT(PIPE_B) | BIT(PIPE_C);
|
||||
pipes = BIT(PIPE_B) | BIT(PIPE_C);
|
||||
else
|
||||
return 0;
|
||||
pipes = 0;
|
||||
|
||||
return pipes & RUNTIME_INFO(i915)->pipe_mask;
|
||||
}
|
||||
|
||||
static bool transcoder_ddi_func_is_enabled(struct drm_i915_private *dev_priv,
|
||||
|
||||
@@ -625,8 +625,13 @@ int intel_gt_wait_for_idle(struct intel_gt *gt, long timeout)
|
||||
return -EINTR;
|
||||
}
|
||||
|
||||
return timeout ? timeout : intel_uc_wait_for_idle(>->uc,
|
||||
remaining_timeout);
|
||||
if (timeout)
|
||||
return timeout;
|
||||
|
||||
if (remaining_timeout < 0)
|
||||
remaining_timeout = 0;
|
||||
|
||||
return intel_uc_wait_for_idle(>->uc, remaining_timeout);
|
||||
}
|
||||
|
||||
int intel_gt_init(struct intel_gt *gt)
|
||||
|
||||
@@ -199,7 +199,7 @@ out_active: spin_lock(&timelines->lock);
|
||||
if (remaining_timeout)
|
||||
*remaining_timeout = timeout;
|
||||
|
||||
return active_count ? timeout : 0;
|
||||
return active_count ? timeout ?: -ETIME : 0;
|
||||
}
|
||||
|
||||
static void retire_work_handler(struct work_struct *work)
|
||||
|
||||
@@ -471,8 +471,7 @@ static int xelpdp_get_dram_info(struct drm_i915_private *i915)
|
||||
u32 val = intel_uncore_read(&i915->uncore, MTL_MEM_SS_INFO_GLOBAL);
|
||||
struct dram_info *dram_info = &i915->dram_info;
|
||||
|
||||
val = REG_FIELD_GET(MTL_DDR_TYPE_MASK, val);
|
||||
switch (val) {
|
||||
switch (REG_FIELD_GET(MTL_DDR_TYPE_MASK, val)) {
|
||||
case 0:
|
||||
dram_info->type = INTEL_DRAM_DDR4;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user