diff options
author | Dave Airlie <airlied@redhat.com> | 2018-10-10 02:49:37 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2018-10-10 02:49:55 -0400 |
commit | 62e681f7dcab746412dce22d4b75b32c5ea38cdb (patch) | |
tree | f83a71c0409302ee56fd1db859b3ed6854565af5 /drivers | |
parent | d995052cade4f4e2700f6e2045cd5db400986b17 (diff) | |
parent | 16f37102181e23ec4bec88fe1cfdd6c3c24dd1ed (diff) |
Merge tag 'drm-msm-fixes-2018-10-09' of git://people.freedesktop.org/~robclark/linux into drm-next
Fix 32-bit arm build.
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Rob Clark <robdclark@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/CAF6AEGt7s20e4aJmnOFM-uZHfYSsicy0E=ssse1D7LTXX4jnWQ@mail.gmail.com
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 11 |
2 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c index eabe9252ae1e..48b5304f460c 100644 --- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c | |||
@@ -1443,8 +1443,8 @@ static unsigned long a5xx_gpu_busy(struct msm_gpu *gpu) | |||
1443 | busy_cycles = gpu_read64(gpu, REG_A5XX_RBBM_PERFCTR_RBBM_0_LO, | 1443 | busy_cycles = gpu_read64(gpu, REG_A5XX_RBBM_PERFCTR_RBBM_0_LO, |
1444 | REG_A5XX_RBBM_PERFCTR_RBBM_0_HI); | 1444 | REG_A5XX_RBBM_PERFCTR_RBBM_0_HI); |
1445 | 1445 | ||
1446 | busy_time = (busy_cycles - gpu->devfreq.busy_cycles); | 1446 | busy_time = busy_cycles - gpu->devfreq.busy_cycles; |
1447 | do_div(busy_time, (clk_get_rate(gpu->core_clk) / 1000000)); | 1447 | do_div(busy_time, clk_get_rate(gpu->core_clk) / 1000000); |
1448 | 1448 | ||
1449 | gpu->devfreq.busy_cycles = busy_cycles; | 1449 | gpu->devfreq.busy_cycles = busy_cycles; |
1450 | 1450 | ||
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c index cdc3d59a659d..631257c297fd 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c | |||
@@ -761,18 +761,21 @@ static unsigned long a6xx_gpu_busy(struct msm_gpu *gpu) | |||
761 | { | 761 | { |
762 | struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu); | 762 | struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu); |
763 | struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu); | 763 | struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu); |
764 | u64 busy_cycles; | 764 | u64 busy_cycles, busy_time; |
765 | unsigned long busy_time; | ||
766 | 765 | ||
767 | busy_cycles = gmu_read64(&a6xx_gpu->gmu, | 766 | busy_cycles = gmu_read64(&a6xx_gpu->gmu, |
768 | REG_A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_L, | 767 | REG_A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_L, |
769 | REG_A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_H); | 768 | REG_A6XX_GMU_CX_GMU_POWER_COUNTER_XOCLK_0_H); |
770 | 769 | ||
771 | busy_time = ((busy_cycles - gpu->devfreq.busy_cycles) * 10) / 192; | 770 | busy_time = (busy_cycles - gpu->devfreq.busy_cycles) * 10; |
771 | do_div(busy_time, 192); | ||
772 | 772 | ||
773 | gpu->devfreq.busy_cycles = busy_cycles; | 773 | gpu->devfreq.busy_cycles = busy_cycles; |
774 | 774 | ||
775 | return busy_time; | 775 | if (WARN_ON(busy_time > ~0LU)) |
776 | return ~0LU; | ||
777 | |||
778 | return (unsigned long)busy_time; | ||
776 | } | 779 | } |
777 | 780 | ||
778 | static const struct adreno_gpu_funcs funcs = { | 781 | static const struct adreno_gpu_funcs funcs = { |