msm: kgsl: Add support for A512 GPU
Add new GPU ID, corresponding VBIF and initial settings for A512. Change-Id: Id30415ce0ea73012125ced35771b9aae9f941c22 Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
This commit is contained in:
parent
9febdfdde0
commit
eb0234d008
3 changed files with 20 additions and 3 deletions
|
@ -283,4 +283,18 @@ static const struct adreno_gpu_core adreno_gpulist[] = {
|
||||||
.gpmu_tsens = 0x000C000D,
|
.gpmu_tsens = 0x000C000D,
|
||||||
.max_power = 5448,
|
.max_power = 5448,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.gpurev = ADRENO_REV_A512,
|
||||||
|
.core = 5,
|
||||||
|
.major = 1,
|
||||||
|
.minor = 2,
|
||||||
|
.patchid = ANY_ID,
|
||||||
|
.features = ADRENO_64BIT,
|
||||||
|
.pm4fw_name = "a530_pm4.fw",
|
||||||
|
.pfpfw_name = "a530_pfp.fw",
|
||||||
|
.gpudev = &adreno_a5xx_gpudev,
|
||||||
|
.gmem_size = (SZ_256K + SZ_16K),
|
||||||
|
.num_protected_regs = 0x20,
|
||||||
|
.busy_mask = 0xFFFFFFFE,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -170,6 +170,7 @@ enum adreno_gpurev {
|
||||||
ADRENO_REV_A505 = 505,
|
ADRENO_REV_A505 = 505,
|
||||||
ADRENO_REV_A506 = 506,
|
ADRENO_REV_A506 = 506,
|
||||||
ADRENO_REV_A510 = 510,
|
ADRENO_REV_A510 = 510,
|
||||||
|
ADRENO_REV_A512 = 512,
|
||||||
ADRENO_REV_A530 = 530,
|
ADRENO_REV_A530 = 530,
|
||||||
ADRENO_REV_A540 = 540,
|
ADRENO_REV_A540 = 540,
|
||||||
};
|
};
|
||||||
|
@ -998,6 +999,7 @@ static inline int adreno_is_a5xx(struct adreno_device *adreno_dev)
|
||||||
ADRENO_TARGET(a505, ADRENO_REV_A505)
|
ADRENO_TARGET(a505, ADRENO_REV_A505)
|
||||||
ADRENO_TARGET(a506, ADRENO_REV_A506)
|
ADRENO_TARGET(a506, ADRENO_REV_A506)
|
||||||
ADRENO_TARGET(a510, ADRENO_REV_A510)
|
ADRENO_TARGET(a510, ADRENO_REV_A510)
|
||||||
|
ADRENO_TARGET(a512, ADRENO_REV_A512)
|
||||||
ADRENO_TARGET(a530, ADRENO_REV_A530)
|
ADRENO_TARGET(a530, ADRENO_REV_A530)
|
||||||
ADRENO_TARGET(a540, ADRENO_REV_A540)
|
ADRENO_TARGET(a540, ADRENO_REV_A540)
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,7 @@ static const struct adreno_vbif_data a540_vbif[] = {
|
||||||
static const struct adreno_vbif_platform a5xx_vbif_platforms[] = {
|
static const struct adreno_vbif_platform a5xx_vbif_platforms[] = {
|
||||||
{ adreno_is_a540, a540_vbif },
|
{ adreno_is_a540, a540_vbif },
|
||||||
{ adreno_is_a530, a530_vbif },
|
{ adreno_is_a530, a530_vbif },
|
||||||
|
{ adreno_is_a512, a540_vbif },
|
||||||
{ adreno_is_a510, a530_vbif },
|
{ adreno_is_a510, a530_vbif },
|
||||||
{ adreno_is_a505, a530_vbif },
|
{ adreno_is_a505, a530_vbif },
|
||||||
{ adreno_is_a506, a530_vbif },
|
{ adreno_is_a506, a530_vbif },
|
||||||
|
@ -1884,7 +1885,7 @@ static void a5xx_start(struct adreno_device *adreno_dev)
|
||||||
if (adreno_is_a505_or_a506(adreno_dev))
|
if (adreno_is_a505_or_a506(adreno_dev))
|
||||||
kgsl_regwrite(device, A5XX_PC_DBG_ECO_CNTL,
|
kgsl_regwrite(device, A5XX_PC_DBG_ECO_CNTL,
|
||||||
(0x100 << 11 | 0x100 << 22));
|
(0x100 << 11 | 0x100 << 22));
|
||||||
else if (adreno_is_a510(adreno_dev))
|
else if (adreno_is_a510(adreno_dev) || adreno_is_a512(adreno_dev))
|
||||||
kgsl_regwrite(device, A5XX_PC_DBG_ECO_CNTL,
|
kgsl_regwrite(device, A5XX_PC_DBG_ECO_CNTL,
|
||||||
(0x200 << 11 | 0x200 << 22));
|
(0x200 << 11 | 0x200 << 22));
|
||||||
else
|
else
|
||||||
|
@ -1976,8 +1977,8 @@ static void a5xx_start(struct adreno_device *adreno_dev)
|
||||||
|
|
||||||
kgsl_regwrite(device, A5XX_TPL1_MODE_CNTL, bit << 7);
|
kgsl_regwrite(device, A5XX_TPL1_MODE_CNTL, bit << 7);
|
||||||
kgsl_regwrite(device, A5XX_RB_MODE_CNTL, bit << 1);
|
kgsl_regwrite(device, A5XX_RB_MODE_CNTL, bit << 1);
|
||||||
|
if (adreno_is_a540(adreno_dev) ||
|
||||||
if (adreno_is_a540(adreno_dev))
|
adreno_is_a512(adreno_dev))
|
||||||
kgsl_regwrite(device, A5XX_UCHE_DBG_ECO_CNTL_2,
|
kgsl_regwrite(device, A5XX_UCHE_DBG_ECO_CNTL_2,
|
||||||
bit);
|
bit);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue