Loading drivers/gpu/msm/adreno.c +10 −0 Original line number Diff line number Diff line Loading @@ -2477,6 +2477,14 @@ int adreno_reset(struct kgsl_device *device, int fault) } } if (ret) { unsigned long flags = device->pwrctrl.ctrl_flags; /* * Clear ctrl_flags to ensure clocks and regulators are * turned off */ device->pwrctrl.ctrl_flags = 0; /* If soft reset failed/skipped, then pull the power */ kgsl_pwrctrl_change_state(device, KGSL_STATE_INIT); /* since device is officially off now clear start bit */ Loading @@ -2494,6 +2502,8 @@ int adreno_reset(struct kgsl_device *device, int fault) break; } } device->pwrctrl.ctrl_flags = flags; } if (ret) return ret; Loading drivers/gpu/msm/adreno_a6xx.c +6 −0 Original line number Diff line number Diff line Loading @@ -1136,11 +1136,15 @@ static int a6xx_reset(struct kgsl_device *device, int fault) { struct adreno_device *adreno_dev = ADRENO_DEVICE(device); int ret; unsigned long flags = device->pwrctrl.ctrl_flags; /* Use the regular reset sequence for No GMU */ if (!gmu_core_isenabled(device)) return adreno_reset(device, fault); /* Clear ctrl_flags to ensure clocks and regulators are turned off */ device->pwrctrl.ctrl_flags = 0; /* Transition from ACTIVE to RESET state */ kgsl_pwrctrl_change_state(device, KGSL_STATE_RESET); Loading @@ -1153,6 +1157,8 @@ static int a6xx_reset(struct kgsl_device *device, int fault) kgsl_pwrctrl_change_state(device, KGSL_STATE_ACTIVE); device->pwrctrl.ctrl_flags = flags; /* * If active_cnt is zero, there is no need to keep the GPU active. So, * we should transition to SLUMBER. Loading Loading
drivers/gpu/msm/adreno.c +10 −0 Original line number Diff line number Diff line Loading @@ -2477,6 +2477,14 @@ int adreno_reset(struct kgsl_device *device, int fault) } } if (ret) { unsigned long flags = device->pwrctrl.ctrl_flags; /* * Clear ctrl_flags to ensure clocks and regulators are * turned off */ device->pwrctrl.ctrl_flags = 0; /* If soft reset failed/skipped, then pull the power */ kgsl_pwrctrl_change_state(device, KGSL_STATE_INIT); /* since device is officially off now clear start bit */ Loading @@ -2494,6 +2502,8 @@ int adreno_reset(struct kgsl_device *device, int fault) break; } } device->pwrctrl.ctrl_flags = flags; } if (ret) return ret; Loading
drivers/gpu/msm/adreno_a6xx.c +6 −0 Original line number Diff line number Diff line Loading @@ -1136,11 +1136,15 @@ static int a6xx_reset(struct kgsl_device *device, int fault) { struct adreno_device *adreno_dev = ADRENO_DEVICE(device); int ret; unsigned long flags = device->pwrctrl.ctrl_flags; /* Use the regular reset sequence for No GMU */ if (!gmu_core_isenabled(device)) return adreno_reset(device, fault); /* Clear ctrl_flags to ensure clocks and regulators are turned off */ device->pwrctrl.ctrl_flags = 0; /* Transition from ACTIVE to RESET state */ kgsl_pwrctrl_change_state(device, KGSL_STATE_RESET); Loading @@ -1153,6 +1157,8 @@ static int a6xx_reset(struct kgsl_device *device, int fault) kgsl_pwrctrl_change_state(device, KGSL_STATE_ACTIVE); device->pwrctrl.ctrl_flags = flags; /* * If active_cnt is zero, there is no need to keep the GPU active. So, * we should transition to SLUMBER. Loading