1*4882a593SmuzhiyunFrom 7c618559ef24672f101f805c470a38969fd1f30f Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Jeffy Chen <jeffy.chen@rock-chips.com> 3*4882a593SmuzhiyunDate: Sat, 9 Oct 2021 12:32:24 +0800 4*4882a593SmuzhiyunSubject: [PATCH 6/6] HACK: pixman: Support using dma fd for RGA accel 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunUsage: 7*4882a593Smuzhiyunpixman_image_set_destroy_function(image, NULL, (void *)(ptrdiff_t)dma_fd) 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunSigned-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 10*4882a593Smuzhiyun--- 11*4882a593Smuzhiyun pixman/pixman.c | 12 ++++++++++-- 12*4882a593Smuzhiyun 1 file changed, 10 insertions(+), 2 deletions(-) 13*4882a593Smuzhiyun 14*4882a593Smuzhiyundiff --git a/pixman/pixman.c b/pixman/pixman.c 15*4882a593Smuzhiyunindex 371e421..d216a88 100644 16*4882a593Smuzhiyun--- a/pixman/pixman.c 17*4882a593Smuzhiyun+++ b/pixman/pixman.c 18*4882a593Smuzhiyun@@ -715,11 +715,19 @@ pixman_composite_try_rga (pixman_composite_info_t * info, 19*4882a593Smuzhiyun if (!pixman_transform_to_rga_rotate (transform, &src_info.rotation)) 20*4882a593Smuzhiyun return FALSE; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun+#define pixman_image_get_dma_fd(image) \ 23*4882a593Smuzhiyun+ (image)->common.destroy_func ? -1 : \ 24*4882a593Smuzhiyun+ ((intptr_t)(image)->common.destroy_data ?: -1) 25*4882a593Smuzhiyun+ 26*4882a593Smuzhiyun src_info.mmuFlag = 1; 27*4882a593Smuzhiyun- src_info.virAddr = src->bits.bits; 28*4882a593Smuzhiyun+ src_info.fd = pixman_image_get_dma_fd(src); 29*4882a593Smuzhiyun+ if (src_info.fd < 0) 30*4882a593Smuzhiyun+ src_info.virAddr = src->bits.bits; 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun dst_info.mmuFlag = 1; 33*4882a593Smuzhiyun- dst_info.virAddr = dest->bits.bits; 34*4882a593Smuzhiyun+ dst_info.fd = pixman_image_get_dma_fd(dest); 35*4882a593Smuzhiyun+ if (dst_info.fd < 0) 36*4882a593Smuzhiyun+ dst_info.virAddr = dest->bits.bits; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun switch (src->bits.format) { 39*4882a593Smuzhiyun case PIXMAN_yv12: 40*4882a593Smuzhiyun-- 41*4882a593Smuzhiyun2.20.1 42*4882a593Smuzhiyun 43