diff options
-rw-r--r-- | drivers/gpu/msm/adreno-gpulist.h | 6 | ||||
-rw-r--r-- | drivers/gpu/msm/adreno.h | 2 | ||||
-rw-r--r-- | drivers/gpu/msm/adreno_a5xx.c | 6 |
3 files changed, 10 insertions, 4 deletions
diff --git a/drivers/gpu/msm/adreno-gpulist.h b/drivers/gpu/msm/adreno-gpulist.h index c03484f0b7fb..78832b8a9712 100644 --- a/drivers/gpu/msm/adreno-gpulist.h +++ b/drivers/gpu/msm/adreno-gpulist.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2002,2007-2015, The Linux Foundation. All rights reserved. +/* Copyright (c) 2002,2007-2016, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -216,9 +216,11 @@ static const struct adreno_gpu_core adreno_gpulist[] = { .major = 0, .minor = 6, .patchid = ANY_ID, - .features = ADRENO_PREEMPTION | ADRENO_64BIT, + .features = ADRENO_PREEMPTION | ADRENO_64BIT | + ADRENO_CONTENT_PROTECTION | ADRENO_CPZ_RETENTION, .pm4fw_name = "a530_pm4.fw", .pfpfw_name = "a530_pfp.fw", + .zap_name = "a506_zap", .gpudev = &adreno_a5xx_gpudev, .gmem_size = (SZ_128K + SZ_8K), .num_protected_regs = 0x20, diff --git a/drivers/gpu/msm/adreno.h b/drivers/gpu/msm/adreno.h index 7a96347b863e..8a6aae3472f1 100644 --- a/drivers/gpu/msm/adreno.h +++ b/drivers/gpu/msm/adreno.h @@ -109,6 +109,8 @@ #define ADRENO_LM BIT(8) /* The core uses 64 bit GPU addresses */ #define ADRENO_64BIT BIT(9) +/* The GPU supports retention for cpz registers */ +#define ADRENO_CPZ_RETENTION BIT(10) /* * Adreno GPU quirks - control bits for various workarounds diff --git a/drivers/gpu/msm/adreno_a5xx.c b/drivers/gpu/msm/adreno_a5xx.c index ca4e4d5c4a1d..0b2513cd7abf 100644 --- a/drivers/gpu/msm/adreno_a5xx.c +++ b/drivers/gpu/msm/adreno_a5xx.c @@ -2498,9 +2498,11 @@ static int a5xx_microcode_load(struct adreno_device *adreno_dev, /* * Resume call to write the zap shader base address into the - * appropriate register + * appropriate register, + * skip if retention is supported for the CPZ register */ - if (zap_ucode_loaded) { + if (zap_ucode_loaded && !(ADRENO_FEATURE(adreno_dev, + ADRENO_CPZ_RETENTION))) { int ret; struct scm_desc desc = {0}; |