Loading drivers/gpu/msm/a6xx_reg.h +0 −6 Original line number Diff line number Diff line Loading @@ -965,10 +965,6 @@ #define A6XX_RSCC_TCS2_DRV0_STATUS 0x23A16 #define A6XX_RSCC_TCS3_DRV0_STATUS 0x23B7E /* CPR controller */ #define A6XX_GPU_CPR_FSM_CTL 0x26801 /* GPU PDC sequencer registers in AOSS.RPMh domain */ #define PDC_GPU_ENABLE_PDC 0x21140 #define PDC_GPU_SEQ_START_ADDR 0x21148 Loading @@ -986,7 +982,5 @@ #define PDC_GPU_TCS1_CMD0_DATA 0x21577 #define PDC_GPU_SEQ_MEM_0 0xA0000 /* GFX rail CPR registers in AOSS.CPR domain */ #define CPR_CPRF_CPRF5_CTRL 0x1801 #endif /* _A6XX_REG_H */ drivers/gpu/msm/adreno.h +0 −6 Original line number Diff line number Diff line Loading @@ -1161,12 +1161,6 @@ static inline int adreno_is_a630v1(struct adreno_device *adreno_dev) (ADRENO_CHIPID_PATCH(adreno_dev->chipid) == 0); } static inline int adreno_is_a630v2(struct adreno_device *adreno_dev) { return (ADRENO_GPUREV(adreno_dev) == ADRENO_REV_A630) && (ADRENO_CHIPID_PATCH(adreno_dev->chipid) == 1); } /* * adreno_checkreg_off() - Checks the validity of a register enum * @adreno_dev: Pointer to adreno device Loading drivers/gpu/msm/adreno_a6xx.c +2 −41 Original line number Diff line number Diff line Loading @@ -871,16 +871,6 @@ static int _load_firmware(struct kgsl_device *device, const char *fwfile, #define RSC_CMD_OFFSET 2 #define PDC_CMD_OFFSET 4 static void _regread(void __iomem *regbase, unsigned int offsetwords, unsigned int *value) { void __iomem *reg; reg = regbase + (offsetwords << 2); *value = __raw_readl(reg); /* Ensure read completes */ rmb(); } static void _regwrite(void __iomem *regbase, unsigned int offsetwords, unsigned int value) Loading Loading @@ -1399,8 +1389,6 @@ static int a6xx_rpmh_power_on_gpu(struct kgsl_device *device) { struct gmu_device *gmu = &device->gmu; struct device *dev = &gmu->pdev->dev; struct adreno_device *adreno_dev = ADRENO_DEVICE(device); unsigned int tmp; int val; kgsl_gmu_regread(device, A6XX_GPU_CC_GX_DOMAIN_MISC, &val); Loading Loading @@ -1430,19 +1418,6 @@ static int a6xx_rpmh_power_on_gpu(struct kgsl_device *device) kgsl_gmu_regwrite(device, A6XX_GMU_RSCC_CONTROL_REQ, 0); /* Turn on GFX rail CPR */ if (adreno_is_a630v2(adreno_dev)) { _regread(gmu->cpr_reg_virt, CPR_CPRF_CPRF5_CTRL, &tmp); tmp |= BIT(2); _regwrite(gmu->cpr_reg_virt, CPR_CPRF_CPRF5_CTRL, tmp); kgsl_gmu_regread(device, A6XX_GPU_CPR_FSM_CTL, &tmp); tmp |= BIT(0); kgsl_gmu_regwrite(device, A6XX_GPU_CPR_FSM_CTL, tmp); /* Ensure write happens before exit the function */ wmb(); } /* Enable the power counter because it was disabled before slumber */ kgsl_gmu_regwrite(device, A6XX_GMU_CX_GMU_POWER_COUNTER_ENABLE, 1); Loading @@ -1455,23 +1430,9 @@ static int a6xx_rpmh_power_on_gpu(struct kgsl_device *device) static int a6xx_rpmh_power_off_gpu(struct kgsl_device *device) { struct gmu_device *gmu = &device->gmu; struct adreno_device *adreno_dev = ADRENO_DEVICE(device); unsigned int tmp; const struct adreno_device *adreno_dev = ADRENO_DEVICE(device); int val; /* Turn off GFX rail CPR */ if (adreno_is_a630v2(adreno_dev)) { _regread(gmu->cpr_reg_virt, CPR_CPRF_CPRF5_CTRL, &tmp); tmp &= ~BIT(2); _regwrite(gmu->cpr_reg_virt, CPR_CPRF_CPRF5_CTRL, tmp); kgsl_gmu_regread(device, A6XX_GPU_CPR_FSM_CTL, &tmp); tmp &= ~BIT(0); kgsl_gmu_regwrite(device, A6XX_GPU_CPR_FSM_CTL, tmp); /* Ensure write completes before starting sleep seq */ wmb(); } /* RSC sleep sequence */ kgsl_gmu_regwrite(device, A6XX_RSCC_TIMESTAMP_UNIT1_EN_DRV0, 1); kgsl_gmu_regwrite(device, A6XX_GMU_RSCC_CONTROL_REQ, 1); Loading Loading @@ -1983,7 +1944,7 @@ static int a6xx_gmu_suspend(struct kgsl_device *device) a6xx_sptprac_disable(adreno_dev); /* Disconnect GPU from BUS. Clear and reconnected after reset */ /* adreno_vbif_clear_pending_transactions(device); */ adreno_vbif_clear_pending_transactions(device); /* Unnecessary: a6xx_soft_reset(adreno_dev); */ /* Check no outstanding RPMh voting */ Loading drivers/gpu/msm/kgsl_gmu.c +5 −16 Original line number Diff line number Diff line Loading @@ -862,7 +862,7 @@ static int gmu_pwrlevel_probe(struct gmu_device *gmu, struct device_node *node) return 0; } static int gmu_reg_probe(struct gmu_device *gmu, const char *name) static int gmu_reg_probe(struct gmu_device *gmu, const char *name, bool is_gmu) { struct resource *res; Loading @@ -880,7 +880,7 @@ static int gmu_reg_probe(struct gmu_device *gmu, const char *name) return -EINVAL; } if (!strcmp(name, "kgsl_gmu_reg")) { if (is_gmu) { gmu->reg_phys = res->start; gmu->reg_len = resource_size(res); gmu->reg_virt = devm_ioremap(&gmu->pdev->dev, res->start, Loading @@ -891,20 +891,13 @@ static int gmu_reg_probe(struct gmu_device *gmu, const char *name) return -ENODEV; } } else if (!strcmp(name, "kgsl_gmu_pdc_reg")) { } else { gmu->pdc_reg_virt = devm_ioremap(&gmu->pdev->dev, res->start, resource_size(res)); if (gmu->pdc_reg_virt == NULL) { dev_err(&gmu->pdev->dev, "PDC regs ioremap failed\n"); return -ENODEV; } } else if (!strcmp(name, "kgsl_gmu_cpr_reg")) { gmu->cpr_reg_virt = devm_ioremap(&gmu->pdev->dev, res->start, resource_size(res)); if (gmu->cpr_reg_virt == NULL) { dev_err(&gmu->pdev->dev, "CPR regs ioremap failed\n"); return -ENODEV; } } return 0; Loading Loading @@ -1125,15 +1118,11 @@ int gmu_probe(struct kgsl_device *device) mem_addr = gmu->hfi_mem; /* Map and reserve GMU CSRs registers */ ret = gmu_reg_probe(gmu, "kgsl_gmu_reg"); if (ret) goto error; ret = gmu_reg_probe(gmu, "kgsl_gmu_pdc_reg"); ret = gmu_reg_probe(gmu, "kgsl_gmu_reg", true); if (ret) goto error; ret = gmu_reg_probe(gmu, "kgsl_gmu_cpr_reg"); ret = gmu_reg_probe(gmu, "kgsl_gmu_pdc_reg", false); if (ret) goto error; Loading drivers/gpu/msm/kgsl_gmu.h +0 −2 Original line number Diff line number Diff line Loading @@ -166,7 +166,6 @@ enum gpu_idle_level { * and GPU register set, the offset will be used when accessing * gmu registers using offset defined in GPU register space. * @pdc_reg_virt: starting kernel virtual address for RPMh PDC registers * @cpr_reg_virt: starting kernel virtual address for RPMh CPR controller * @gmu_interrupt_num: GMU interrupt number * @fw_image: descriptor of GMU memory that has GMU image in it * @hfi_mem: pointer to HFI shared memory Loading Loading @@ -203,7 +202,6 @@ struct gmu_device { unsigned int reg_len; unsigned int gmu2gpu_offset; void __iomem *pdc_reg_virt; void __iomem *cpr_reg_virt; unsigned int gmu_interrupt_num; struct gmu_memdesc fw_image; struct gmu_memdesc *hfi_mem; Loading Loading
drivers/gpu/msm/a6xx_reg.h +0 −6 Original line number Diff line number Diff line Loading @@ -965,10 +965,6 @@ #define A6XX_RSCC_TCS2_DRV0_STATUS 0x23A16 #define A6XX_RSCC_TCS3_DRV0_STATUS 0x23B7E /* CPR controller */ #define A6XX_GPU_CPR_FSM_CTL 0x26801 /* GPU PDC sequencer registers in AOSS.RPMh domain */ #define PDC_GPU_ENABLE_PDC 0x21140 #define PDC_GPU_SEQ_START_ADDR 0x21148 Loading @@ -986,7 +982,5 @@ #define PDC_GPU_TCS1_CMD0_DATA 0x21577 #define PDC_GPU_SEQ_MEM_0 0xA0000 /* GFX rail CPR registers in AOSS.CPR domain */ #define CPR_CPRF_CPRF5_CTRL 0x1801 #endif /* _A6XX_REG_H */
drivers/gpu/msm/adreno.h +0 −6 Original line number Diff line number Diff line Loading @@ -1161,12 +1161,6 @@ static inline int adreno_is_a630v1(struct adreno_device *adreno_dev) (ADRENO_CHIPID_PATCH(adreno_dev->chipid) == 0); } static inline int adreno_is_a630v2(struct adreno_device *adreno_dev) { return (ADRENO_GPUREV(adreno_dev) == ADRENO_REV_A630) && (ADRENO_CHIPID_PATCH(adreno_dev->chipid) == 1); } /* * adreno_checkreg_off() - Checks the validity of a register enum * @adreno_dev: Pointer to adreno device Loading
drivers/gpu/msm/adreno_a6xx.c +2 −41 Original line number Diff line number Diff line Loading @@ -871,16 +871,6 @@ static int _load_firmware(struct kgsl_device *device, const char *fwfile, #define RSC_CMD_OFFSET 2 #define PDC_CMD_OFFSET 4 static void _regread(void __iomem *regbase, unsigned int offsetwords, unsigned int *value) { void __iomem *reg; reg = regbase + (offsetwords << 2); *value = __raw_readl(reg); /* Ensure read completes */ rmb(); } static void _regwrite(void __iomem *regbase, unsigned int offsetwords, unsigned int value) Loading Loading @@ -1399,8 +1389,6 @@ static int a6xx_rpmh_power_on_gpu(struct kgsl_device *device) { struct gmu_device *gmu = &device->gmu; struct device *dev = &gmu->pdev->dev; struct adreno_device *adreno_dev = ADRENO_DEVICE(device); unsigned int tmp; int val; kgsl_gmu_regread(device, A6XX_GPU_CC_GX_DOMAIN_MISC, &val); Loading Loading @@ -1430,19 +1418,6 @@ static int a6xx_rpmh_power_on_gpu(struct kgsl_device *device) kgsl_gmu_regwrite(device, A6XX_GMU_RSCC_CONTROL_REQ, 0); /* Turn on GFX rail CPR */ if (adreno_is_a630v2(adreno_dev)) { _regread(gmu->cpr_reg_virt, CPR_CPRF_CPRF5_CTRL, &tmp); tmp |= BIT(2); _regwrite(gmu->cpr_reg_virt, CPR_CPRF_CPRF5_CTRL, tmp); kgsl_gmu_regread(device, A6XX_GPU_CPR_FSM_CTL, &tmp); tmp |= BIT(0); kgsl_gmu_regwrite(device, A6XX_GPU_CPR_FSM_CTL, tmp); /* Ensure write happens before exit the function */ wmb(); } /* Enable the power counter because it was disabled before slumber */ kgsl_gmu_regwrite(device, A6XX_GMU_CX_GMU_POWER_COUNTER_ENABLE, 1); Loading @@ -1455,23 +1430,9 @@ static int a6xx_rpmh_power_on_gpu(struct kgsl_device *device) static int a6xx_rpmh_power_off_gpu(struct kgsl_device *device) { struct gmu_device *gmu = &device->gmu; struct adreno_device *adreno_dev = ADRENO_DEVICE(device); unsigned int tmp; const struct adreno_device *adreno_dev = ADRENO_DEVICE(device); int val; /* Turn off GFX rail CPR */ if (adreno_is_a630v2(adreno_dev)) { _regread(gmu->cpr_reg_virt, CPR_CPRF_CPRF5_CTRL, &tmp); tmp &= ~BIT(2); _regwrite(gmu->cpr_reg_virt, CPR_CPRF_CPRF5_CTRL, tmp); kgsl_gmu_regread(device, A6XX_GPU_CPR_FSM_CTL, &tmp); tmp &= ~BIT(0); kgsl_gmu_regwrite(device, A6XX_GPU_CPR_FSM_CTL, tmp); /* Ensure write completes before starting sleep seq */ wmb(); } /* RSC sleep sequence */ kgsl_gmu_regwrite(device, A6XX_RSCC_TIMESTAMP_UNIT1_EN_DRV0, 1); kgsl_gmu_regwrite(device, A6XX_GMU_RSCC_CONTROL_REQ, 1); Loading Loading @@ -1983,7 +1944,7 @@ static int a6xx_gmu_suspend(struct kgsl_device *device) a6xx_sptprac_disable(adreno_dev); /* Disconnect GPU from BUS. Clear and reconnected after reset */ /* adreno_vbif_clear_pending_transactions(device); */ adreno_vbif_clear_pending_transactions(device); /* Unnecessary: a6xx_soft_reset(adreno_dev); */ /* Check no outstanding RPMh voting */ Loading
drivers/gpu/msm/kgsl_gmu.c +5 −16 Original line number Diff line number Diff line Loading @@ -862,7 +862,7 @@ static int gmu_pwrlevel_probe(struct gmu_device *gmu, struct device_node *node) return 0; } static int gmu_reg_probe(struct gmu_device *gmu, const char *name) static int gmu_reg_probe(struct gmu_device *gmu, const char *name, bool is_gmu) { struct resource *res; Loading @@ -880,7 +880,7 @@ static int gmu_reg_probe(struct gmu_device *gmu, const char *name) return -EINVAL; } if (!strcmp(name, "kgsl_gmu_reg")) { if (is_gmu) { gmu->reg_phys = res->start; gmu->reg_len = resource_size(res); gmu->reg_virt = devm_ioremap(&gmu->pdev->dev, res->start, Loading @@ -891,20 +891,13 @@ static int gmu_reg_probe(struct gmu_device *gmu, const char *name) return -ENODEV; } } else if (!strcmp(name, "kgsl_gmu_pdc_reg")) { } else { gmu->pdc_reg_virt = devm_ioremap(&gmu->pdev->dev, res->start, resource_size(res)); if (gmu->pdc_reg_virt == NULL) { dev_err(&gmu->pdev->dev, "PDC regs ioremap failed\n"); return -ENODEV; } } else if (!strcmp(name, "kgsl_gmu_cpr_reg")) { gmu->cpr_reg_virt = devm_ioremap(&gmu->pdev->dev, res->start, resource_size(res)); if (gmu->cpr_reg_virt == NULL) { dev_err(&gmu->pdev->dev, "CPR regs ioremap failed\n"); return -ENODEV; } } return 0; Loading Loading @@ -1125,15 +1118,11 @@ int gmu_probe(struct kgsl_device *device) mem_addr = gmu->hfi_mem; /* Map and reserve GMU CSRs registers */ ret = gmu_reg_probe(gmu, "kgsl_gmu_reg"); if (ret) goto error; ret = gmu_reg_probe(gmu, "kgsl_gmu_pdc_reg"); ret = gmu_reg_probe(gmu, "kgsl_gmu_reg", true); if (ret) goto error; ret = gmu_reg_probe(gmu, "kgsl_gmu_cpr_reg"); ret = gmu_reg_probe(gmu, "kgsl_gmu_pdc_reg", false); if (ret) goto error; Loading
drivers/gpu/msm/kgsl_gmu.h +0 −2 Original line number Diff line number Diff line Loading @@ -166,7 +166,6 @@ enum gpu_idle_level { * and GPU register set, the offset will be used when accessing * gmu registers using offset defined in GPU register space. * @pdc_reg_virt: starting kernel virtual address for RPMh PDC registers * @cpr_reg_virt: starting kernel virtual address for RPMh CPR controller * @gmu_interrupt_num: GMU interrupt number * @fw_image: descriptor of GMU memory that has GMU image in it * @hfi_mem: pointer to HFI shared memory Loading Loading @@ -203,7 +202,6 @@ struct gmu_device { unsigned int reg_len; unsigned int gmu2gpu_offset; void __iomem *pdc_reg_virt; void __iomem *cpr_reg_virt; unsigned int gmu_interrupt_num; struct gmu_memdesc fw_image; struct gmu_memdesc *hfi_mem; Loading