Merge "msm: kgsl: Fix gdsc disable timeout during reset"

This commit is contained in:
qctecmdr
2020-02-12 12:44:55 -08:00
committed by Gerrit - the friendly Code Review server

View File

@@ -1272,7 +1272,15 @@ static const char *a6xx_fault_block_uche(struct kgsl_device *device,
unsigned int uche_client_id = 0;
static char str[40];
mutex_lock(&device->mutex);
/*
* Smmu driver takes a vote on CX gdsc before calling the kgsl
* pagefault handler. If there is contention for device mutex in this
* path and the dispatcher fault handler is holding this lock, trying
* to turn off CX gdsc will fail during the reset. So to avoid blocking
* here, try to lock device mutex and return if it fails.
*/
if (!mutex_trylock(&device->mutex))
return "UCHE: unknown";
if (!kgsl_state_is_awake(device)) {
mutex_unlock(&device->mutex);