Loading drivers/gpu/msm/adreno.c +12 −9 Original line number Diff line number Diff line Loading @@ -3042,14 +3042,17 @@ static void adreno_retry_rbbm_read(struct kgsl_device *device, } } static inline bool adreno_is_a650_rbbm_batch_reg(unsigned int offsetwords) static bool adreno_is_rbbm_batch_reg(struct kgsl_device *device, unsigned int offsetwords) { if (adreno_is_a650(ADRENO_DEVICE(device)) || adreno_is_a620v1(ADRENO_DEVICE(device))) { if (((offsetwords > 0x0) && (offsetwords < 0x3FF)) || ((offsetwords > 0x4FA) && (offsetwords < 0x53F)) || ((offsetwords > 0x556) && (offsetwords < 0x5FF)) || ((offsetwords > 0xF400) && (offsetwords < 0xFFFF))) return true; } return false; } Loading @@ -3064,8 +3067,8 @@ static void adreno_regread(struct kgsl_device *device, unsigned int offsetwords, adreno_read(device, device->reg_virt, offsetwords, value, device->reg_len); if ((*value == 0xdeafbead) && adreno_is_a650(ADRENO_DEVICE(device)) && adreno_is_a650_rbbm_batch_reg(offsetwords)) if ((*value == 0xdeafbead) && adreno_is_rbbm_batch_reg(device, offsetwords)) adreno_retry_rbbm_read(device, device->reg_virt, offsetwords, value, device->reg_len); } Loading drivers/gpu/msm/adreno.h +6 −0 Original line number Diff line number Diff line Loading @@ -1209,6 +1209,12 @@ static inline int adreno_is_a650_family(struct adreno_device *adreno_dev) return (rev == ADRENO_REV_A650 || rev == ADRENO_REV_A620); } static inline int adreno_is_a620v1(struct adreno_device *adreno_dev) { return (ADRENO_GPUREV(adreno_dev) == ADRENO_REV_A620) && (ADRENO_CHIPID_PATCH(adreno_dev->chipid) == 0); } static inline int adreno_is_a640v2(struct adreno_device *adreno_dev) { return (ADRENO_GPUREV(adreno_dev) == ADRENO_REV_A640) && Loading Loading
drivers/gpu/msm/adreno.c +12 −9 Original line number Diff line number Diff line Loading @@ -3042,14 +3042,17 @@ static void adreno_retry_rbbm_read(struct kgsl_device *device, } } static inline bool adreno_is_a650_rbbm_batch_reg(unsigned int offsetwords) static bool adreno_is_rbbm_batch_reg(struct kgsl_device *device, unsigned int offsetwords) { if (adreno_is_a650(ADRENO_DEVICE(device)) || adreno_is_a620v1(ADRENO_DEVICE(device))) { if (((offsetwords > 0x0) && (offsetwords < 0x3FF)) || ((offsetwords > 0x4FA) && (offsetwords < 0x53F)) || ((offsetwords > 0x556) && (offsetwords < 0x5FF)) || ((offsetwords > 0xF400) && (offsetwords < 0xFFFF))) return true; } return false; } Loading @@ -3064,8 +3067,8 @@ static void adreno_regread(struct kgsl_device *device, unsigned int offsetwords, adreno_read(device, device->reg_virt, offsetwords, value, device->reg_len); if ((*value == 0xdeafbead) && adreno_is_a650(ADRENO_DEVICE(device)) && adreno_is_a650_rbbm_batch_reg(offsetwords)) if ((*value == 0xdeafbead) && adreno_is_rbbm_batch_reg(device, offsetwords)) adreno_retry_rbbm_read(device, device->reg_virt, offsetwords, value, device->reg_len); } Loading
drivers/gpu/msm/adreno.h +6 −0 Original line number Diff line number Diff line Loading @@ -1209,6 +1209,12 @@ static inline int adreno_is_a650_family(struct adreno_device *adreno_dev) return (rev == ADRENO_REV_A650 || rev == ADRENO_REV_A620); } static inline int adreno_is_a620v1(struct adreno_device *adreno_dev) { return (ADRENO_GPUREV(adreno_dev) == ADRENO_REV_A620) && (ADRENO_CHIPID_PATCH(adreno_dev->chipid) == 0); } static inline int adreno_is_a640v2(struct adreno_device *adreno_dev) { return (ADRENO_GPUREV(adreno_dev) == ADRENO_REV_A640) && Loading