mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
msm: kgsl: Add a GMU core function to read the always on counter
Add a GMU core function to read the always on counter from the generic KGSL code. Change-Id: Ic0dedbad1f81140ea9b891366d18b6f2d94bf149 Signed-off-by: Hareesh Gundu <[email protected]> Signed-off-by: Jordan Crouse <[email protected]>
This commit is contained in:
parent
4d2b26fbcf
commit
59f2bbe3f4
4 changed files with 24 additions and 0 deletions
|
|
@ -1762,6 +1762,11 @@ static bool a6xx_gmu_scales_bandwidth(struct kgsl_device *device)
|
|||
return (ADRENO_GPUREV(adreno_dev) >= ADRENO_REV_A640);
|
||||
}
|
||||
|
||||
static u64 a6xx_gmu_read_alwayson(struct kgsl_device *device)
|
||||
{
|
||||
return a6xx_read_alwayson(ADRENO_DEVICE(device));
|
||||
}
|
||||
|
||||
struct gmu_dev_ops adreno_a6xx_gmudev = {
|
||||
.load_firmware = a6xx_gmu_load_firmware,
|
||||
.oob_set = a6xx_gmu_oob_set,
|
||||
|
|
@ -1779,6 +1784,7 @@ struct gmu_dev_ops adreno_a6xx_gmudev = {
|
|||
.snapshot = a6xx_gmu_snapshot,
|
||||
.cooperative_reset = a6xx_gmu_cooperative_reset,
|
||||
.wait_for_active_transition = a6xx_gmu_wait_for_active_transition,
|
||||
.read_alwayson = a6xx_gmu_read_alwayson,
|
||||
.gmu2host_intr_mask = HFI_IRQ_MASK,
|
||||
.gmu_ao_intr_mask = GMU_AO_INT_MASK,
|
||||
.scales_bandwidth = a6xx_gmu_scales_bandwidth,
|
||||
|
|
|
|||
|
|
@ -559,6 +559,11 @@ static void a6xx_rgmu_snapshot(struct kgsl_device *device,
|
|||
ARRAY_SIZE(a6xx_rgmu_registers) / 2);
|
||||
}
|
||||
|
||||
static u64 a6xx_rgmu_read_alwayson(struct kgsl_device *device)
|
||||
{
|
||||
return a6xx_read_alwayson(ADRENO_DEVICE(device));
|
||||
}
|
||||
|
||||
struct gmu_dev_ops adreno_a6xx_rgmudev = {
|
||||
.load_firmware = a6xx_rgmu_load_firmware,
|
||||
.oob_set = a6xx_rgmu_oob_set,
|
||||
|
|
@ -573,6 +578,7 @@ struct gmu_dev_ops adreno_a6xx_rgmudev = {
|
|||
.ifpc_show = a6xx_rgmu_ifpc_show,
|
||||
.snapshot = a6xx_rgmu_snapshot,
|
||||
.halt_execution = a6xx_rgmu_halt_execution,
|
||||
.read_alwayson = a6xx_rgmu_read_alwayson,
|
||||
.gmu2host_intr_mask = RGMU_OOB_IRQ_MASK,
|
||||
.gmu_ao_intr_mask = RGMU_AO_IRQ_MASK,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -355,3 +355,13 @@ int gmu_core_dev_wait_for_active_transition(struct kgsl_device *device)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
u64 gmu_core_dev_read_alwayson(struct kgsl_device *device)
|
||||
{
|
||||
struct gmu_dev_ops *ops = GMU_DEVICE_OPS(device);
|
||||
|
||||
if (ops && ops->read_alwayson)
|
||||
return ops->read_alwayson(device);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,6 +135,7 @@ struct gmu_dev_ops {
|
|||
void (*halt_execution)(struct kgsl_device *device);
|
||||
int (*wait_for_active_transition)(struct kgsl_device *device);
|
||||
bool (*scales_bandwidth)(struct kgsl_device *device);
|
||||
u64 (*read_alwayson)(struct kgsl_device *device);
|
||||
const unsigned int gmu2host_intr_mask;
|
||||
const unsigned int gmu_ao_intr_mask;
|
||||
};
|
||||
|
|
@ -218,5 +219,6 @@ int gmu_core_dev_ifpc_store(struct kgsl_device *device, unsigned int val);
|
|||
void gmu_core_dev_prepare_stop(struct kgsl_device *device);
|
||||
int gmu_core_dev_wait_for_active_transition(struct kgsl_device *device);
|
||||
void gmu_core_dev_cooperative_reset(struct kgsl_device *device);
|
||||
u64 gmu_core_dev_read_alwayson(struct kgsl_device *device);
|
||||
|
||||
#endif /* __KGSL_GMU_CORE_H */
|
||||
|
|
|
|||
Loading…
Reference in a new issue