Home
last modified time | relevance | path

Searched full:gmu (Results 1 – 25 of 49) sorted by relevance

12

/linux/Documentation/devicetree/bindings/display/msm/
H A Dgmu.yaml6 $id: http://devicetree.org/schemas/display/msm/gmu.yaml#
9 title: GMU attached to certain Adreno GPUs
15 These bindings describe the Graphics Management Unit (GMU) that is attached
16 to members of the Adreno A6xx GPU family. The GMU provides on-device power
24 - pattern: '^qcom,adreno-gmu-[6-8][0-9][0-9]\.[0-9]$'
25 - const: qcom,adreno-gmu
27 - pattern: '^qcom,adreno-gmu-x[1-9][0-9][0-9]\.[0-9]$'
28 - const: qcom,adreno-gmu
29 - const: qcom,adreno-gmu-wrapper
49 - description: GMU HFI interrupt
[all …]
/linux/drivers/gpu/drm/msm/adreno/
H A Da6xx_gmu.h35 * These define the different GMU wake up options - these define how both the
36 * CPU and the GMU bring up the hardware
39 /* THe GMU has already been booted and the rentention registers are active */
42 /* the GMU is coming up for the first time or back from a power collapse */
46 * These define the level of control that the GMU has - the higher the number
47 * the more things that the GMU hardware controls on its own.
50 /* The GMU does not do any idle state management */
56 /* The GMU manages SPTP power collapse */
59 /* The GMU does automatic IFPC (intra-frame power collapse) */
65 /* For serializing communication with the GMU: */
[all …]
H A Da6xx_hfi.c31 static int a6xx_hfi_queue_read(struct a6xx_gmu *gmu, in a6xx_hfi_queue_read() argument
47 * If we are to assume that the GMU firmware is in fact a rational actor in a6xx_hfi_queue_read()
62 if (!gmu->legacy) in a6xx_hfi_queue_read()
69 static int a6xx_hfi_queue_write(struct a6xx_gmu *gmu, in a6xx_hfi_queue_write() argument
93 if (!gmu->legacy) { in a6xx_hfi_queue_write()
101 gmu_write(gmu, REG_A6XX_GMU_HOST2GMU_INTR_SET, 0x01); in a6xx_hfi_queue_write()
105 static int a6xx_hfi_wait_for_msg_interrupt(struct a6xx_gmu *gmu, u32 id, u32 seqnum) in a6xx_hfi_wait_for_msg_interrupt() argument
109 struct a6xx_gpu *a6xx_gpu = container_of(gmu, struct a6xx_gpu, gmu); in a6xx_hfi_wait_for_msg_interrupt()
113 ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_GMU2HOST_INTR_INFO, val, in a6xx_hfi_wait_for_msg_interrupt()
122 /* We may timeout because the GMU is temporarily wedged from in a6xx_hfi_wait_for_msg_interrupt()
[all …]
H A Da6xx_gpu.c24 count_hi = gmu_read(&a6xx_gpu->gmu, REG_A6XX_GMU_ALWAYS_ON_COUNTER_H); in read_gmu_ao_counter()
25 count_lo = gmu_read(&a6xx_gpu->gmu, REG_A6XX_GMU_ALWAYS_ON_COUNTER_L); in read_gmu_ao_counter()
26 temp = gmu_read(&a6xx_gpu->gmu, REG_A6XX_GMU_ALWAYS_ON_COUNTER_H); in read_gmu_ao_counter()
54 struct a6xx_gmu *gmu = &a6xx_gpu->gmu; in fenced_write() local
59 /* Nothing else to be done in the case of no-GMU */ in fenced_write()
68 if (!gmu_poll_timeout(gmu, REG_A6XX_GMU_AHB_FENCE_STATUS, status, in fenced_write()
76 if (!gmu_poll_timeout(gmu, REG_A6XX_GMU_AHB_FENCE_STATUS, status, in fenced_write()
83 dev_err_ratelimited(gmu->dev, "delay in fenced register write (0x%x)\n", in fenced_write()
88 dev_err_ratelimited(gmu->dev, "fenced register write (0x%x) fail\n", in fenced_write()
115 /* Check that the GMU is idle */ in _a6xx_check_idle()
[all …]
H A Da8xx_gpu.c125 /* Check that the GMU is idle */ in _a8xx_check_idle()
126 if (!a6xx_gmu_isidle(&a6xx_gpu->gmu)) in _a8xx_check_idle()
190 struct a6xx_gmu *gmu = &a6xx_gpu->gmu; in a8xx_set_hwcg() local
196 gmu_write(gmu, REG_A6XX_GPU_GMU_AO_GMU_CGC_MODE_CNTL, in a8xx_set_hwcg()
198 gmu_write(gmu, REG_A6XX_GPU_GMU_AO_GMU_CGC_DELAY_CNTL, in a8xx_set_hwcg()
200 gmu_write(gmu, REG_A6XX_GPU_GMU_AO_GMU_CGC_HYST_CNTL, in a8xx_set_hwcg()
218 * GMU enables clk gating in GBIF during boot up. So, in a8xx_set_hwcg()
508 struct a6xx_gmu *gmu = &a6xx_gpu->gmu; in hw_init() local
514 ret = a6xx_gmu_set_oob(&a6xx_gpu->gmu, GMU_OOB_GPU_SET); in hw_init()
559 gmu_write(&a6xx_gpu->gmu, REG_A8XX_GMU_CX_GMU_POWER_COUNTER_SELECT_XOCLK_1, in hw_init()
[all …]
H A Da6xx_gpu_state.c155 if (!a6xx_gmu_sptprac_is_on(&a6xx_gpu->gmu)) in a6xx_crashdumper_run()
1189 /* Read a block of GMU registers */
1198 struct a6xx_gmu *gmu = &a6xx_gpu->gmu; in _a6xx_get_gmu_registers() local
1218 val = gmu_read_rscc(gmu, offset); in _a6xx_get_gmu_registers()
1220 val = gmu_read(gmu, offset); in _a6xx_get_gmu_registers()
1241 /* Get the CX GMU registers from AHB */ in a6xx_get_gmu_registers()
1254 if (!a6xx_gmu_gx_is_on(&a6xx_gpu->gmu)) in a6xx_get_gmu_registers()
1258 gmu_write(&a6xx_gpu->gmu, REG_A6XX_GMU_AO_AHB_FENCE_CTRL, 0); in a6xx_get_gmu_registers()
1292 struct a6xx_gmu *gmu = &a6xx_gpu->gmu; in a6xx_snapshot_gmu_hfi_history() local
1295 BUILD_BUG_ON(ARRAY_SIZE(gmu->queues) != ARRAY_SIZE(a6xx_state->hfi_queue_history)); in a6xx_snapshot_gmu_hfi_history()
[all …]
H A Da6xx_gpu.h92 struct a6xx_gmu gmu; member
264 int a6xx_gmu_wait_for_idle(struct a6xx_gmu *gmu);
266 bool a6xx_gmu_isidle(struct a6xx_gmu *gmu);
268 int a6xx_gmu_set_oob(struct a6xx_gmu *gmu, enum a6xx_gmu_oob_state state);
269 void a6xx_gmu_clear_oob(struct a6xx_gmu *gmu, enum a6xx_gmu_oob_state state);
H A Da6xx_hfi.h49 /* This is the outgoing queue to the GMU */
52 /* THis is the incoming response queue from the GMU */
H A Da6xx_gpu_state.h345 /* GMU GX */
354 /* GMU CX */
364 /* GMU AO */
/linux/Documentation/devicetree/bindings/opp/
H A Dopp-v2-qcom-adreno.yaml44 (called Graphics Management Unit a.k.a GMU) during wake up. It may not
45 be present for some OPPs and GMU will disable ACD while transitioning
48 SoC. So, it doesn't have any unit. This data is passed to GMU firmware
/linux/arch/arm64/boot/dts/qcom/
H A Dmsm8992.dtsi31 gmu-sram@0 {
H A Dsdm670.dtsi1366 * controlled entirely by the GMU
1375 qcom,gmu = <&gmu>;
1486 gmu: gmu@506a000 { label
1487 compatible = "qcom,adreno-gmu-615.0", "qcom,adreno-gmu";
1492 reg-names = "gmu", "gmu_pdc", "gmu_pdc_seq";
1496 interrupt-names = "hfi", "gmu";
1502 clock-names = "gmu", "cxo", "axi", "memnoc";
H A Dpurwa.dtsi29 &gmu {
30 compatible = "qcom,adreno-gmu-x145.0", "qcom,adreno-gmu";
H A Dsm6350.dtsi1461 qcom,gmu = <&gmu>;
1545 gmu: gmu@3d6a000 { label
1546 compatible = "qcom,adreno-gmu-619.0", "qcom,adreno-gmu";
1550 reg-names = "gmu",
1557 "gmu";
1565 "gmu",
H A Dsar2130p.dtsi1714 qcom,gmu = <&gmu>;
1773 gmu: gmu@3d6a000 { label
1774 compatible = "qcom,adreno-gmu-621.0", "qcom,adreno-gmu";
1778 reg-names = "gmu", "rscc", "gmu_pdc";
1782 interrupt-names = "hfi", "gmu";
1791 "gmu",
H A Dsc8180x.dtsi2277 qcom,gmu = <&gmu>;
2326 gmu: gmu@2c6a000 { label
2327 compatible = "qcom,adreno-gmu-680.1", "qcom,adreno-gmu";
2332 reg-names = "gmu",
2338 interrupt-names = "hfi", "gmu";
2345 clock-names = "ahb", "gmu", "cxo", "axi", "memnoc";
H A Dsm8350.dtsi2049 qcom,gmu = <&gmu>;
2114 gmu: gmu@3d6a000 { label
2115 compatible = "qcom,adreno-gmu-660.1", "qcom,adreno-gmu";
2120 reg-names = "gmu", "rscc", "gmu_pdc";
2124 interrupt-names = "hfi", "gmu";
2133 clock-names = "gmu",
H A Dsc7180.dtsi2178 qcom,gmu = <&gmu>;
2276 gmu: gmu@506a000 { label
2277 compatible = "qcom,adreno-gmu-618.0", "qcom,adreno-gmu";
2280 reg-names = "gmu", "gmu_pdc", "gmu_pdc_seq";
2283 interrupt-names = "hfi", "gmu";
2288 clock-names = "gmu", "cxo", "axi", "memnoc";
H A Dsm6115.dtsi1725 /* There's no (real) GMU, so we have to handle quite a bunch of clocks! */
1736 "gmu",
1744 qcom,gmu = <&gmu_wrapper>;
1810 gmu_wrapper: gmu@596a000 {
1811 compatible = "qcom,adreno-gmu-wrapper";
1813 reg-names = "gmu";
H A Dagatti.dtsi1665 "gmu",
1675 qcom,gmu = <&gmu_wrapper>;
1744 gmu_wrapper: gmu@596a000 {
1745 compatible = "qcom,adreno-gmu-wrapper";
1747 reg-names = "gmu";
H A Dsm8150.dtsi2259 qcom,gmu = <&gmu>;
2312 gmu: gmu@2c6a000 { label
2313 compatible = "qcom,adreno-gmu-640.1", "qcom,adreno-gmu";
2318 reg-names = "gmu", "gmu_pdc", "gmu_pdc_seq";
2322 interrupt-names = "hfi", "gmu";
2329 clock-names = "ahb", "gmu", "cxo", "axi", "memnoc";
/linux/drivers/gpu/drm/ci/xfails/
H A Dmsm-sm8350-hdk-skips.txt30 # [ 200.950227] platform 3d6a000.gmu: [drm:a6xx_hfi_send_msg.constprop.0] *ERROR* Message HFI_H2F_…
35 # [ 204.213387] platform 3d6a000.gmu: GMU watchdog expired
/linux/Documentation/devicetree/bindings/sram/
H A Dqcom,ocmem.yaml120 gmu-sram@0 {
/linux/drivers/clk/qcom/
H A Dgdsc.c636 * On SDM845+ the GPU GX domain is *almost* entirely controlled by the GMU
641 * the GMU crashes it could leave the GX on. In order to successfully bring back
650 * driver. During power up, nothing will happen from the CPU (and the GMU will
/linux/Documentation/devicetree/bindings/iommu/
H A Darm,smmu.yaml518 - const: gmu
527 - description: GMU clock

12