Merge "msm: kgsl: Fix gpu fault issue while enabling stall on page fault"

This commit is contained in:
Linux Build Service Account 2017-09-11 19:12:52 -07:00 committed by Gerrit - the friendly Code Review server
commit 42a50b337e

View file

@ -489,12 +489,17 @@ adreno_ringbuffer_addcmds(struct adreno_ringbuffer *rb,
if (flags & KGSL_CMD_FLAGS_PWRON_FIXUP) if (flags & KGSL_CMD_FLAGS_PWRON_FIXUP)
total_sizedwords += 9; total_sizedwords += 9;
/* WAIT_MEM_WRITES - needed in the stall on fault case /* Don't insert any commands if stall on fault is not supported. */
* to prevent out of order CP operations that can result if ((ADRENO_GPUREV(adreno_dev) > 500) && !adreno_is_a510(adreno_dev)) {
* in a CACHE_FLUSH_TS interrupt storm */ /*
if (test_bit(KGSL_FT_PAGEFAULT_GPUHALT_ENABLE, * WAIT_MEM_WRITES - needed in the stall on fault case
* to prevent out of order CP operations that can result
* in a CACHE_FLUSH_TS interrupt storm
*/
if (test_bit(KGSL_FT_PAGEFAULT_GPUHALT_ENABLE,
&adreno_dev->ft_pf_policy)) &adreno_dev->ft_pf_policy))
total_sizedwords += 1; total_sizedwords += 1;
}
ringcmds = adreno_ringbuffer_allocspace(rb, total_sizedwords); ringcmds = adreno_ringbuffer_allocspace(rb, total_sizedwords);
if (IS_ERR(ringcmds)) if (IS_ERR(ringcmds))
@ -581,14 +586,18 @@ adreno_ringbuffer_addcmds(struct adreno_ringbuffer *rb,
if (profile_ready) if (profile_ready)
adreno_profile_postib_processing(adreno_dev, &flags, &ringcmds); adreno_profile_postib_processing(adreno_dev, &flags, &ringcmds);
/* /* Don't insert any commands if stall on fault is not supported. */
* WAIT_MEM_WRITES - needed in the stall on fault case to prevent if ((ADRENO_GPUREV(adreno_dev) > 500) && !adreno_is_a510(adreno_dev)) {
* out of order CP operations that can result in a CACHE_FLUSH_TS /*
* interrupt storm * WAIT_MEM_WRITES - needed in the stall on fault case
*/ * to prevent out of order CP operations that can result
if (test_bit(KGSL_FT_PAGEFAULT_GPUHALT_ENABLE, * in a CACHE_FLUSH_TS interrupt storm
*/
if (test_bit(KGSL_FT_PAGEFAULT_GPUHALT_ENABLE,
&adreno_dev->ft_pf_policy)) &adreno_dev->ft_pf_policy))
*ringcmds++ = cp_packet(adreno_dev, CP_WAIT_MEM_WRITES, 0); *ringcmds++ = cp_packet(adreno_dev,
CP_WAIT_MEM_WRITES, 0);
}
/* /*
* Do a unique memory write from the GPU. This can be used in * Do a unique memory write from the GPU. This can be used in