summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/cik.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/cik.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/cik.c67
1 files changed, 31 insertions, 36 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c
index 08d6787893b3..29954c7d61b0 100644
--- a/drivers/gpu/drm/amd/amdgpu/cik.c
+++ b/drivers/gpu/drm/amd/amdgpu/cik.c
@@ -154,11 +154,11 @@ static u32 cik_pcie_rreg(struct amdgpu_device *adev, u32 reg)
unsigned long flags;
u32 r;
- spin_lock_irqsave(&adev->pcie_idx_lock, flags);
+ spin_lock_irqsave(&adev->reg.pcie.lock, flags);
WREG32(mmPCIE_INDEX, reg);
(void)RREG32(mmPCIE_INDEX);
r = RREG32(mmPCIE_DATA);
- spin_unlock_irqrestore(&adev->pcie_idx_lock, flags);
+ spin_unlock_irqrestore(&adev->reg.pcie.lock, flags);
return r;
}
@@ -166,12 +166,12 @@ static void cik_pcie_wreg(struct amdgpu_device *adev, u32 reg, u32 v)
{
unsigned long flags;
- spin_lock_irqsave(&adev->pcie_idx_lock, flags);
+ spin_lock_irqsave(&adev->reg.pcie.lock, flags);
WREG32(mmPCIE_INDEX, reg);
(void)RREG32(mmPCIE_INDEX);
WREG32(mmPCIE_DATA, v);
(void)RREG32(mmPCIE_DATA);
- spin_unlock_irqrestore(&adev->pcie_idx_lock, flags);
+ spin_unlock_irqrestore(&adev->reg.pcie.lock, flags);
}
static u32 cik_smc_rreg(struct amdgpu_device *adev, u32 reg)
@@ -179,10 +179,10 @@ static u32 cik_smc_rreg(struct amdgpu_device *adev, u32 reg)
unsigned long flags;
u32 r;
- spin_lock_irqsave(&adev->smc_idx_lock, flags);
+ spin_lock_irqsave(&adev->reg.smc.lock, flags);
WREG32(mmSMC_IND_INDEX_0, (reg));
r = RREG32(mmSMC_IND_DATA_0);
- spin_unlock_irqrestore(&adev->smc_idx_lock, flags);
+ spin_unlock_irqrestore(&adev->reg.smc.lock, flags);
return r;
}
@@ -190,10 +190,10 @@ static void cik_smc_wreg(struct amdgpu_device *adev, u32 reg, u32 v)
{
unsigned long flags;
- spin_lock_irqsave(&adev->smc_idx_lock, flags);
+ spin_lock_irqsave(&adev->reg.smc.lock, flags);
WREG32(mmSMC_IND_INDEX_0, (reg));
WREG32(mmSMC_IND_DATA_0, (v));
- spin_unlock_irqrestore(&adev->smc_idx_lock, flags);
+ spin_unlock_irqrestore(&adev->reg.smc.lock, flags);
}
static u32 cik_uvd_ctx_rreg(struct amdgpu_device *adev, u32 reg)
@@ -201,10 +201,10 @@ static u32 cik_uvd_ctx_rreg(struct amdgpu_device *adev, u32 reg)
unsigned long flags;
u32 r;
- spin_lock_irqsave(&adev->uvd_ctx_idx_lock, flags);
+ spin_lock_irqsave(&adev->reg.uvd_ctx.lock, flags);
WREG32(mmUVD_CTX_INDEX, ((reg) & 0x1ff));
r = RREG32(mmUVD_CTX_DATA);
- spin_unlock_irqrestore(&adev->uvd_ctx_idx_lock, flags);
+ spin_unlock_irqrestore(&adev->reg.uvd_ctx.lock, flags);
return r;
}
@@ -212,10 +212,10 @@ static void cik_uvd_ctx_wreg(struct amdgpu_device *adev, u32 reg, u32 v)
{
unsigned long flags;
- spin_lock_irqsave(&adev->uvd_ctx_idx_lock, flags);
+ spin_lock_irqsave(&adev->reg.uvd_ctx.lock, flags);
WREG32(mmUVD_CTX_INDEX, ((reg) & 0x1ff));
WREG32(mmUVD_CTX_DATA, (v));
- spin_unlock_irqrestore(&adev->uvd_ctx_idx_lock, flags);
+ spin_unlock_irqrestore(&adev->reg.uvd_ctx.lock, flags);
}
static u32 cik_didt_rreg(struct amdgpu_device *adev, u32 reg)
@@ -223,10 +223,10 @@ static u32 cik_didt_rreg(struct amdgpu_device *adev, u32 reg)
unsigned long flags;
u32 r;
- spin_lock_irqsave(&adev->didt_idx_lock, flags);
+ spin_lock_irqsave(&adev->reg.didt.lock, flags);
WREG32(mmDIDT_IND_INDEX, (reg));
r = RREG32(mmDIDT_IND_DATA);
- spin_unlock_irqrestore(&adev->didt_idx_lock, flags);
+ spin_unlock_irqrestore(&adev->reg.didt.lock, flags);
return r;
}
@@ -234,10 +234,10 @@ static void cik_didt_wreg(struct amdgpu_device *adev, u32 reg, u32 v)
{
unsigned long flags;
- spin_lock_irqsave(&adev->didt_idx_lock, flags);
+ spin_lock_irqsave(&adev->reg.didt.lock, flags);
WREG32(mmDIDT_IND_INDEX, (reg));
WREG32(mmDIDT_IND_DATA, (v));
- spin_unlock_irqrestore(&adev->didt_idx_lock, flags);
+ spin_unlock_irqrestore(&adev->reg.didt.lock, flags);
}
static const u32 bonaire_golden_spm_registers[] =
@@ -1027,7 +1027,7 @@ static bool cik_read_bios_from_rom(struct amdgpu_device *adev,
dw_ptr = (u32 *)bios;
length_dw = ALIGN(length_bytes, 4) / 4;
/* take the smc lock since we are using the smc index */
- spin_lock_irqsave(&adev->smc_idx_lock, flags);
+ spin_lock_irqsave(&adev->reg.smc.lock, flags);
/* set rom index to 0 */
WREG32(mmSMC_IND_INDEX_0, ixROM_INDEX);
WREG32(mmSMC_IND_DATA_0, 0);
@@ -1035,7 +1035,7 @@ static bool cik_read_bios_from_rom(struct amdgpu_device *adev,
WREG32(mmSMC_IND_INDEX_0, ixROM_DATA);
for (i = 0; i < length_dw; i++)
dw_ptr[i] = RREG32(mmSMC_IND_DATA_0);
- spin_unlock_irqrestore(&adev->smc_idx_lock, flags);
+ spin_unlock_irqrestore(&adev->reg.smc.lock, flags);
return true;
}
@@ -1552,16 +1552,16 @@ static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
PCIE_LC_SPEED_CNTL__LC_CURRENT_DATA_RATE__SHIFT;
if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3) {
if (current_data_rate == 2) {
- DRM_INFO("PCIE gen 3 link speeds already enabled\n");
+ drm_info(adev_to_drm(adev), "PCIE gen 3 link speeds already enabled\n");
return;
}
- DRM_INFO("enabling PCIE gen 3 link speeds, disable with amdgpu.pcie_gen2=0\n");
+ drm_info(adev_to_drm(adev), "enabling PCIE gen 3 link speeds, disable with amdgpu.pcie_gen2=0\n");
} else if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2) {
if (current_data_rate == 1) {
- DRM_INFO("PCIE gen 2 link speeds already enabled\n");
+ drm_info(adev_to_drm(adev), "PCIE gen 2 link speeds already enabled\n");
return;
}
- DRM_INFO("enabling PCIE gen 2 link speeds, disable with amdgpu.pcie_gen2=0\n");
+ drm_info(adev_to_drm(adev), "enabling PCIE gen 2 link speeds, disable with amdgpu.pcie_gen2=0\n");
}
if (!pci_is_pcie(root) || !pci_is_pcie(adev->pdev))
@@ -1957,10 +1957,6 @@ static uint64_t cik_get_pcie_replay_count(struct amdgpu_device *adev)
return (nak_r + nak_g);
}
-static void cik_pre_asic_init(struct amdgpu_device *adev)
-{
-}
-
static const struct amdgpu_asic_funcs cik_asic_funcs =
{
.read_disabled_bios = &cik_read_disabled_bios,
@@ -1981,7 +1977,6 @@ static const struct amdgpu_asic_funcs cik_asic_funcs =
.need_reset_on_init = &cik_need_reset_on_init,
.get_pcie_replay_count = &cik_get_pcie_replay_count,
.supports_baco = &cik_asic_supports_baco,
- .pre_asic_init = &cik_pre_asic_init,
.query_video_codecs = &cik_query_video_codecs,
};
@@ -1989,14 +1984,14 @@ static int cik_common_early_init(struct amdgpu_ip_block *ip_block)
{
struct amdgpu_device *adev = ip_block->adev;
- adev->smc_rreg = &cik_smc_rreg;
- adev->smc_wreg = &cik_smc_wreg;
- adev->pcie_rreg = &cik_pcie_rreg;
- adev->pcie_wreg = &cik_pcie_wreg;
- adev->uvd_ctx_rreg = &cik_uvd_ctx_rreg;
- adev->uvd_ctx_wreg = &cik_uvd_ctx_wreg;
- adev->didt_rreg = &cik_didt_rreg;
- adev->didt_wreg = &cik_didt_wreg;
+ adev->reg.smc.rreg = cik_smc_rreg;
+ adev->reg.smc.wreg = cik_smc_wreg;
+ adev->reg.pcie.rreg = &cik_pcie_rreg;
+ adev->reg.pcie.wreg = &cik_pcie_wreg;
+ adev->reg.uvd_ctx.rreg = &cik_uvd_ctx_rreg;
+ adev->reg.uvd_ctx.wreg = &cik_uvd_ctx_wreg;
+ adev->reg.didt.rreg = &cik_didt_rreg;
+ adev->reg.didt.wreg = &cik_didt_wreg;
adev->asic_funcs = &cik_asic_funcs;
@@ -2148,7 +2143,7 @@ static int cik_common_resume(struct amdgpu_ip_block *ip_block)
return cik_common_hw_init(ip_block);
}
-static bool cik_common_is_idle(void *handle)
+static bool cik_common_is_idle(struct amdgpu_ip_block *ip_block)
{
return true;
}