Merge "msm: kgsl: Fix gpu fault issue while enabling stall on page fault"
This commit is contained in:
commit
42a50b337e
1 changed files with 21 additions and 12 deletions
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue