From patchwork Fri Dec 7 09:58:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chunming Zhou X-Patchwork-Id: 10717789 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 D0DB413BF for ; Fri, 7 Dec 2018 09:58:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BFB552D7F6 for ; Fri, 7 Dec 2018 09:58:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B39152D873; Fri, 7 Dec 2018 09:58:40 +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 3E7062D7F6 for ; Fri, 7 Dec 2018 09:58:40 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 65B006E715; Fri, 7 Dec 2018 09:58:39 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-eopbgr820045.outbound.protection.outlook.com [40.107.82.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9805A6E70E; Fri, 7 Dec 2018 09:58:35 +0000 (UTC) Received: from BN4PR12CA0016.namprd12.prod.outlook.com (2603:10b6:403:2::26) by BY2PR12MB0055.namprd12.prod.outlook.com (2a01:111:e400:2c80::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1404.17; Fri, 7 Dec 2018 09:58:33 +0000 Received: from BY2NAM03FT028.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::206) by BN4PR12CA0016.outlook.office365.com (2603:10b6:403:2::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1404.18 via Frontend Transport; Fri, 7 Dec 2018 09:58:33 +0000 Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Received: from SATLEXCHOV02.amd.com (165.204.84.17) by BY2NAM03FT028.mail.protection.outlook.com (10.152.84.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1404.17 via Frontend Transport; Fri, 7 Dec 2018 09:58:32 +0000 Received: from zhoucm1.amd.com (10.34.1.3) by SATLEXCHOV02.amd.com (10.181.40.72) with Microsoft SMTP Server id 14.3.389.1; Fri, 7 Dec 2018 03:58:31 -0600 From: Chunming Zhou To: , , Subject: [PATCH libdrm 6/7] expose timeline signal/export/import interfaces Date: Fri, 7 Dec 2018 17:58:02 +0800 Message-ID: <20181207095803.2155-6-david1.zhou@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181207095803.2155-1-david1.zhou@amd.com> References: <20181207095803.2155-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)(189003)(199004)(76176011)(53936002)(7696005)(51416003)(336012)(50226002)(486006)(2616005)(81156014)(68736007)(81166006)(126002)(47776003)(48376002)(476003)(8936002)(86362001)(2906002)(305945005)(2201001)(356004)(6666004)(106466001)(450100002)(8676002)(16586007)(110136005)(1076002)(316002)(97736004)(72206003)(104016004)(5660300001)(105586002)(77096007)(36756003)(26005)(50466002)(6346003)(478600001)(11346002)(4326008)(446003)(186003)(53416004)(426003); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR12MB0055; H:SATLEXCHOV02.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoDomainNonexistent; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; BY2NAM03FT028; 1:lNFDSLyDo1nlpMk61gma7GQ657lrY4x9+fP1zxXradDmgCQ9nDNytxWLjN9aHhBqvFVjP9fXeS5mryqFggzByG69eGdq8FItAxUEusfZXQ/KWQU3vVNqas93T+GJ6Gp6 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6b1f79f6-c5f1-4947-8808-08d65c2a8be5 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060); SRVR:BY2PR12MB0055; X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0055; 3:9+pufzWrCIIryac3bFf8jUv3wmGpjr8wcbXS8G2eJr/NWn1P4yFBpJ1vrnif5ioTEbteLxB2rMdXU9vdOdarjvQpRnJZuZlkCTL8oW/v/ctftctDxxD/fLSQS5o57HbK6NjwympehzP6P0m1cHriBVHJkJdpUNCHBzyFpi6dZOLxwAmwVbI5Klo5g0uP5zRUMP1rLqouBbSDj7L6mvgsudYn1dlc7SSLqQRIqvOE9cH8Ar0RFRId6oUDLZOzxZsyLoSW5g9m42FAwP+OaDz1ghOzc+RsiyU5f7woN9ERMTKLUvuoT1J9LMKAEEemsHNznOFAfzCHe3E45QSgSRo7T6Kq2DjBRqFWtckPF/JFVFQ=; 25:Htc42GGOBsh/L490Ce8c7sCjlzpiUOhXCvQO/awasgvyLeD/7kLRsdvIe7R1Uk/exAfxJ+sVwS92IC01WaqqykgDcXZYT0tIuxCE3rOW8hVuUzqxVvF3+FtfeHI9tQgCY19vTWpKfLdt/gPbvp/SSfUj0xa4fnw/CuGthEYFgUTM6B3/dUTXrNH/UVLWco1OwJCK0t3PtcSB2P4QiiMSxTViDrJuSrlg5CKE8pgIEknwbl+YpJhOKmhftzb24XzPYRirR7DNQWhi7iz6ODF6nMPeBIQy+MLDMJX+drU/Vr3ugxx0BM79qCD+W0V8plwpc8NkjidjXAugZzBjnKc7jg== X-MS-TrafficTypeDiagnostic: BY2PR12MB0055: X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0055; 31:lupqHXfUdNqOKDm3DrjCWBnA7yxpbCpbJklmwloPTYIMo49we96QgDBLmrwDFwJ0HcMIPOQK+Adx54RSgGEqXtiAVLDHzFaFeFiKYhKMBXEDbDI5iCgEgnvvA2w2RP72lHbJ+ZAB7JmHmvpZwEcOFrWc/hRgV4kwJBVj8BNV2B5vJSsRHsX5Jk5wddOodl+hPpsCt1Lo3pgkwx9KqNWB63/2wgY4IVMl1SVRapIckMs=; 20:IAPlXT2UdlatCbRZps0lvGYxyGVFsbUwY96btL8O7fdxksFIjkeRQGYuqINFLA7A0p42AbTk99S25pe+ttQKqXe04kuVibs99feQ6tFKW4SxVPIlkbTkDVEB3OyGYF0eoy/OUR01dOoOQghI4qnyJiC5n2YJ5Q6ON+mrenPu+R7RpXg3KAFzY1DI4k/mJ2n884A2CmeG80IgA9vFaPzbOIpsw/F5dctK2H2EqlzJiIVakdI5xCzINZZNRndLCj/KQq+O7ZILuDepFtyItOjaa6cNMMDJf3LmdC8OQNs2ZygelciuzDHIkq6u1i0hywx2xc178RucuyhJozYmZwvxPsp2e5HcBAFUd8ingd4Z1PNuQw/rOlvpoovCsCwPruWkdyjGKoNYj9AN5Cq2xPtsppvqyuJLEnF4kSXNVr/ObtHVrvz715I0ahZTK3XcBs7JghSx67p0r6pUXC2le8XN2sC/BBdUIX0tmAsMGl+hzjFe+/vWnViOXUmnr2gVnuzl X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93003095)(3231455)(999002)(944501520)(52105112)(6055026)(148016)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123560045)(20161123564045)(201708071742011)(7699051)(76991095); SRVR:BY2PR12MB0055; BCL:0; PCL:0; RULEID:; SRVR:BY2PR12MB0055; X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0055; 4:5z8xioko4auQ7d0k+F8ZkTeh4ehreCzqlb6ueOJCp2dncrKNJ8UIEfTwBI+vPTjMpim+G2cJlLUAjwQJZXLtUqPFj3Mc7zkUwFh1Xger5+8PgvuOR/4fgdHPa7zZO/reVzKHc9v1fXiVClGifggXQyJojXLVgHF+nt6SbOlH2C2IaUYaFwKPmXHCHCm8A0lr/GD7UT68ZnQotcpq5UD7FRc3LWYlqeIByzp4UVWiNnP14xxGMkOVqvBs+aG+sfWcZoPgOiZoJXTfLZ0GlufxaQ== X-Forefront-PRVS: 0879599414 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR12MB0055; 23:PqJKVNePQX/DslHc91mXS5zVzY/tNXSeos2NqEMLf?= fs3y8cVqx/Vbs+ajA2xUeGxg5DSxg98Y6kd69yydUT8tVTXDe+Ao6IbfA/zJjpuOzmJDJcaKnt12zVwVlgB17CjdUKVUaKukCSHhjJ4zHkeM3r31gvDgTNtHuUJKcqmlBE4hLRiu1rK6qKLGuVT6CLganKHWbx3h8YXzIyoBHloLSPrZMk4LnPSjVLUfZ6RLSP5AoommzFziq6GUoa1H8ITOCxJRZKTGKgNIUMcAyemGeFr+eXo9fwIe5b958VV3aH/pu1wfsvVnlWJCyM5MuGk8pVEgub+XeyYsW0JDV/u8/vIh97r21hjU7uWlqX5VF7+SsUKk9+maZ9onayCDxoaGhpquVGX2qqcK/xY6xC+MJdXN35w87/PhQW+E2c8ZYHOLukVb9CG2ijK/XaKStrRMSMeydYAuNNWsy8g8S27vvuy5NnaZVnr6Twz6TOQHSBsjUDhTaFejmBhnTe4201cjn5ZVF0NZ7z6Xxa6QKK/MMupunajqqOK/SeW0QHo3zlMDzh+ORNChpN2SXp1AF4gZc7CAv77bIjmOsglwyXXDCGWrK4YVAJwNf1fG9QIvSx9jB/j8O6G+Uihf4S84tlAAmiDfIfLV1sGIapEG/9Yexg1jtRRxrg9UVh5wyIlhxlJNCglRArMDid+bBOesdcGL+i1tFAtwj9VXkHjKd+9YqFhpvYolG69FF2YP1Nlk4Z9NO72VTgQPXzFJ/dI93FR8Ri6mwW5Ha5JRpM4kYi3Z9Wf5ZJeEuOtks11TspJveyQSlnBcJGbQrHbl+RzBZF7B7I1iG2LBm4n45Egin63JfIIf0bgkfPUwRapmsHg22rExbKfKbO+Dzhaa2HPofi1ZIrU/wlsaEFziRj1F+bzPV6B3DFynU+q/dg98T8f4M9nWEW01DP2r6UgkUPI2AKX5lW62IhxRdUy5StMSQXFbWY5iTL8KHXkUDcJk++K5ccKcDSj5nd+W+N3qzA/kS/lemalZPEbjTeG5nZT7kMG3qk0QGftvoLF/cxX8xlrilTtvRYSdm367tZJBFkp0C6cjtQUBQCXH09a/M6pL+QFqf67KWH5N/rxPttdbFjd/4gdF3a9bQwnt96z1QQVzIaPyS6U+sU4RKGD3QEeRI0rsKaxCtIMnwmC/2FVH57wROllau8xIyUg6l0N+9BGFeH8 X-Microsoft-Antispam-Message-Info: UoP+f4gu4C76aL684yd2YIRDnk9+G5SxkE7Zkjz7sWXkOXeqaXLTJu8re3w5XiUtylLrg4mwh7jTeluITM3Da+Ro52eIg6poS8VIxYD8fsKRT+Cvew1zOFTB7xnFBhieLgKvfMra4pqLN+o/eWaZD9vbTCqAGvcz/LIYNA5y9ioXZrajFVrZviYNxKZEiE9hKSjbdKibV520V013xPAgXTGGAU98LVrtWf+bJ1Qap06coiHvisvMIxIRkcVI0F60s2qtLMhshWe5IKI4VuSkOUYFzFGsQQGuEnStdYERcfKZqhpqz4mTZH4jq/RSh+9jGRJ2pfS47tlkajN5zFTCy9byBgfE5qH4uDJJ8kLFznY= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0055; 6:xslwK8pTBsAc4eSHB3P0XQyyJmCZ4SQ0qRDBQyG/gcCkDV1QhMNSxFt7nIgFHvqiyFty3f+2aKtjduOdmWgoR7mYCcfhAOb9oTjHt8Mc0tDc+ZgJrRlAgqG95apD2boAcVyZ62J5XT3hQFXI3yNG15lUQRNL8L2DbEvQKjkHiloLWJ/y4DNjffr+fWoq+sYto3lCZbrVLb395yAmCeVV6mhnqBDmez7ZOkb7W8kvr2Fr8NrXfTpzJmprXaqddBC0Wyeak5zn1dtZ2aydaD6orVvciZ+RGk/VaGZHXvJeyuBx3JHrSDvpRg71zv1/8YT3+XFaDTyyJDBNz+L1p4WkKObKjpa16rmGreQohuRqSE2cbKKy01daW08bwogOePZlOWPtAXVvkKekHs2OtJGg6/edie/rizULiBEw/AENU3Qml5kiEGIA1iIjFoDdPISQYqB0QpMDtGdjhnJE+cmTwQ==; 5:ZoU2AgBpg59EDfo6dhnYZXIJFqD/ExQtmTmxhlq98lHifSlf9JxDCqPGfzX8gPLjkwyXNbj6sea4DG1A2n2Ls4TU5c36pfYroM95duXWmniorefYH7an1vb2Q838WH4Tboa+E+SaL1T4NdpxUnLi6EN6VHMMMQ7BRizZgYu9s2g=; 7:ffUd7EhxokkQEGmHo4Dvx/ldaAmkNx1vWahMU28ETmvwZd0M9YkmXw1pLRgx5TgnGA69mGMO/LS0dutn2YN1x8qG3sj1DWehn4lZoFFOteR5fC+fwwaM5wGsxOEwB+Sxv5lOdkxZ8aDyAiv6CdxkQA== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0055; 20:N1Fhw0JDoVSo2HsLGaMqRhqcquvx7Wc+awijOKUpgrYYJqM3/88H3nyY9dmtrdj1SvWCTYOEsbVmJfnjIqvkrmivyUeWIUfHRZmf+y/84D5dTOTIlSJDrscTGeXjE5H7BT+XiH2iGiVj30ARKR4lvpyBLSZljT/VEhekr6Mh0UqM9OE4E48OEkmMQ7B1FV19T3c/gqLXtX+BtOrWFI7eTafFVrJFQYImM9TkrWB1P79vnHP2bdaJa1KarDdBFxp/ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2018 09:58:32.3086 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6b1f79f6-c5f1-4947-8808-08d65c2a8be5 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=[SATLEXCHOV02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR12MB0055 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: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Chunming Zhou --- amdgpu/amdgpu-symbol-check | 3 ++ amdgpu/amdgpu.h | 51 +++++++++++++++++++++++++++++++ amdgpu/amdgpu_cs.c | 61 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+) diff --git a/amdgpu/amdgpu-symbol-check b/amdgpu/amdgpu-symbol-check index 4553736f..255d25e5 100755 --- a/amdgpu/amdgpu-symbol-check +++ b/amdgpu/amdgpu-symbol-check @@ -48,10 +48,13 @@ amdgpu_cs_signal_semaphore amdgpu_cs_submit amdgpu_cs_submit_raw amdgpu_cs_syncobj_export_sync_file +amdgpu_cs_syncobj_export_sync_file2 amdgpu_cs_syncobj_import_sync_file +amdgpu_cs_syncobj_import_sync_file2 amdgpu_cs_syncobj_query amdgpu_cs_syncobj_reset amdgpu_cs_syncobj_signal +amdgpu_cs_syncobj_timeline_signal amdgpu_cs_syncobj_timeline_wait amdgpu_cs_syncobj_wait amdgpu_cs_wait_fences diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h index 330658a0..5536d2d5 100644 --- a/amdgpu/amdgpu.h +++ b/amdgpu/amdgpu.h @@ -1469,6 +1469,23 @@ int amdgpu_cs_syncobj_reset(amdgpu_device_handle dev, int amdgpu_cs_syncobj_signal(amdgpu_device_handle dev, const uint32_t *syncobjs, uint32_t syncobj_count); +/** + * Signal kernel timeline sync objects. + * + * \param dev - \c [in] device handle + * \param syncobjs - \c [in] array of sync object handles + * \param points - \c [in] array of timeline points + * \param syncobj_count - \c [in] number of handles in syncobjs + * + * \return 0 on success\n + * <0 - Negative POSIX Error code + * +*/ +int amdgpu_cs_syncobj_timeline_signal(amdgpu_device_handle dev, + const uint32_t *syncobjs, + uint64_t *points, + uint32_t syncobj_count); + /** * Wait for one or all sync objects to signal. * @@ -1586,7 +1603,41 @@ int amdgpu_cs_syncobj_export_sync_file(amdgpu_device_handle dev, int amdgpu_cs_syncobj_import_sync_file(amdgpu_device_handle dev, uint32_t syncobj, int sync_file_fd); +/** + * Export kernel timeline sync object to a sync_file. + * + * \param dev - \c [in] device handle + * \param syncobj - \c [in] sync object handle + * \param point - \c [in] timeline point + * \param flags - \c [in] flags + * \param sync_file_fd - \c [out] sync_file file descriptor. + * + * \return 0 on success\n + * <0 - Negative POSIX Error code + * + */ +int amdgpu_cs_syncobj_export_sync_file2(amdgpu_device_handle dev, + uint32_t syncobj, + uint64_t point, + uint32_t flags, + int *sync_file_fd); +/** + * Import kernel timeline sync object from a sync_file. + * + * \param dev - \c [in] device handle + * \param syncobj - \c [in] sync object handle + * \param point - \c [in] timeline point + * \param sync_file_fd - \c [in] sync_file file descriptor. + * + * \return 0 on success\n + * <0 - Negative POSIX Error code + * + */ +int amdgpu_cs_syncobj_import_sync_file2(amdgpu_device_handle dev, + uint32_t syncobj, + uint64_t point, + int sync_file_fd); /** * Export an amdgpu fence as a handle (syncobj or fd). * diff --git a/amdgpu/amdgpu_cs.c b/amdgpu/amdgpu_cs.c index e4a547c6..0ff34446 100644 --- a/amdgpu/amdgpu_cs.c +++ b/amdgpu/amdgpu_cs.c @@ -649,6 +649,18 @@ drm_public int amdgpu_cs_syncobj_signal(amdgpu_device_handle dev, return drmSyncobjSignal(dev->fd, syncobjs, syncobj_count); } +drm_public int amdgpu_cs_syncobj_timeline_signal(amdgpu_device_handle dev, + const uint32_t *syncobjs, + uint64_t *points, + uint32_t syncobj_count) +{ + if (NULL == dev) + return -EINVAL; + + return drmSyncobjTimelineSignal(dev->fd, syncobjs, + points, syncobj_count); +} + drm_public int amdgpu_cs_syncobj_wait(amdgpu_device_handle dev, uint32_t *handles, unsigned num_handles, int64_t timeout_nsec, unsigned flags, @@ -724,6 +736,55 @@ drm_public int amdgpu_cs_syncobj_import_sync_file(amdgpu_device_handle dev, return drmSyncobjImportSyncFile(dev->fd, syncobj, sync_file_fd); } +drm_public int amdgpu_cs_syncobj_export_sync_file2(amdgpu_device_handle dev, + uint32_t syncobj, + uint64_t point, + uint32_t flags, + int *sync_file_fd) +{ + uint32_t binary_handle; + int ret; + + if (NULL == dev) + return -EINVAL; + + ret = drmSyncobjCreate(dev->fd, 0, &binary_handle); + if (ret) + return ret; + + ret = drmSyncobjTimelineToBinary(dev->fd, binary_handle, syncobj, point, + flags); + if (ret) + goto out; + ret = drmSyncobjExportSyncFile(dev->fd, binary_handle, sync_file_fd); +out: + drmSyncobjDestroy(dev->fd, binary_handle); + return ret; +} + +drm_public int amdgpu_cs_syncobj_import_sync_file2(amdgpu_device_handle dev, + uint32_t syncobj, + uint64_t point, + int sync_file_fd) +{ + uint32_t binary_handle; + int ret; + + if (NULL == dev) + return -EINVAL; + + ret = drmSyncobjCreate(dev->fd, 0, &binary_handle); + if (ret) + return ret; + ret = drmSyncobjImportSyncFile(dev->fd, binary_handle, sync_file_fd); + if (ret) + goto out; + ret = drmSyncobjBinaryToTimeline(dev->fd, binary_handle, syncobj, point); +out: + drmSyncobjDestroy(dev->fd, binary_handle); + return ret; +} + drm_public int amdgpu_cs_submit_raw(amdgpu_device_handle dev, amdgpu_context_handle context, amdgpu_bo_list_handle bo_list_handle,