From patchwork Wed Sep 12 09:50:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chunming Zhou X-Patchwork-Id: 10597247 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 953E6920 for ; Wed, 12 Sep 2018 09:51:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 81A7C296EE for ; Wed, 12 Sep 2018 09:51:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 73D25296FC; Wed, 12 Sep 2018 09:51:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 2462F296EE for ; Wed, 12 Sep 2018 09:51:27 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id F15F76E4E3; Wed, 12 Sep 2018 09:51:25 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from NAM05-BY2-obe.outbound.protection.outlook.com (mail-eopbgr710060.outbound.protection.outlook.com [40.107.71.60]) by gabe.freedesktop.org (Postfix) with ESMTPS id 66BDC6E4DF; Wed, 12 Sep 2018 09:51:24 +0000 (UTC) Received: from DM3PR12CA0044.namprd12.prod.outlook.com (2603:10b6:0:56::12) by SN1PR12MB0429.namprd12.prod.outlook.com (2a01:111:e400:5863::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1122.15; Wed, 12 Sep 2018 09:51:22 +0000 Received: from DM3NAM03FT057.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e49::209) by DM3PR12CA0044.outlook.office365.com (2603:10b6:0:56::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1122.16 via Frontend Transport; Wed, 12 Sep 2018 09:51:22 +0000 Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Received: from SATLEXCHOV01.amd.com (165.204.84.17) by DM3NAM03FT057.mail.protection.outlook.com (10.152.83.45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.1143.11 via Frontend Transport; Wed, 12 Sep 2018 09:51:22 +0000 Received: from zhoucm1.amd.com (10.34.1.3) by SATLEXCHOV01.amd.com (10.181.40.71) with Microsoft SMTP Server id 14.3.389.1; Wed, 12 Sep 2018 04:51:21 -0500 From: Chunming Zhou To: Subject: [PATCH libdrm 3/5] [libdrm]: add timeline wait/query ioctl Date: Wed, 12 Sep 2018 17:50:46 +0800 Message-ID: <20180912095048.928-3-david1.zhou@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180912095048.928-1-david1.zhou@amd.com> References: <20180912095048.928-1-david1.zhou@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:165.204.84.17; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(396003)(376002)(136003)(346002)(39860400002)(2980300002)(428003)(199004)(189003)(486006)(76176011)(476003)(305945005)(53936002)(105586002)(106466001)(77096007)(356003)(26005)(2616005)(36756003)(2351001)(53416004)(7696005)(51416003)(336012)(50466002)(478600001)(48376002)(5660300001)(81156014)(72206003)(104016004)(81166006)(6916009)(86362001)(426003)(97736004)(11346002)(68736007)(446003)(16586007)(47776003)(54906003)(1076002)(4326008)(126002)(2906002)(50226002)(450100002)(316002)(8676002)(186003)(8936002)(6666003); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB0429; H:SATLEXCHOV01.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoDomainNonexistent; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; DM3NAM03FT057; 1:gZpQv4Lu9xZ+M41lmlDP5/G3U/pN8Qk2uTmoKbZ9VEqUFPIUwjEXvyRXNmo1CouWCNdCn1B4IGeTV8jsOKc1mfNPbVHDrDMPfVv0iebQ2pWz5vitcfwmnX+Q0LC9z3aO X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ba54cb0a-d9b7-4e93-2265-08d618954c01 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060); SRVR:SN1PR12MB0429; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0429; 3:ZU+/9sqSwOpIrktYBAIRhEdLS7VnOIwwcdpCM15SJuYdwuE3y6DgIfoeCdbRL2+v2E8eRkh04FuGtDqXyrBndqk1hlj6djNjt3UVcFAe0DHVWMUF8auo7jTjFBj1Tblt5n63MtsY8Nf75nlEhO3lXSUCHHYuhCDDHLv2gtrKp/z62Co4FTGYJyjsBvZo0pfh6h6o4hJYgaXUcjiC4b7Ad44wQRbASFHNvxJuf1l/jjND9e80TQDxSkRVVvAK98evelPV2ylahO6tObWmwdFD1eymLcAWzSa1zesw/7lPXhv9Tvy1xyjNO5gyvqVGqm7dynHiE0Vv9JXZMj0x6X/C2gSP8DftwaSaljQ/LjYzEO8=; 25:3PQBG+tcPNQtf1XPK3jxQH5sl5yjl+MVbdOmODdwzs0WTfxU1OqQlrG3K4quS0I9T5gx2ZZLFAUQYrh5HRNqjEpSbvrVZ98FFd6R0nkQeFjbZYR7KXqphZJRFSagrDSjG7UMLsPdlfCZbkyA4pWUGWY7UvsEip3yvwWWWjtHLVudIcPGeL1Iu4yCN9SrrlQGUkdc6fM7ZuotijexNPmJQvmYD568G++/cAm5lKwoh/C43FzQN124u3xKcJE3l2ZK1MGZMX437yYCW2A0tAObk2QF/rdzEyKnN2Wh0RFNVn9+crZp57xBRsCeX7i9VMc1l1rVRB+tFLwKB1bMfOIbTQ== X-MS-TrafficTypeDiagnostic: SN1PR12MB0429: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0429; 31:hVyGEpW0G+8RjX3A/No2+znuzN2dUhj5QBdg57/pxUkwQNDw5t7yRhX55K5tM39OTmBCGMphbglbHW7ZGNQtUA07ZaPsMFpfbWCX6U3aAXnxwl5wr5JtIBr6n3DXz9LCK0aPNHiqQHqsluhhtk1qGtsRbrLjwNkXhwlBFFGQ/INGe9ZMctUDKghj1OTzIbPXnIo+qA9VOu798usMz/umtUHYuswmaKPGGsxwiLlCfRE=; 20:11euUz+H9UnfAPmGxZET4jmHAQaZcEMbr14C7yRfvLs1vi8Zdpdn3KX8CVXWpJrXwxNAxMe6C7IvcJetUQYBsYrMZVPh1hAfsv9c6uhxaGSgJUsSDuoZe7jhPtcbtAtLZcCqs4OhcWkYOD794Lh3ZMP5h5s3M6H1nULSLYZ7GpAezQ1+gaFg8v+snGaYUXq73xDaQdJmRDYNX+Xbn/7EfsFrUsjOaf499O6fV8lZXTabPKC+VoANdwjLbQsp3qIciRozVij5kPwx6bXmMmaUAq+w0stKildHH3EDBqLgfZvKGvKiQlAhmbIVNPtmtZsv1CDo/lJoTGgzmUQSwEGGVwFzZuv5i5/+8O1O2yHRCr30LWturgTWg8qIfz0e5vd2NPT/6TUTDYIjmwhPoiJUiBbYwCuXKznFLiGKP/FU+5sutukouLCEumhrd4kwOWbnpBPwvAaEXOB2A1RtTHIK/3X5IpDWXCeU0zjkR3SQYo6u50vtDgZWxsnIZCeB5Ste X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(93006095)(93003095)(3231311)(944501410)(52105095)(10201501046)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123564045)(20161123562045)(201708071742011)(7699050); SRVR:SN1PR12MB0429; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB0429; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0429; 4:l4OznZXtcb63qy+FrvfpaKyiA4jouaxTua0+yqrlETy0tQQ+/ToGEPXdz+T/n/dOxkj81mJiVlLhyH8W42f7awmCN7lAi7Ay/6s8BfsQJsTVvbRitlBAKbvQ2hLWxHPibgQumvXVAfQS1v7gvqgWNXY+mlxtSr1fazrGAYbkq7sBuDOPe+ft+G4sO3EtaVtTXUadib4Kksw5qGz8mt/5joij1SIKdZsgJNvt7XEF8/8DhPTFouUa5ZKqMqCt3VDghcPYM/CRWwtFA5RXttA2ud3cBSqUjJVbg4M1LVMkWoT+feHKQHNkBOQKWJLerPIo X-Forefront-PRVS: 07935ACF08 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR12MB0429; 23:8ytZXYzAdw5roGXAvG814H5XVBlXQyvaENh34XXIn?= XPV4cY66xTAltUGAPKUZSGYL6ux8meWv3YNcnu1vsp4ZuF0eoczCyggV5gtiu6lA0lqIh8FmkhAbn3iEaRylUjJM61IFjXi6ZMPoPPj+Ai/svDtw6sfPBq+CwfV2slCSR2Sto81gorV68x2rXvYKKFTwmO5j9SjU8vxbZ7/OiAqevgkRyC+1B9/x7xO5YbhSESsVFSX0JWshUhdy084YwvtXETu/tVNwG+8cT64k3kqaW+eRJGG20RztuIeqYHThoYyo1N/EGQh4sdTz7+pV4R4nSsYbP7+2GvAdPu75MzXSC97dDR4ZO0sh8isMH8UvTfUZnQdhNLR9SpH7rri/4oZTzNHSeRkenzhz7eZ8gbqDxcjFNiQVAoqUTBoQ7DuBs+ewVGy7p+idXJ8ppt5M6FTiB12jG1XKVUgLbNQycqB1Et7+njTfw4qOWk5L4N0criJF6oIy/Xt37Qca1ZdAaIiH4dH15Z2KQuzl4pvPJqpOLGA5tVKzkFGGRozLqp6MbqCrlYPmD5jxyVTWJKIBWSRyoAUvTE4DLtqKzAhQSkYnUvO1yWiqwzJ5Eto1SCvYT9ri33XZc4XZtMROFzld3bRxRNKNm2q3llqcxXLJ1334oEmHxvreW1IanU0EqLrP5lbklaKU5puAgMUZTSLcIV6Yo8id2LgOu5I9PO9CvLacy4ZVM21hU57Mlb1ZXagQ2VJyO9xgZ+HV3Bm8Yh0/UzbBtARchp3UL/7JsyqGEgg7T7HHp1/WKvwccS7M+AMa/M/jkqt+mBp7PAFWnkN/g4C+atmp1HOV1dwdGn9HS9KW3gcWYkHwscwVcXMdCxDzn4tWWQPeI7Qq/Q+q+zuts5XnynnBVH373waUHPPpy+dTHSr48uo/vEZP5bVk8aGYO3yPpGqPNgaJFJHzauULVuIUdyhD4z+cKrbUcCsnsYSeg/1pWVtqNxhImtQNnZN/qPn8LhmzkItHlcKM5gWUMkANnEM9Zw7uGMg0feSiiTKNoyf7b+Cpt56QrujWxrRnAI9VJ/ULfkoYVPFaervazeF/qpbtGJjPSvnSe7UJTlEy3SowQc2Wh3adNYaAyvCtgz9oNFHeqlbYqIQyf1BrCduSc6q2Y+3LMqhmU0R0BhdB9YViLcYxyj5sE9DFhFXuVE4uu9EDRJNWekSMWy7LcSc X-Microsoft-Antispam-Message-Info: BxG5E3FHQXCQmN73byVf2dJZpp58EwnBzlHDAhXbs4Twr5f45qk+VixFLKqX7+FBq0IH/p5rlTqeQKef4q8Ew1ZYC9FS6dA2yEt1Ft7fk9KUY7yiEImx0Q+A8fxMQlTtyUCd8WwI4Lsz3EN9l13jwKOug6DEeo2dsLm55wp0t+XJjp2JJFDjtaFyD0q72Q9xiaJL5+OHLZ2cy0mqb2RrQ+QNbxB4goOV53f6sqfv0jd51y91zX3WI9YmTzeeYNGub0PUOSlvC84YFdwiULTHyKlVk33lUM8lB7UtjUmcpA53fjZyKisfbEY8EsTEqBjpnlUV8WpZYMuon9v+6HMOPjNJ0NETZiw1gWyTeCcUt04= X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0429; 6:3GYr7jj3y/rYkKm7BMGFI9+xHYMFIKun4zbD7mbhoidcv6a9gGYn5fR/Mx/RkOdAornerFE/POHdx9RKhFaLUZnK5XXJVrVddfQ1KD1c/V4ExscwXxamKvvjFjby5Ez1kF6LGA5lhC3sJJ0br3YrOw977+vEftj+9S2N55dDwnbiMWKpMIe8hBPgDtW4WpryGCIVt2/uCBSK4PI+7J+F8r0/gbhSQ7Uy/mufp7VuTf1ttmhTUONpY/mJeAxQ4VXSMU6KHZNKPivfzTIkwvtONS7ie5zU4n0ceuojZQ/e4SXc/HHbGht/a6Q6gwcAgEbIReY582kuy0rnj8Pwd6jW34mz0aF9hUSC46DfluigNbs9YqdAnU0lNs0zanDj8DwAyyzsn5hdi/D0Zbvaxkr8FDs/Ye7b94klu4Wm+eefwnGlZxD7zncyWpUXMzQzmbgON5RIgrJYdZdeG5hyIcjFzw==; 5:Na0gI9/qUvInX32xdfDj3B7YWrvhiWzDijs72EqH9/wuY04Ze5EH7rN9tFVaRfMT6B0cVR1eMtnTdmY/SW+8KGZgDn9k7evKVwqzoI/XuCfnj8lXH7xtj8frH+Xyj3pF/vwUyWagrYZK+JQymWCOsPUCpJeoS7ScLK995oogixY=; 7:QwmfGNuzfIxFw9Aakqb7RSS55Od8MyKgshhulljg10JSLYf34wEBo7Gcns/xLEopPj8UTPqW+zGER0O0RS/ylPTRoRiumE+26qUpnKTNOtuMseV1lLo3bK1qhz1WZvBzC5qt7REqN1Z7Ube5bJk5IgzH6QmJUc66m6mXXGzOiKL9OqGw4tOatVM35j916LHTTX5GzNs4x90kR31FY6n4xJQsdxVceOKMWS4FNru2sM/ip//K4iopQ8b/DoO65c5L SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0429; 20:g8KrRPPFetLvkErsdJ9qOBokYKeWITO3f5+kc9SJT28Ci05cXkOKq8IaOtDD8BBpL64djpaF9AZmb5EEYSys8gDFVpmN5ckpe/14kwCSCFxFbjBJqGQ+A0TdajgPzSLbfgMx7zz9mN+K/ikdZ5/I/W5kIYarQIyQqHhMXdIwE4aLNVPBCVfESgIKfHIa7GbaSq/CWtjXqfD9AljKEBdJF7wieApeQSIiPvs3UJRSe9CwnxF3XDMcZr6P+Mx8u+E3 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2018 09:51:22.2089 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ba54cb0a-d9b7-4e93-2265-08d618954c01 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXCHOV01.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0429 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: amd-gfx@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Chunming Zhou --- xf86drm.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ xf86drm.h | 6 ++++++ 2 files changed, 50 insertions(+) diff --git a/xf86drm.c b/xf86drm.c index b2388194..0cd1cb75 100644 --- a/xf86drm.c +++ b/xf86drm.c @@ -4249,3 +4249,47 @@ int drmSyncobjSignal(int fd, const uint32_t *handles, uint32_t handle_count) ret = drmIoctl(fd, DRM_IOCTL_SYNCOBJ_SIGNAL, &args); return ret; } + +int drmSyncobjTimelineWait(int fd, uint32_t *handles, uint64_t *points, + unsigned num_handles, + int64_t timeout_nsec, unsigned flags, + uint32_t *first_signaled) +{ + struct drm_syncobj_timeline_wait args; + int ret; + + memclear(args); + args.handles = (uintptr_t)handles; + args.points = (uint64_t)(uintptr_t)points; + args.timeout_nsec = timeout_nsec; + args.count_handles = num_handles; + args.flags = flags; + + ret = drmIoctl(fd, DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT, &args); + if (ret < 0) + return -errno; + + if (first_signaled) + *first_signaled = args.first_signaled; + return ret; +} + + +int drmSyncobjQuery(int fd, uint32_t *handles, uint64_t *points, + uint32_t handle_count) +{ + struct drm_syncobj_timeline_query args; + int ret; + + memclear(args); + args.handles = (uintptr_t)handles; + args.points = (uint64_t)(uintptr_t)points; + args.count_handles = handle_count; + + ret = drmIoctl(fd, DRM_IOCTL_SYNCOBJ_QUERY, &args); + if (ret) + return ret; + return 0; +} + + diff --git a/xf86drm.h b/xf86drm.h index 7773d71a..49a40633 100644 --- a/xf86drm.h +++ b/xf86drm.h @@ -875,6 +875,12 @@ extern int drmSyncobjWait(int fd, uint32_t *handles, unsigned num_handles, uint32_t *first_signaled); extern int drmSyncobjReset(int fd, const uint32_t *handles, uint32_t handle_count); extern int drmSyncobjSignal(int fd, const uint32_t *handles, uint32_t handle_count); +extern int drmSyncobjTimelineWait(int fd, uint32_t *handles, uint64_t *points, + unsigned num_handles, + int64_t timeout_nsec, unsigned flags, + uint32_t *first_signaled); +extern int drmSyncobjQuery(int fd, uint32_t *handles, uint64_t *points, + uint32_t handle_count); #if defined(__cplusplus) }