/* To check if we can trigger sleep seq at PDC. Cleared in a6xx_rpmh_stop() */ #define GMU_STATUS_FW_START 0 /* To track if PDC sleep seq was done */ #define GMU_STATUS_PDC_SLEEP 1 unsignedlong status;
};
/* * These are the available OOB (out of band requests) to the GMU where "out of * band" means that the CPU talks to the GMU directly and not through HFI. * Normally this works by writing a ITCM/DTCM register and then triggering a * interrupt (the "request" bit) and waiting for an acknowledgment (the "ack" * bit). The state is cleared by writing the "clear' bit to the GMU interrupt. * * These are used to force the GMU/GPU to stay on during a critical sequence or * for hardware workarounds.
*/
enum a6xx_gmu_oob_state { /* * Let the GMU know that a boot or slumber operation has started. The value in * REG_A6XX_GMU_BOOT_SLUMBER_OPTION lets the GMU know which operation we are * doing
*/
GMU_OOB_BOOT_SLUMBER = 0, /* * Let the GMU know to not turn off any GPU registers while the CPU is in a * critical section
*/
GMU_OOB_GPU_SET, /* * Set a new power level for the GPU when the CPU is doing frequency scaling
*/
GMU_OOB_DCVS_SET, /* * Used to keep the GPU on for CPU-side reads of performance counters.
*/
GMU_OOB_PERFCOUNTER_SET,
};
void a6xx_hfi_init(struct a6xx_gmu *gmu); int a6xx_hfi_start(struct a6xx_gmu *gmu, int boot_state); void a6xx_hfi_stop(struct a6xx_gmu *gmu); int a6xx_hfi_send_prep_slumber(struct a6xx_gmu *gmu); int a6xx_hfi_set_freq(struct a6xx_gmu *gmu, u32 perf_index, u32 bw_index);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.