Merge branch 'drm-fixes-5.0' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
- Fix missing freesync properties on eDP - Fix locking in pasid mgr - Fix clang warning in kfd - DC/powerplay fix - Fix reported rev ids on raven - Doorbell fix for vega20 Signed-off-by: Dave Airlie <airlied@redhat.com> From: Alex Deucher <alexdeucher@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190205231301.3815-1-alexander.deucher@amd.com
This commit is contained in:
commit
8628752d0c
@ -3363,14 +3363,15 @@ void amdgpu_vm_get_task_info(struct amdgpu_device *adev, unsigned int pasid,
|
|||||||
struct amdgpu_task_info *task_info)
|
struct amdgpu_task_info *task_info)
|
||||||
{
|
{
|
||||||
struct amdgpu_vm *vm;
|
struct amdgpu_vm *vm;
|
||||||
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock(&adev->vm_manager.pasid_lock);
|
spin_lock_irqsave(&adev->vm_manager.pasid_lock, flags);
|
||||||
|
|
||||||
vm = idr_find(&adev->vm_manager.pasid_idr, pasid);
|
vm = idr_find(&adev->vm_manager.pasid_idr, pasid);
|
||||||
if (vm)
|
if (vm)
|
||||||
*task_info = vm->task_info;
|
*task_info = vm->task_info;
|
||||||
|
|
||||||
spin_unlock(&adev->vm_manager.pasid_lock);
|
spin_unlock_irqrestore(&adev->vm_manager.pasid_lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -93,7 +93,20 @@ static void nbio_v7_4_enable_doorbell_aperture(struct amdgpu_device *adev,
|
|||||||
static void nbio_v7_4_enable_doorbell_selfring_aperture(struct amdgpu_device *adev,
|
static void nbio_v7_4_enable_doorbell_selfring_aperture(struct amdgpu_device *adev,
|
||||||
bool enable)
|
bool enable)
|
||||||
{
|
{
|
||||||
|
u32 tmp = 0;
|
||||||
|
|
||||||
|
if (enable) {
|
||||||
|
tmp = REG_SET_FIELD(tmp, DOORBELL_SELFRING_GPA_APER_CNTL, DOORBELL_SELFRING_GPA_APER_EN, 1) |
|
||||||
|
REG_SET_FIELD(tmp, DOORBELL_SELFRING_GPA_APER_CNTL, DOORBELL_SELFRING_GPA_APER_MODE, 1) |
|
||||||
|
REG_SET_FIELD(tmp, DOORBELL_SELFRING_GPA_APER_CNTL, DOORBELL_SELFRING_GPA_APER_SIZE, 0);
|
||||||
|
|
||||||
|
WREG32_SOC15(NBIO, 0, mmDOORBELL_SELFRING_GPA_APER_BASE_LOW,
|
||||||
|
lower_32_bits(adev->doorbell.base));
|
||||||
|
WREG32_SOC15(NBIO, 0, mmDOORBELL_SELFRING_GPA_APER_BASE_HIGH,
|
||||||
|
upper_32_bits(adev->doorbell.base));
|
||||||
|
}
|
||||||
|
|
||||||
|
WREG32_SOC15(NBIO, 0, mmDOORBELL_SELFRING_GPA_APER_CNTL, tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void nbio_v7_4_ih_doorbell_range(struct amdgpu_device *adev,
|
static void nbio_v7_4_ih_doorbell_range(struct amdgpu_device *adev,
|
||||||
|
@ -729,11 +729,13 @@ static int soc15_common_early_init(void *handle)
|
|||||||
case CHIP_RAVEN:
|
case CHIP_RAVEN:
|
||||||
adev->asic_funcs = &soc15_asic_funcs;
|
adev->asic_funcs = &soc15_asic_funcs;
|
||||||
if (adev->rev_id >= 0x8)
|
if (adev->rev_id >= 0x8)
|
||||||
adev->external_rev_id = adev->rev_id + 0x81;
|
adev->external_rev_id = adev->rev_id + 0x79;
|
||||||
else if (adev->pdev->device == 0x15d8)
|
else if (adev->pdev->device == 0x15d8)
|
||||||
adev->external_rev_id = adev->rev_id + 0x41;
|
adev->external_rev_id = adev->rev_id + 0x41;
|
||||||
|
else if (adev->rev_id == 1)
|
||||||
|
adev->external_rev_id = adev->rev_id + 0x20;
|
||||||
else
|
else
|
||||||
adev->external_rev_id = 0x1;
|
adev->external_rev_id = adev->rev_id + 0x01;
|
||||||
|
|
||||||
if (adev->rev_id >= 0x8) {
|
if (adev->rev_id >= 0x8) {
|
||||||
adev->cg_flags = AMD_CG_SUPPORT_GFX_MGCG |
|
adev->cg_flags = AMD_CG_SUPPORT_GFX_MGCG |
|
||||||
|
@ -863,7 +863,7 @@ static int kfd_fill_mem_info_for_cpu(int numa_node_id, int *avail_size,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_X86_64
|
#ifdef CONFIG_X86_64
|
||||||
static int kfd_fill_iolink_info_for_cpu(int numa_node_id, int *avail_size,
|
static int kfd_fill_iolink_info_for_cpu(int numa_node_id, int *avail_size,
|
||||||
uint32_t *num_entries,
|
uint32_t *num_entries,
|
||||||
struct crat_subtype_iolink *sub_type_hdr)
|
struct crat_subtype_iolink *sub_type_hdr)
|
||||||
|
@ -4082,7 +4082,8 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
|
if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
|
||||||
connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
|
connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
|
||||||
|
connector_type == DRM_MODE_CONNECTOR_eDP) {
|
||||||
drm_connector_attach_vrr_capable_property(
|
drm_connector_attach_vrr_capable_property(
|
||||||
&aconnector->base);
|
&aconnector->base);
|
||||||
}
|
}
|
||||||
|
@ -591,7 +591,15 @@ static void dce11_pplib_apply_display_requirements(
|
|||||||
dc,
|
dc,
|
||||||
context->bw.dce.sclk_khz);
|
context->bw.dce.sclk_khz);
|
||||||
|
|
||||||
pp_display_cfg->min_dcfclock_khz = pp_display_cfg->min_engine_clock_khz;
|
/*
|
||||||
|
* As workaround for >4x4K lightup set dcfclock to min_engine_clock value.
|
||||||
|
* This is not required for less than 5 displays,
|
||||||
|
* thus don't request decfclk in dc to avoid impact
|
||||||
|
* on power saving.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
pp_display_cfg->min_dcfclock_khz = (context->stream_count > 4)?
|
||||||
|
pp_display_cfg->min_engine_clock_khz : 0;
|
||||||
|
|
||||||
pp_display_cfg->min_engine_clock_deep_sleep_khz
|
pp_display_cfg->min_engine_clock_deep_sleep_khz
|
||||||
= context->bw.dce.sclk_deep_sleep_khz;
|
= context->bw.dce.sclk_deep_sleep_khz;
|
||||||
|
Loading…
Reference in New Issue
Block a user