diff options
author | Dave Airlie <airlied@redhat.com> | 2017-03-15 21:28:44 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2017-03-15 21:28:44 -0400 |
commit | 27b713c2e08ef27d500a79166098d42b24977500 (patch) | |
tree | ee2e071e2beba7ba7ddc38d55d0adbf97ee7c9a5 | |
parent | 4daad1b2b087eb43611653a7e1b0ecb01f4f7481 (diff) | |
parent | 801a6aa9a63c90724e8899982ad8c7f16be1e2cd (diff) |
Merge branch 'drm-fixes-4.11' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
A few amd fixes.
* 'drm-fixes-4.11' of git://people.freedesktop.org/~agd5f/linux:
drm/amd/amdgpu: Fix debugfs reg read/write address width
drm/amdgpu/si: add dpm quirk for Oland
drm/radeon/si: add dpm quirk for Oland
drm: amd: remove broken include path
drm/amd/powerplay: fix copy error in smu7_clockpoweragting.c
drm/amdgpu: fix parser init error path to avoid crash in parser fini
drm/amd/amdgpu: Disable GFX_PG on Carrizo until compute issues solved
-rw-r--r-- | drivers/gpu/drm/amd/acp/Makefile | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/si_dpm.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/vi.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/hwmgr/smu7_clockpowergating.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/si_dpm.c | 6 |
7 files changed, 18 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/acp/Makefile b/drivers/gpu/drm/amd/acp/Makefile index 8363cb57915b..8a08e81ee90d 100644 --- a/drivers/gpu/drm/amd/acp/Makefile +++ b/drivers/gpu/drm/amd/acp/Makefile | |||
@@ -3,6 +3,4 @@ | |||
3 | # of AMDSOC/AMDGPU drm driver. | 3 | # of AMDSOC/AMDGPU drm driver. |
4 | # It provides the HW control for ACP related functionalities. | 4 | # It provides the HW control for ACP related functionalities. |
5 | 5 | ||
6 | subdir-ccflags-y += -I$(AMDACPPATH)/ -I$(AMDACPPATH)/include | ||
7 | |||
8 | AMD_ACP_FILES := $(AMDACPPATH)/acp_hw.o | 6 | AMD_ACP_FILES := $(AMDACPPATH)/acp_hw.o |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index d2d0f60ff36d..99424cb8020b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | |||
@@ -240,6 +240,8 @@ free_partial_kdata: | |||
240 | for (; i >= 0; i--) | 240 | for (; i >= 0; i--) |
241 | drm_free_large(p->chunks[i].kdata); | 241 | drm_free_large(p->chunks[i].kdata); |
242 | kfree(p->chunks); | 242 | kfree(p->chunks); |
243 | p->chunks = NULL; | ||
244 | p->nchunks = 0; | ||
243 | put_ctx: | 245 | put_ctx: |
244 | amdgpu_ctx_put(p->ctx); | 246 | amdgpu_ctx_put(p->ctx); |
245 | free_chunk: | 247 | free_chunk: |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 4120b351a8e5..a3a105ec99e2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |||
@@ -2590,7 +2590,7 @@ static ssize_t amdgpu_debugfs_regs_read(struct file *f, char __user *buf, | |||
2590 | use_bank = 0; | 2590 | use_bank = 0; |
2591 | } | 2591 | } |
2592 | 2592 | ||
2593 | *pos &= 0x3FFFF; | 2593 | *pos &= (1UL << 22) - 1; |
2594 | 2594 | ||
2595 | if (use_bank) { | 2595 | if (use_bank) { |
2596 | if ((sh_bank != 0xFFFFFFFF && sh_bank >= adev->gfx.config.max_sh_per_se) || | 2596 | if ((sh_bank != 0xFFFFFFFF && sh_bank >= adev->gfx.config.max_sh_per_se) || |
@@ -2666,7 +2666,7 @@ static ssize_t amdgpu_debugfs_regs_write(struct file *f, const char __user *buf, | |||
2666 | use_bank = 0; | 2666 | use_bank = 0; |
2667 | } | 2667 | } |
2668 | 2668 | ||
2669 | *pos &= 0x3FFFF; | 2669 | *pos &= (1UL << 22) - 1; |
2670 | 2670 | ||
2671 | if (use_bank) { | 2671 | if (use_bank) { |
2672 | if ((sh_bank != 0xFFFFFFFF && sh_bank >= adev->gfx.config.max_sh_per_se) || | 2672 | if ((sh_bank != 0xFFFFFFFF && sh_bank >= adev->gfx.config.max_sh_per_se) || |
diff --git a/drivers/gpu/drm/amd/amdgpu/si_dpm.c b/drivers/gpu/drm/amd/amdgpu/si_dpm.c index f55e45b52fbc..33b504bafb88 100644 --- a/drivers/gpu/drm/amd/amdgpu/si_dpm.c +++ b/drivers/gpu/drm/amd/amdgpu/si_dpm.c | |||
@@ -3464,6 +3464,12 @@ static void si_apply_state_adjust_rules(struct amdgpu_device *adev, | |||
3464 | (adev->pdev->device == 0x6667)) { | 3464 | (adev->pdev->device == 0x6667)) { |
3465 | max_sclk = 75000; | 3465 | max_sclk = 75000; |
3466 | } | 3466 | } |
3467 | } else if (adev->asic_type == CHIP_OLAND) { | ||
3468 | if ((adev->pdev->device == 0x6604) && | ||
3469 | (adev->pdev->subsystem_vendor == 0x1028) && | ||
3470 | (adev->pdev->subsystem_device == 0x066F)) { | ||
3471 | max_sclk = 75000; | ||
3472 | } | ||
3467 | } | 3473 | } |
3468 | 3474 | ||
3469 | if (rps->vce_active) { | 3475 | if (rps->vce_active) { |
diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c index 50bdb24ef8d6..4a785d6acfb9 100644 --- a/drivers/gpu/drm/amd/amdgpu/vi.c +++ b/drivers/gpu/drm/amd/amdgpu/vi.c | |||
@@ -1051,7 +1051,7 @@ static int vi_common_early_init(void *handle) | |||
1051 | /* rev0 hardware requires workarounds to support PG */ | 1051 | /* rev0 hardware requires workarounds to support PG */ |
1052 | adev->pg_flags = 0; | 1052 | adev->pg_flags = 0; |
1053 | if (adev->rev_id != 0x00) { | 1053 | if (adev->rev_id != 0x00) { |
1054 | adev->pg_flags |= AMD_PG_SUPPORT_GFX_PG | | 1054 | adev->pg_flags |= |
1055 | AMD_PG_SUPPORT_GFX_SMG | | 1055 | AMD_PG_SUPPORT_GFX_SMG | |
1056 | AMD_PG_SUPPORT_GFX_PIPELINE | | 1056 | AMD_PG_SUPPORT_GFX_PIPELINE | |
1057 | AMD_PG_SUPPORT_CP | | 1057 | AMD_PG_SUPPORT_CP | |
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_clockpowergating.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_clockpowergating.c index 8cf71f3c6d0e..261b828ad590 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_clockpowergating.c +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_clockpowergating.c | |||
@@ -178,7 +178,7 @@ int smu7_powergate_vce(struct pp_hwmgr *hwmgr, bool bgate) | |||
178 | if (bgate) { | 178 | if (bgate) { |
179 | cgs_set_powergating_state(hwmgr->device, | 179 | cgs_set_powergating_state(hwmgr->device, |
180 | AMD_IP_BLOCK_TYPE_VCE, | 180 | AMD_IP_BLOCK_TYPE_VCE, |
181 | AMD_PG_STATE_UNGATE); | 181 | AMD_PG_STATE_GATE); |
182 | cgs_set_clockgating_state(hwmgr->device, | 182 | cgs_set_clockgating_state(hwmgr->device, |
183 | AMD_IP_BLOCK_TYPE_VCE, | 183 | AMD_IP_BLOCK_TYPE_VCE, |
184 | AMD_CG_STATE_GATE); | 184 | AMD_CG_STATE_GATE); |
diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c index d12b8978142f..72e1588580a1 100644 --- a/drivers/gpu/drm/radeon/si_dpm.c +++ b/drivers/gpu/drm/radeon/si_dpm.c | |||
@@ -2984,6 +2984,12 @@ static void si_apply_state_adjust_rules(struct radeon_device *rdev, | |||
2984 | (rdev->pdev->device == 0x6667)) { | 2984 | (rdev->pdev->device == 0x6667)) { |
2985 | max_sclk = 75000; | 2985 | max_sclk = 75000; |
2986 | } | 2986 | } |
2987 | } else if (rdev->family == CHIP_OLAND) { | ||
2988 | if ((rdev->pdev->device == 0x6604) && | ||
2989 | (rdev->pdev->subsystem_vendor == 0x1028) && | ||
2990 | (rdev->pdev->subsystem_device == 0x066F)) { | ||
2991 | max_sclk = 75000; | ||
2992 | } | ||
2987 | } | 2993 | } |
2988 | 2994 | ||
2989 | if (rps->vce_active) { | 2995 | if (rps->vce_active) { |