Skip to content

Commit d46b25b

Browse files
akhilpo-qcomRob Clark
authored andcommitted
drm/msm/adreno: Move gbif_halt() to adreno_gpu_func
Move the gbif halt fn to adreno_gpu_func so that we can call different implementation from common code. This will come handy when we implement A8x layer. Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> Patchwork: https://patchwork.freedesktop.org/patch/689005/ Message-ID: <20251118-kaana-gpu-support-v4-7-86eeb8e93fb6@oss.qualcomm.com> Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
1 parent 491fadb commit d46b25b

3 files changed

Lines changed: 8 additions & 4 deletions

File tree

drivers/gpu/drm/msm/adreno/a6xx_gmu.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,7 +1079,7 @@ static void a6xx_gmu_force_off(struct a6xx_gmu *gmu)
10791079
/* Halt the gmu cm3 core */
10801080
gmu_write(gmu, REG_A6XX_GMU_CM3_SYSRESET, 1);
10811081

1082-
a6xx_bus_clear_pending_transactions(adreno_gpu, true);
1082+
adreno_gpu->funcs->bus_halt(adreno_gpu, true);
10831083

10841084
/* Reset GPU core blocks */
10851085
a6xx_gpu_sw_reset(gpu, true);
@@ -1251,7 +1251,7 @@ static void a6xx_gmu_shutdown(struct a6xx_gmu *gmu)
12511251
if (ret)
12521252
goto force_off;
12531253

1254-
a6xx_bus_clear_pending_transactions(adreno_gpu, a6xx_gpu->hung);
1254+
adreno_gpu->funcs->bus_halt(adreno_gpu, a6xx_gpu->hung);
12551255

12561256
/* tell the GMU we want to slumber */
12571257
ret = a6xx_gmu_notify_slumber(gmu);

drivers/gpu/drm/msm/adreno/a6xx_gpu.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1595,7 +1595,7 @@ static void a6xx_recover(struct msm_gpu *gpu)
15951595

15961596
if (adreno_has_gmu_wrapper(adreno_gpu) || adreno_has_rgmu(adreno_gpu)) {
15971597
/* Drain the outstanding traffic on memory buses */
1598-
a6xx_bus_clear_pending_transactions(adreno_gpu, true);
1598+
adreno_gpu->funcs->bus_halt(adreno_gpu, true);
15991599

16001600
/* Reset the GPU to a clean state */
16011601
a6xx_gpu_sw_reset(gpu, true);
@@ -2316,7 +2316,7 @@ static int a6xx_pm_suspend(struct msm_gpu *gpu)
23162316
mutex_lock(&a6xx_gpu->gmu.lock);
23172317

23182318
/* Drain the outstanding traffic on memory buses */
2319-
a6xx_bus_clear_pending_transactions(adreno_gpu, true);
2319+
adreno_gpu->funcs->bus_halt(adreno_gpu, true);
23202320

23212321
if (adreno_is_a619_holi(adreno_gpu))
23222322
a6xx_sptprac_disable(gmu);
@@ -2685,6 +2685,7 @@ const struct adreno_gpu_funcs a6xx_gpu_funcs = {
26852685
},
26862686
.init = a6xx_gpu_init,
26872687
.get_timestamp = a6xx_gmu_get_timestamp,
2688+
.bus_halt = a6xx_bus_clear_pending_transactions,
26882689
};
26892690

26902691
const struct adreno_gpu_funcs a6xx_gmuwrapper_funcs = {
@@ -2715,6 +2716,7 @@ const struct adreno_gpu_funcs a6xx_gmuwrapper_funcs = {
27152716
},
27162717
.init = a6xx_gpu_init,
27172718
.get_timestamp = a6xx_get_timestamp,
2719+
.bus_halt = a6xx_bus_clear_pending_transactions,
27182720
};
27192721

27202722
const struct adreno_gpu_funcs a7xx_gpu_funcs = {
@@ -2747,4 +2749,5 @@ const struct adreno_gpu_funcs a7xx_gpu_funcs = {
27472749
},
27482750
.init = a6xx_gpu_init,
27492751
.get_timestamp = a6xx_gmu_get_timestamp,
2752+
.bus_halt = a6xx_bus_clear_pending_transactions,
27502753
};

drivers/gpu/drm/msm/adreno/adreno_gpu.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ struct adreno_gpu_funcs {
7777
struct msm_gpu_funcs base;
7878
struct msm_gpu *(*init)(struct drm_device *dev);
7979
int (*get_timestamp)(struct msm_gpu *gpu, uint64_t *value);
80+
void (*bus_halt)(struct adreno_gpu *adreno_gpu, bool gx_off);
8081
};
8182

8283
struct adreno_reglist {

0 commit comments

Comments
 (0)