Loading drivers/gpu/msm/kgsl_gmu.c +3 −3 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ struct gmu_iommu_context gmu_ctx[] = { static struct gmu_memdesc gmu_kmem_entries[GMU_KERNEL_ENTRIES]; static unsigned long gmu_kmem_bitmap; static unsigned int num_uncached_entries; static void gmu_snapshot(struct kgsl_device *device); static void gmu_remove(struct kgsl_device *device); static int _gmu_iommu_fault_handler(struct device *dev, Loading Loading @@ -530,9 +532,7 @@ static int gmu_dcvs_set(struct kgsl_device *device, dev_err_ratelimited(&gmu->pdev->dev, "Failed to set GPU perf idx %d, bw idx %d\n", req.freq, req.bw); adreno_set_gpu_fault(adreno_dev, ADRENO_GMU_FAULT); adreno_dispatcher_schedule(device); gmu_snapshot(device); } /* indicate actual clock change */ Loading drivers/gpu/msm/kgsl_iommu.c +6 −2 Original line number Diff line number Diff line Loading @@ -2099,6 +2099,8 @@ kgsl_iommu_get_current_ttbr0(struct kgsl_mmu *mmu) { u64 val; struct kgsl_iommu *iommu = _IOMMU_PRIV(mmu); struct kgsl_iommu_context *ctx = &iommu->ctx[KGSL_IOMMU_CONTEXT_USER]; /* * We cannot enable or disable the clocks in interrupt context, this * function is called from interrupt context if there is an axi error Loading @@ -2106,9 +2108,11 @@ kgsl_iommu_get_current_ttbr0(struct kgsl_mmu *mmu) if (in_interrupt()) return 0; if (ctx->regbase == NULL) return 0; kgsl_iommu_enable_clk(mmu); val = KGSL_IOMMU_GET_CTX_REG_Q(&iommu->ctx[KGSL_IOMMU_CONTEXT_USER], TTBR0); val = KGSL_IOMMU_GET_CTX_REG_Q(ctx, TTBR0); kgsl_iommu_disable_clk(mmu); return val; } Loading drivers/gpu/msm/kgsl_pwrctrl.c +6 −0 Original line number Diff line number Diff line Loading @@ -2572,6 +2572,12 @@ _aware(struct kgsl_device *device) status = gmu_core_start(device); break; case KGSL_STATE_INIT: /* if GMU already in FAULT */ if (gmu_core_isenabled(device) && test_bit(GMU_FAULT, &device->gmu_core.flags)) { status = -EINVAL; break; } status = kgsl_pwrctrl_enable(device); break; /* The following 3 cases shouldn't occur, but don't panic. */ Loading Loading
drivers/gpu/msm/kgsl_gmu.c +3 −3 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ struct gmu_iommu_context gmu_ctx[] = { static struct gmu_memdesc gmu_kmem_entries[GMU_KERNEL_ENTRIES]; static unsigned long gmu_kmem_bitmap; static unsigned int num_uncached_entries; static void gmu_snapshot(struct kgsl_device *device); static void gmu_remove(struct kgsl_device *device); static int _gmu_iommu_fault_handler(struct device *dev, Loading Loading @@ -530,9 +532,7 @@ static int gmu_dcvs_set(struct kgsl_device *device, dev_err_ratelimited(&gmu->pdev->dev, "Failed to set GPU perf idx %d, bw idx %d\n", req.freq, req.bw); adreno_set_gpu_fault(adreno_dev, ADRENO_GMU_FAULT); adreno_dispatcher_schedule(device); gmu_snapshot(device); } /* indicate actual clock change */ Loading
drivers/gpu/msm/kgsl_iommu.c +6 −2 Original line number Diff line number Diff line Loading @@ -2099,6 +2099,8 @@ kgsl_iommu_get_current_ttbr0(struct kgsl_mmu *mmu) { u64 val; struct kgsl_iommu *iommu = _IOMMU_PRIV(mmu); struct kgsl_iommu_context *ctx = &iommu->ctx[KGSL_IOMMU_CONTEXT_USER]; /* * We cannot enable or disable the clocks in interrupt context, this * function is called from interrupt context if there is an axi error Loading @@ -2106,9 +2108,11 @@ kgsl_iommu_get_current_ttbr0(struct kgsl_mmu *mmu) if (in_interrupt()) return 0; if (ctx->regbase == NULL) return 0; kgsl_iommu_enable_clk(mmu); val = KGSL_IOMMU_GET_CTX_REG_Q(&iommu->ctx[KGSL_IOMMU_CONTEXT_USER], TTBR0); val = KGSL_IOMMU_GET_CTX_REG_Q(ctx, TTBR0); kgsl_iommu_disable_clk(mmu); return val; } Loading
drivers/gpu/msm/kgsl_pwrctrl.c +6 −0 Original line number Diff line number Diff line Loading @@ -2572,6 +2572,12 @@ _aware(struct kgsl_device *device) status = gmu_core_start(device); break; case KGSL_STATE_INIT: /* if GMU already in FAULT */ if (gmu_core_isenabled(device) && test_bit(GMU_FAULT, &device->gmu_core.flags)) { status = -EINVAL; break; } status = kgsl_pwrctrl_enable(device); break; /* The following 3 cases shouldn't occur, but don't panic. */ Loading