Skip to content

Commit f559665

Browse files
committed
Merge tag 'drm-next-2021-07-08-1' of git://anongit.freedesktop.org/drm/drm
Pull drm fixes from Dave Airlie: "Some fixes for rc1 that came in the past weeks, mainly a bunch of amdgpu fixes, some i915 and the rest are misc around the place. I'm sending this a bit early so some more stuff may show up, but I'll probably take tomorrow off. dma-buf: - doc fixes amdgpu: - Misc Navi fixes - Powergating fix - Yellow Carp updates - Beige Goby updates - S0ix fix - Revert overlay validation fix - GPU reset fix for DC - PPC64 fix - Add new dimgrey cavefish DID - RAS fix - TTM fixes amdkfd: - SVM fixes radeon: - Fix missing drm_gem_object_put in error path - NULL ptr deref fix i915: - display DP VSC fix - DG1 display fix - IRQ fixes - IRQ demidlayering gma500: - bo leaks in error paths fixed" * tag 'drm-next-2021-07-08-1' of git://anongit.freedesktop.org/drm/drm: (52 commits) drm/i915: Drop all references to DRM IRQ midlayer drm/i915: Use the correct IRQ during resume drm/i915/display/dg1: Correctly map DPLLs during state readout drm/i915/display: Do not zero past infoframes.vsc drm/amdgpu: Conditionally reset SDMA RAS error counts drm/amdkfd: Maintain svm_bo reference in page->zone_device_data drm/amdkfd: add invalid pages debug at vram migration drm/amdkfd: skip migration for pages already in VRAM drm/amdkfd: skip invalid pages during migrations drm/amdkfd: classify and map mixed svm range pages in GPU drm/amdkfd: use hmm range fault to get both domain pfns drm/amdgpu: get owner ref in validate and map drm/amdkfd: set owner ref to svm range prefault drm/amdkfd: add owner ref param to get hmm pages drm/amdkfd: device pgmap owner at the svm migrate init drm/amdkfd: inc counter on child ranges with xnack off drm/amd/display: Extend DMUB diagnostic logging to DCN3.1 drm/amdgpu: Update NV SIMD-per-CU to 2 drm/amdgpu: add new dimgrey cavefish DID drm/amd/pm: skip PrepareMp1ForUnload message in s0ix ...
2 parents 8c1bfd7 + 21c355b commit f559665

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1048
-504
lines changed

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

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1369,6 +1369,38 @@ static void amdgpu_device_check_smu_prv_buffer_size(struct amdgpu_device *adev)
13691369
adev->pm.smu_prv_buffer_size = 0;
13701370
}
13711371

1372+
static int amdgpu_device_init_apu_flags(struct amdgpu_device *adev)
1373+
{
1374+
if (!(adev->flags & AMD_IS_APU) ||
1375+
adev->asic_type < CHIP_RAVEN)
1376+
return 0;
1377+
1378+
switch (adev->asic_type) {
1379+
case CHIP_RAVEN:
1380+
if (adev->pdev->device == 0x15dd)
1381+
adev->apu_flags |= AMD_APU_IS_RAVEN;
1382+
if (adev->pdev->device == 0x15d8)
1383+
adev->apu_flags |= AMD_APU_IS_PICASSO;
1384+
break;
1385+
case CHIP_RENOIR:
1386+
if ((adev->pdev->device == 0x1636) ||
1387+
(adev->pdev->device == 0x164c))
1388+
adev->apu_flags |= AMD_APU_IS_RENOIR;
1389+
else
1390+
adev->apu_flags |= AMD_APU_IS_GREEN_SARDINE;
1391+
break;
1392+
case CHIP_VANGOGH:
1393+
adev->apu_flags |= AMD_APU_IS_VANGOGH;
1394+
break;
1395+
case CHIP_YELLOW_CARP:
1396+
break;
1397+
default:
1398+
return -EINVAL;
1399+
}
1400+
1401+
return 0;
1402+
}
1403+
13721404
/**
13731405
* amdgpu_device_check_arguments - validate module params
13741406
*
@@ -3386,6 +3418,10 @@ int amdgpu_device_init(struct amdgpu_device *adev,
33863418
mutex_init(&adev->psp.mutex);
33873419
mutex_init(&adev->notifier_lock);
33883420

3421+
r = amdgpu_device_init_apu_flags(adev);
3422+
if (r)
3423+
return r;
3424+
33893425
r = amdgpu_device_check_arguments(adev);
33903426
if (r)
33913427
return r;
@@ -4304,6 +4340,7 @@ bool amdgpu_device_should_recover_gpu(struct amdgpu_device *adev)
43044340
case CHIP_SIENNA_CICHLID:
43054341
case CHIP_NAVY_FLOUNDER:
43064342
case CHIP_DIMGREY_CAVEFISH:
4343+
case CHIP_BEIGE_GOBY:
43074344
case CHIP_VANGOGH:
43084345
case CHIP_ALDEBARAN:
43094346
break;

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ int amdgpu_smu_pptable_id = -1;
160160
* highest. That helps saving some idle power.
161161
* DISABLE_FRACTIONAL_PWM (bit 2) disabled by default
162162
* PSR (bit 3) disabled by default
163+
* EDP NO POWER SEQUENCING (bit 4) disabled by default
163164
*/
164165
uint amdgpu_dc_feature_mask = 2;
165166
uint amdgpu_dc_debug_mask;
@@ -1198,6 +1199,7 @@ static const struct pci_device_id pciidlist[] = {
11981199
{0x1002, 0x73E0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_DIMGREY_CAVEFISH},
11991200
{0x1002, 0x73E1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_DIMGREY_CAVEFISH},
12001201
{0x1002, 0x73E2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_DIMGREY_CAVEFISH},
1202+
{0x1002, 0x73E3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_DIMGREY_CAVEFISH},
12011203
{0x1002, 0x73FF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_DIMGREY_CAVEFISH},
12021204

12031205
/* Aldebaran */

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,7 @@ void amdgpu_gmc_tmz_set(struct amdgpu_device *adev)
562562
case CHIP_NAVI14:
563563
case CHIP_NAVI12:
564564
case CHIP_VANGOGH:
565+
case CHIP_YELLOW_CARP:
565566
/* Don't enable it by default yet.
566567
*/
567568
if (amdgpu_tmz < 1) {

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ int amdgpu_hmm_range_get_pages(struct mmu_interval_notifier *notifier,
160160
struct mm_struct *mm, struct page **pages,
161161
uint64_t start, uint64_t npages,
162162
struct hmm_range **phmm_range, bool readonly,
163-
bool mmap_locked)
163+
bool mmap_locked, void *owner)
164164
{
165165
struct hmm_range *hmm_range;
166166
unsigned long timeout;
@@ -185,6 +185,7 @@ int amdgpu_hmm_range_get_pages(struct mmu_interval_notifier *notifier,
185185
hmm_range->hmm_pfns = pfns;
186186
hmm_range->start = start;
187187
hmm_range->end = start + npages * PAGE_SIZE;
188+
hmm_range->dev_private_owner = owner;
188189

189190
/* Assuming 512MB takes maxmium 1 second to fault page address */
190191
timeout = max(npages >> 17, 1ULL) * HMM_RANGE_DEFAULT_TIMEOUT;

drivers/gpu/drm/amd/amdgpu/amdgpu_mn.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ int amdgpu_hmm_range_get_pages(struct mmu_interval_notifier *notifier,
3434
struct mm_struct *mm, struct page **pages,
3535
uint64_t start, uint64_t npages,
3636
struct hmm_range **phmm_range, bool readonly,
37-
bool mmap_locked);
37+
bool mmap_locked, void *owner);
3838
int amdgpu_hmm_range_get_pages_done(struct hmm_range *hmm_range);
3939

4040
#if defined(CONFIG_HMM_MIRROR)

drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ struct amdgpu_nbio_funcs {
9393
void (*enable_aspm)(struct amdgpu_device *adev,
9494
bool enable);
9595
void (*program_aspm)(struct amdgpu_device *adev);
96+
void (*apply_lc_spc_mode_wa)(struct amdgpu_device *adev);
97+
void (*apply_l1_link_width_reconfig_wa)(struct amdgpu_device *adev);
9698
};
9799

98100
struct amdgpu_nbio {

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -590,10 +590,6 @@ static int amdgpu_ttm_io_mem_reserve(struct ttm_device *bdev,
590590

591591
mem->bus.offset += adev->gmc.aper_base;
592592
mem->bus.is_iomem = true;
593-
if (adev->gmc.xgmi.connected_to_cpu)
594-
mem->bus.caching = ttm_cached;
595-
else
596-
mem->bus.caching = ttm_write_combined;
597593
break;
598594
default:
599595
return -EINVAL;
@@ -695,7 +691,7 @@ int amdgpu_ttm_tt_get_user_pages(struct amdgpu_bo *bo, struct page **pages)
695691
readonly = amdgpu_ttm_tt_is_readonly(ttm);
696692
r = amdgpu_hmm_range_get_pages(&bo->notifier, mm, pages, start,
697693
ttm->num_pages, &gtt->range, readonly,
698-
true);
694+
true, NULL);
699695
out_unlock:
700696
mmap_read_unlock(mm);
701697
mmput(mm);
@@ -923,7 +919,8 @@ static int amdgpu_ttm_backend_bind(struct ttm_device *bdev,
923919
bo_mem->mem_type == AMDGPU_PL_OA)
924920
return -EINVAL;
925921

926-
if (!amdgpu_gtt_mgr_has_gart_addr(bo_mem)) {
922+
if (bo_mem->mem_type != TTM_PL_TT ||
923+
!amdgpu_gtt_mgr_has_gart_addr(bo_mem)) {
927924
gtt->offset = AMDGPU_BO_INVALID_OFFSET;
928925
return 0;
929926
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,11 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
463463
if (i == 1)
464464
node->base.placement |= TTM_PL_FLAG_CONTIGUOUS;
465465

466+
if (adev->gmc.xgmi.connected_to_cpu)
467+
node->base.bus.caching = ttm_cached;
468+
else
469+
node->base.bus.caching = ttm_write_combined;
470+
466471
atomic64_add(vis_usage, &mgr->vis_usage);
467472
*res = &node->base;
468473
return 0;

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

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,12 @@ athub_v2_0_update_medium_grain_clock_gating(struct amdgpu_device *adev,
3636
{
3737
uint32_t def, data;
3838

39+
if (!(adev->cg_flags & AMD_CG_SUPPORT_MC_MGCG))
40+
return;
41+
3942
def = data = RREG32_SOC15(ATHUB, 0, mmATHUB_MISC_CNTL);
4043

41-
if (enable && (adev->cg_flags & AMD_CG_SUPPORT_MC_MGCG))
44+
if (enable)
4245
data |= ATHUB_MISC_CNTL__CG_ENABLE_MASK;
4346
else
4447
data &= ~ATHUB_MISC_CNTL__CG_ENABLE_MASK;
@@ -53,10 +56,13 @@ athub_v2_0_update_medium_grain_light_sleep(struct amdgpu_device *adev,
5356
{
5457
uint32_t def, data;
5558

59+
if (!((adev->cg_flags & AMD_CG_SUPPORT_MC_LS) &&
60+
(adev->cg_flags & AMD_CG_SUPPORT_HDP_LS)))
61+
return;
62+
5663
def = data = RREG32_SOC15(ATHUB, 0, mmATHUB_MISC_CNTL);
5764

58-
if (enable && (adev->cg_flags & AMD_CG_SUPPORT_MC_LS) &&
59-
(adev->cg_flags & AMD_CG_SUPPORT_HDP_LS))
65+
if (enable)
6066
data |= ATHUB_MISC_CNTL__CG_MEM_LS_ENABLE_MASK;
6167
else
6268
data &= ~ATHUB_MISC_CNTL__CG_MEM_LS_ENABLE_MASK;

0 commit comments

Comments
 (0)