From 7d07b3ae8ddad407913c5301877e694430a3263f Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Thu, 23 Nov 2023 08:24:31 +0000
Subject: [PATCH] add build kerneldeb
---
kernel/drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/kernel/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/kernel/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
index 946d8e3..ce31e32 100644
--- a/kernel/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
+++ b/kernel/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
@@ -38,7 +38,7 @@
{
struct drm_device *drm = rk_obj->base.dev;
struct rockchip_drm_private *private = drm->dev_private;
- int prot = IOMMU_READ | IOMMU_WRITE | IOMMU_TLB_SHOT_ENTIRE;
+ int prot = IOMMU_READ | IOMMU_WRITE;
ssize_t ret;
mutex_lock(&private->mm_lock);
@@ -62,6 +62,11 @@
ret = -ENOMEM;
goto err_remove_node;
}
+
+#ifdef CONFIG_IOMMU_API
+ if (private->domain->ops->flush_iotlb_all)
+ private->domain->ops->flush_iotlb_all(private->domain);
+#endif
rk_obj->size = ret;
@@ -459,6 +464,11 @@
rk_obj->base.size);
}
+static inline bool is_vop_enabled(void)
+{
+ return (IS_ENABLED(CONFIG_ROCKCHIP_VOP) || IS_ENABLED(CONFIG_ROCKCHIP_VOP2));
+}
+
static int rockchip_gem_alloc_buf(struct rockchip_gem_object *rk_obj,
bool alloc_kmap)
{
@@ -467,7 +477,7 @@
struct rockchip_drm_private *private = drm->dev_private;
int ret = 0;
- if (!private->domain)
+ if (!private->domain && is_vop_enabled())
rk_obj->flags |= ROCKCHIP_BO_CONTIG;
if (rk_obj->flags & ROCKCHIP_BO_SECURE) {
@@ -507,7 +517,7 @@
ret = rockchip_gem_iommu_map(rk_obj);
if (ret < 0)
goto err_free;
- } else {
+ } else if (is_vop_enabled()) {
WARN_ON(!rk_obj->dma_handle);
rk_obj->dma_addr = rk_obj->dma_handle;
}
@@ -819,7 +829,7 @@
struct drm_mode_create_dumb *args)
{
struct rockchip_gem_object *rk_obj;
- int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
+ u32 min_pitch = args->width * DIV_ROUND_UP(args->bpp, 8);
/*
* align to 64 bytes since Mali requires it.
--
Gitblit v1.6.2