summaryrefslogtreecommitdiff
path: root/drivers/gpu
diff options
context:
space:
mode:
authorshengyang.chen <shengyang.chen@starfivetech.com>2023-06-21 05:15:12 +0300
committershengyang.chen <shengyang.chen@starfivetech.com>2023-06-21 05:18:11 +0300
commitd836d4b2e113e58f0c6707cd0a3dd35906e57b09 (patch)
treed1285bdf66dab68e0495b3a3597a836d54d68860 /drivers/gpu
parent4b6aab9092e8f9a4d66dba07cb9a1e440414e7be (diff)
downloadlinux-d836d4b2e113e58f0c6707cd0a3dd35906e57b09.tar.xz
vout: starfive: cache interface
replace flush cache interface from starfive_flush_dcache to sifive_l2_flush64_range Signed-off-by: Shengyang Chen <shengyang.chen@starfivetech.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/verisilicon/vs_dc.c10
-rw-r--r--drivers/gpu/drm/verisilicon/vs_dc.h2
-rw-r--r--drivers/gpu/drm/verisilicon/vs_plane.c2
-rw-r--r--drivers/gpu/drm/verisilicon/vs_plane.h3
4 files changed, 10 insertions, 7 deletions
diff --git a/drivers/gpu/drm/verisilicon/vs_dc.c b/drivers/gpu/drm/verisilicon/vs_dc.c
index b57ad1265b34..148c13387131 100644
--- a/drivers/gpu/drm/verisilicon/vs_dc.c
+++ b/drivers/gpu/drm/verisilicon/vs_dc.c
@@ -1003,13 +1003,13 @@ static void update_fb(struct vs_plane *plane, u8 display_id,
update_format(drm_fb->format->format, drm_fb->modifier, fb);
update_swizzle(drm_fb->format->format, fb);
update_watermark(plane_state->watermark, fb);
-/*
- starfive_flush_dcache(fb->y_address, fb->height * fb->y_stride);
+
+ sifive_l2_flush64_range(fb->y_address, fb->height * fb->y_stride);
if (fb->u_address)
- starfive_flush_dcache(fb->u_address, fb->height * fb->u_stride);
+ sifive_l2_flush64_range(fb->u_address, fb->height * fb->u_stride);
if (fb->v_address)
- starfive_flush_dcache(fb->v_address, fb->height * fb->v_stride);
-*/
+ sifive_l2_flush64_range(fb->v_address, fb->height * fb->v_stride);
+
plane_state->status.tile_mode = fb->tile_mode;
}
diff --git a/drivers/gpu/drm/verisilicon/vs_dc.h b/drivers/gpu/drm/verisilicon/vs_dc.h
index 061a49cc8dcc..92ee461d7f7d 100644
--- a/drivers/gpu/drm/verisilicon/vs_dc.h
+++ b/drivers/gpu/drm/verisilicon/vs_dc.h
@@ -79,6 +79,6 @@ struct vs_dc {
};
extern struct platform_driver dc_platform_driver;
-
+extern void sifive_l2_flush64_range(unsigned long start, unsigned long len);
#endif /* __VS_DC_H__ */
diff --git a/drivers/gpu/drm/verisilicon/vs_plane.c b/drivers/gpu/drm/verisilicon/vs_plane.c
index 6fa4d3b5359a..46a513cf3e1c 100644
--- a/drivers/gpu/drm/verisilicon/vs_plane.c
+++ b/drivers/gpu/drm/verisilicon/vs_plane.c
@@ -294,7 +294,7 @@ static void vs_plane_atomic_update(struct drm_plane *plane,
vs_obj = vs_fb_get_gem_obj(fb, i);
vs_plane->dma_addr[i] = vs_obj->iova + fb->offsets[i];
- //starfive_flush_dcache(vs_plane->dma_addr[i], vs_obj->size);
+ sifive_l2_flush64_range(vs_plane->dma_addr[i], vs_obj->size);
}
plane_state->status.src = drm_plane_state_src(new_state);
diff --git a/drivers/gpu/drm/verisilicon/vs_plane.h b/drivers/gpu/drm/verisilicon/vs_plane.h
index ab4591d54614..fc46fd7f5c8e 100644
--- a/drivers/gpu/drm/verisilicon/vs_plane.h
+++ b/drivers/gpu/drm/verisilicon/vs_plane.h
@@ -74,4 +74,7 @@ to_vs_plane_state(struct drm_plane_state *state)
{
return container_of(state, struct vs_plane_state, base);
}
+
+extern void sifive_l2_flush64_range(unsigned long start, unsigned long len);
+
#endif /* __VS_PLANE_H__ */