Loading drivers/gpu/msm/adreno_perfcounter.c +9 −0 Original line number Original line Diff line number Diff line Loading @@ -638,6 +638,9 @@ static void _perfcounter_enable_vbif_pwr(struct adreno_device *adreno_dev, static void _power_counter_enable_alwayson(struct adreno_device *adreno_dev, static void _power_counter_enable_alwayson(struct adreno_device *adreno_dev, struct adreno_perfcounters *counters) struct adreno_perfcounters *counters) { { if (!ADRENO_FEATURE(adreno_dev, ADRENO_GPMU)) return; kgsl_regwrite(KGSL_DEVICE(adreno_dev), kgsl_regwrite(KGSL_DEVICE(adreno_dev), A5XX_GPMU_ALWAYS_ON_COUNTER_RESET, 1); A5XX_GPMU_ALWAYS_ON_COUNTER_RESET, 1); counters->groups[KGSL_PERFCOUNTER_GROUP_ALWAYSON_PWR].regs[0].value = 0; counters->groups[KGSL_PERFCOUNTER_GROUP_ALWAYSON_PWR].regs[0].value = 0; Loading Loading @@ -674,6 +677,9 @@ static void _power_counter_enable_default(struct adreno_device *adreno_dev, struct kgsl_device *device = KGSL_DEVICE(adreno_dev); struct kgsl_device *device = KGSL_DEVICE(adreno_dev); struct adreno_perfcount_register *reg; struct adreno_perfcount_register *reg; if (!ADRENO_FEATURE(adreno_dev, ADRENO_GPMU)) return; reg = &counters->groups[group].regs[counter]; reg = &counters->groups[group].regs[counter]; kgsl_regwrite(device, reg->select, countable); kgsl_regwrite(device, reg->select, countable); kgsl_regwrite(device, A5XX_GPMU_POWER_COUNTER_ENABLE, 1); kgsl_regwrite(device, A5XX_GPMU_POWER_COUNTER_ENABLE, 1); Loading Loading @@ -927,6 +933,9 @@ static uint64_t _perfcounter_read_pwrcntr(struct adreno_device *adreno_dev, struct adreno_perfcount_register *reg; struct adreno_perfcount_register *reg; unsigned int lo = 0, hi = 0; unsigned int lo = 0, hi = 0; if (!ADRENO_FEATURE(adreno_dev, ADRENO_GPMU)) return 0; reg = &group->regs[counter]; reg = &group->regs[counter]; kgsl_regread(device, reg->offset, &lo); kgsl_regread(device, reg->offset, &lo); Loading Loading
drivers/gpu/msm/adreno_perfcounter.c +9 −0 Original line number Original line Diff line number Diff line Loading @@ -638,6 +638,9 @@ static void _perfcounter_enable_vbif_pwr(struct adreno_device *adreno_dev, static void _power_counter_enable_alwayson(struct adreno_device *adreno_dev, static void _power_counter_enable_alwayson(struct adreno_device *adreno_dev, struct adreno_perfcounters *counters) struct adreno_perfcounters *counters) { { if (!ADRENO_FEATURE(adreno_dev, ADRENO_GPMU)) return; kgsl_regwrite(KGSL_DEVICE(adreno_dev), kgsl_regwrite(KGSL_DEVICE(adreno_dev), A5XX_GPMU_ALWAYS_ON_COUNTER_RESET, 1); A5XX_GPMU_ALWAYS_ON_COUNTER_RESET, 1); counters->groups[KGSL_PERFCOUNTER_GROUP_ALWAYSON_PWR].regs[0].value = 0; counters->groups[KGSL_PERFCOUNTER_GROUP_ALWAYSON_PWR].regs[0].value = 0; Loading Loading @@ -674,6 +677,9 @@ static void _power_counter_enable_default(struct adreno_device *adreno_dev, struct kgsl_device *device = KGSL_DEVICE(adreno_dev); struct kgsl_device *device = KGSL_DEVICE(adreno_dev); struct adreno_perfcount_register *reg; struct adreno_perfcount_register *reg; if (!ADRENO_FEATURE(adreno_dev, ADRENO_GPMU)) return; reg = &counters->groups[group].regs[counter]; reg = &counters->groups[group].regs[counter]; kgsl_regwrite(device, reg->select, countable); kgsl_regwrite(device, reg->select, countable); kgsl_regwrite(device, A5XX_GPMU_POWER_COUNTER_ENABLE, 1); kgsl_regwrite(device, A5XX_GPMU_POWER_COUNTER_ENABLE, 1); Loading Loading @@ -927,6 +933,9 @@ static uint64_t _perfcounter_read_pwrcntr(struct adreno_device *adreno_dev, struct adreno_perfcount_register *reg; struct adreno_perfcount_register *reg; unsigned int lo = 0, hi = 0; unsigned int lo = 0, hi = 0; if (!ADRENO_FEATURE(adreno_dev, ADRENO_GPMU)) return 0; reg = &group->regs[counter]; reg = &group->regs[counter]; kgsl_regread(device, reg->offset, &lo); kgsl_regread(device, reg->offset, &lo); Loading