From: hyesoo.yu Date: Thu, 2 Nov 2017 12:47:44 +0000 (+0900) Subject: [COMMON] g2d: eliminate unnecessary cache maintenance X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=7eabf5c34cc7ad8daec861dcf730af21b1f753ec;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git [COMMON] g2d: eliminate unnecessary cache maintenance The g2d execute cache maintencance only for the cachable buffer that is accessed by GPU if device is coherent, so condition check for cache maintenance is fixed. Change-Id: I9b8fa16cddcd12c00ed95fc08e4d4e179411938e Signed-off-by: hyesoo.yu --- diff --git a/drivers/gpu/exynos/g2d/g2d_uapi_process.c b/drivers/gpu/exynos/g2d/g2d_uapi_process.c index 0e8ed16d5141..b363194a687b 100644 --- a/drivers/gpu/exynos/g2d/g2d_uapi_process.c +++ b/drivers/gpu/exynos/g2d/g2d_uapi_process.c @@ -226,12 +226,13 @@ static int g2d_get_dmabuf(struct g2d_task *task, goto err; } - if (ion_cached_needsync_dmabuf(dmabuf)) + if (dir != DMA_TO_DEVICE) + prot |= IOMMU_WRITE; + + if (ion_cached_needsync_dmabuf(dmabuf)) { task->total_cached_len += buffer->payload; - if (dir != DMA_TO_DEVICE) { - prot |= IOMMU_WRITE; - if (ion_may_hwrender_dmabuf(dmabuf)) + if ((dir == DMA_TO_DEVICE) && ion_may_hwrender_dmabuf(dmabuf)) task->total_hwrender_len += buffer->payload; } @@ -770,6 +771,8 @@ int g2d_get_userdata(struct g2d_device *g2d_dev, struct g2d_context *ctx, task->flags = data->flags; task->num_source = data->num_source; + task->total_cached_len = 0; + task->total_hwrender_len = 0; ret = g2d_import_commands(g2d_dev, task, data, task->num_source); if (ret < 0)