From patchwork Fri Dec 7 09:55:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Chunming Zhou X-Patchwork-Id: 10717765 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 BD71C13BF for ; Fri, 7 Dec 2018 09:57:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AA9E22E711 for ; Fri, 7 Dec 2018 09:57:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9EC6B2E748; Fri, 7 Dec 2018 09:57:06 +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=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 2D6C92E711 for ; Fri, 7 Dec 2018 09:57:06 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4A47F6E6FA; Fri, 7 Dec 2018 09:57:05 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0629.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe49::629]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5B8FC6E6FA; Fri, 7 Dec 2018 09:57:03 +0000 (UTC) Received: from MWHPR12CA0041.namprd12.prod.outlook.com (2603:10b6:301:2::27) by BY2PR12MB0053.namprd12.prod.outlook.com (2a01:111:e400:2c80::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1404.20; Fri, 7 Dec 2018 09:56:59 +0000 Received: from BY2NAM03FT032.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::205) by MWHPR12CA0041.outlook.office365.com (2603:10b6:301:2::27) 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:56:59 +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 BY2NAM03FT032.mail.protection.outlook.com (10.152.84.228) 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:56:58 +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; Fri, 7 Dec 2018 03:56:56 -0600 From: Chunming Zhou To: , , Subject: [PATCH 06/11] drm/syncobj: add timeline payload query ioctl v4 Date: Fri, 7 Dec 2018 17:55:56 +0800 Message-ID: <20181207095601.2058-6-david1.zhou@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181207095601.2058-1-david1.zhou@amd.com> References: <20181207095601.2058-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)(346002)(396003)(136003)(376002)(39860400002)(2980300002)(428003)(199004)(189003)(486006)(356004)(2201001)(50466002)(186003)(8676002)(7696005)(81166006)(77096007)(26005)(81156014)(47776003)(11346002)(50226002)(106466001)(4326008)(8936002)(316002)(66574011)(72206003)(126002)(14444005)(478600001)(426003)(446003)(36756003)(2616005)(476003)(54906003)(1076002)(110136005)(2870700001)(53936002)(86362001)(2906002)(305945005)(23676004)(53416004)(5820100001)(68736007)(97736004)(105586002)(336012)(104016004)(76176011)(5660300001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR12MB0053; H:SATLEXCHOV01.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoDomainNonexistent; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; BY2NAM03FT032; 1:Mx9TrUalPb+Y+SswMfzxBKXmXy+xJJJpQPC3dQ27JIx49pFtXZVjB/5XJ/Kmubj96ALDIIChgMTqY6dYu+zLJbF8R56Zw/sw49PTc/TH+cKXPGTgkscMf0PYSllEdWHc X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1650e898-4f54-40b2-8f74-08d65c2a541e X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060); SRVR:BY2PR12MB0053; X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0053; 3:Yi0c5qXZNP9mCzUSeV6ONA/WFWi58dBvyKahv/APyHWYNutBXJSyM6HftTSMH4+Ecl2PycuTVAQR9TdlJ8QwdUnsLl+4EeDK7iwveYKV909f1UkDhT23wTFIy9Alrspfww5XLSTDHAmlyN8O4Pnx/v0O2acOsTzUiCGSFbrWdiAs78sL12uc3TDJRzXjJdreS04kzgSWfgFKxATSl7tJ7MtiBXNdEPIFNwXAXpcefyGpyOLtBt+n/M0hYIhMU4fu7Qr76i95QXrxWSAHE9+d/YPlVWIPnbdWHJdz0LDMG1Da0aUu+NJOibej1W3YKeHpU0CO1XbdmbLKNo14STT6omJlJDq0FYKZPs9/gW3aH2A=; 25:S1WWvaM65bRTQbwaHa4o2cUqiUjYuVmwNWs3VpAyXBA4YoK13tBOEImvp4Etit0mBBmxIDqaJ1nGovohtuuAs3toRhz1RPxyApveRwbqiBg5mlRoSnBs+E/pp3qPKa8WJ56a7JLx/Pg5pqMyv2F3OmGyy7Xa6VCgSBpPMMblTRwbY2VvqA6WXTrtLrk3brE3V9/WJ94zCePWwqPyCSuVwZ7ce0+Q2ehx1np2EA4PFgtjeDYl0MDM4vodVgBwYc0XucuygoM7WcDebEWLYAa20fN8SJslPMclnbhF3f3U/qK7Z6zW7y7XaY1HvlmjungKUdzbGa46aSzSSUC3GxdA5A== X-MS-TrafficTypeDiagnostic: BY2PR12MB0053: X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0053; 31:a0S0jhnSe0JKXTmoyoiIRF2MwHOSuUMGA2YmHN8aCTE5N3TvEaex8v6n1Vn9GgyR8iZos0i/mKRkr3uOlRBl8fj3krl0vMKd0g/S6l7wGivT79gMcDpHOZrUsTIskgGS3iRWn9A59o5y1oLuY6ErMLsuJq+Du17Y4BBl4uNq8aZeFoc34li87xdRBcM9aBCphiRhETxoXnHru7uV8AUW7TLFGKJbH7AxW+SepqvYR0A=; 20:OA/Sa4Kk5DPLGP9NoYkkgCvUBgC8cA4RCZNAggVqBViNX8bK9ro0DFyqk/1MP9LCPv23TBJuV9XcAmW4qTwuaFMWVLs/45HHyJI8lF2vEzPq4L5pSg6X6Bi7wwR5IBccU1YAMuks7uGmME4rMDRoqQ4GB/xzZTg17JK24cUKurywE4VTvoxeS2qnKTECAlbDlb1USLjX1gYaLEKhVrZUGd5uoykDkPeZwDqLfcLuiAP4ZXLQOCLmQ2T1/TvI794unuY92DLUtx7Em+Akh/42tEt/9CFcHbLbDcb0KWAzv2+VnnqDoovKoQ/1tT5sKFvJnSmAizVMybOgf/wzNR/3ZlfNsjlzLGZSNkevPvmDl96kbGorfF4Ot78LCfaCPkG7o0r/juyUm/ucxmfULmOlfgpSQp/e/Wm41YZWq/xdf9pSB5Wdv14/hEGJzM/HyPENY6mJMgu6eV5ywFwtqq5KR02rqmUSAGOwu+HFTf3flQ3tsqBYyc9pyZnNN7oIVJTo 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:BY2PR12MB0053; BCL:0; PCL:0; RULEID:; SRVR:BY2PR12MB0053; X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0053; 4:24tPS0YoCythmCp+Ca6kZmcnsHCdRw7dA6IgMo/V1UxqOxIWbYEMZLC+B7bqbz7Z17di9P15ovk1DXChwUmnPRHzDnPfHmGelCJcjs/Ot3saQZHEqlX82aabonCZA31U/2uDmR9qVNr0nk2UWfOCBfmRG1ZbmtLmltpbfAWDzy0ILJB8aVj1+Z0sqdbRjyee/GiypUlMmW6MWiu88iDu/Sf2/ObTsBypg1czPklOB6PH0xp2nnl+1JOR5IGBnhIOwE3ZjnDUDGXdKiPkwC2oBQ== X-Forefront-PRVS: 0879599414 X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BBY2PR12MB0053=3B23=3AGB+v1hD?= =?utf-8?q?fUlSD6tOHbQXaiJECpl3GyNM+iQZ4ZcwfEQD8u8hohR8XSyiv7p4iweBmD6Q53/7s?= =?utf-8?q?vuhxC9MOHFk0jnWebnwKgpq53fMyMfJV7nbBm8PPT2j0h42buGFslP3Efr4zEmVi8?= =?utf-8?q?359ErdqUdc8VtAhnwc1E6DsrvanmYlR+mtiASu5FVzyIFC2Zy3SoiYnLjZAy9obot?= =?utf-8?q?J/vxZS6SY6u0Gic1z4Abp1alvLo0e54uNfpK6bAy5+B2ulunHslasolFwAwRHHi1l?= =?utf-8?q?KJb6jh+8x2TJ3Glkw/CN4eXxDz+7XZ6RfIgeKtQ0Ec+BOyxZEHIiTziacquJtVlaj?= =?utf-8?q?IIFFzTXhppBhf0kfbYMcilbf7CtrNEGdha0h4BilbW9vF6eZh+01Igry/6WNgAg44?= =?utf-8?q?c5FXCJ69RTIFxXgA/CQ9kxylA4617RrOo+NLC6mSFQifx6Uguu3jotnoP1OhfRhNw?= =?utf-8?q?+PiyO0+jyuhk7EF/A0La9erl8Uu6o1oWdZmzOcD9FX7XXlQE0Df/9pWGP6f1aG3Ou?= =?utf-8?q?rD3NSiyxFk/ITCRdG6rx0rQOfm1oH2Q8CrbCIl3gv6k/2hargrHR2h5yuLnx9glU9?= =?utf-8?q?0XfHHf4wTiuwaw3iLkOkpcfgXA0+lONpE8WLHc5hG3pALPaWpDCydDJ9JMAw7pxw6?= =?utf-8?q?XcEanGfSmDcYZLOAhWCPGgI2gbFOwP2f1s/WnMie/YabAR9hSZFxzZfVC+QhvyeK5?= =?utf-8?q?2nU1EEOk6j6+Vs9gPChlfv1Y5kuOLNo4yMnh8Rl7F5We0EbWyYpZr2XGK1w/6xMzn?= =?utf-8?q?BJ6dZF2b+IpXmEblH2rdg458f8fUfVuzCnG6Y2cT43cvb8Lj2KvYorbZL4B21sGhO?= =?utf-8?q?D/zfMTQ2Dtjy6PC4r5Gu5iWGBU72fUqenRHpcZfe1NIYaty3PAu59gEA+VI2MKdl9?= =?utf-8?q?nwrb/ZYm/fBldp8+cBI3F5ZfhCF8PT+ydXmrizIlWCjU+szOJmg+HUKXODYbUViEX?= =?utf-8?q?Hl3auxrAOfFQxh4bRF+xuEeI7QsLjx7ls0wnyOQ+S9YhtEAIH9imIGobyWgoEPY/L?= =?utf-8?q?LnMhTCreBOBBtS60IFVDz6aNsa9+FnpqQMvL6wPxFtFMwz5lvErW28cQlSz5qKeNb?= =?utf-8?q?nscWBqNDKZHfBEMANYBDMimqYclFeOZ8WQu4swdPwt+v9DXOjYZht7L5c6NKJWX5F?= =?utf-8?q?zJKzfCl+9qwHul4fXPyUJqIFZJJd+1KQsFGfZaG2HSJBMTy88NWNFIzzP2r9w=3D?= =?utf-8?q?=3D?= X-Microsoft-Antispam-Message-Info: PkZmoFpu2pbbx/RnPWr3GrEhCLpv+s3u9BlSH2n+Iar412hhA229t5MiqKC/Zpcau5r6mNsIIlX4DDIHqpgYPAbXqRp2oYPn9+9myVFovIN6/83MbrpFw62lkw+Ufc5FeHHkksFgOZw9K/i1HNXxkDBKVjiFxYGxGh41UAPhrZb2w3c0LAJneBosgjOHWg/SanEAhBhvOlLpl/ESdN2ovAJH5sVm59RK2RSC2ElYdrGb+MvqE08qO1qgPxf2a6J93uQJ1y0WqKUkhdlGj1GJDaMaaosWtwAIW9pe1MAy478qheiY8rbgcPmsMZ0bR1ml/kvY4cH/9hrzO2BDXu/YEU0wv/hk3Rtlswl3wGPz/XA= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0053; 6:z1hTsQkLfraFF7vf1rypcZpppcONoiRUwqTXHCqFTJgWdsrmJhkMo7Ap9QzZ7Msc3aBlwpaPEToDVhXRR65hW3aQouoO/Ry51yafwbPBtwOz7Eb8bDjbheIr6KbpqOqAP0J0505OFY72XgFnv7NoylRDELwIXVSQd0lXyCJdYF3LO3wOSSH/v3cG8GJoEafK4M75Xo7okHqneePkqmAecQIT5HbNL4efDAq1Ye05X8bEVR+rmMbemwAQxdjUc2TIUXc7yfrAn24L3CaVW7ThhaJSKPscUI3PmhlDS/dTMwt/h2X0ruFF89oC0ElTqaOnS3vf3SOoejmSdv4lH0vqGZ/Xp/+FzuV3Rh44HnXYOWCH/cYVA4A7jWOQGmRHhMaeapW7wSu7DeFQJMXNTTEBiEySaKP+3T9pR7mJoDiQU9x+CPvRZBEipL9OQLbyzIPeedscgUZkXJNpgVdTfx/9+g==; 5:4jx08Hzyws9OaiYfrwmwEmJAzLjabYTyYjcdJY6SKqeAsAKmQIoV2Vf0GlodYcsWOblKnKznTGCdoy+MkaoYuTXZfbWBEXY/8Pph6R+k9nKMphTIUn9YNlnMk2hnblWF6cVXsbvxCybaN8/olTF6Q4TtruBjE9i1o3mYyqOxVYI=; 7:FMg36C3NGYdjICZSUJYbSluko/UeT4IOcjUZJITMj8qPRJBkvBRK4S6dDklG9Jm1dYWuRO6PE+JVZrIUPGg+w2snb5l+CjyDdIJBCUYoiqscMazhxKYDb6hpCtgcQTu4gYt6XFRMiEfPklgpCZa9HA== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0053; 20:zob4HtRtYSceT92+qtYO2v0B+vpCKauxLgWGUGY+ug2kgm/evDmJ7kbMAUwVlsnwDYi0jnNcQy3+wEWYpHps4VDdLutR8GAuJe6oCNSVTsn7sluIj99+DxsKRjcxA9krULMa3aDuDBdq5Csxq3G28QaR4KEv65xESGv66ZLE7/XWtjuDg5jPmLH3Jl7t5nW9ompzU0X8fePmoaVNhJhcz8T7pV/S6ZwIhKnvdbhl637rryfRp3KNbaEKTviRYl2F X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2018 09:56:58.6830 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1650e898-4f54-40b2-8f74-08d65c2a541e 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: BY2PR12MB0053 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: Daniel Rakos , Jason Ekstrand , Dave Airlie , =?utf-8?q?Christian_K=C3=B6nig?= Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP user mode can query timeline payload. v2: check return value of copy_to_user v3: handle querying entry by entry v4: rebase on new chain container, simplify interface Signed-off-by: Chunming Zhou Cc: Daniel Rakos Cc: Jason Ekstrand Cc: Bas Nieuwenhuizen Cc: Dave Airlie Cc: Christian König Cc: Chris Wilson --- drivers/gpu/drm/drm_internal.h | 2 ++ drivers/gpu/drm/drm_ioctl.c | 2 ++ drivers/gpu/drm/drm_syncobj.c | 43 ++++++++++++++++++++++++++++++++++ include/uapi/drm/drm.h | 10 ++++++++ 4 files changed, 57 insertions(+) diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h index 18b41e10195c..dab4d5936441 100644 --- a/drivers/gpu/drm/drm_internal.h +++ b/drivers/gpu/drm/drm_internal.h @@ -184,6 +184,8 @@ int drm_syncobj_reset_ioctl(struct drm_device *dev, void *data, struct drm_file *file_private); int drm_syncobj_signal_ioctl(struct drm_device *dev, void *data, struct drm_file *file_private); +int drm_syncobj_query_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_private); /* drm_framebuffer.c */ void drm_framebuffer_print_info(struct drm_printer *p, unsigned int indent, diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index a9a17ed35cc4..7578ef6dc1d1 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -681,6 +681,8 @@ static const struct drm_ioctl_desc drm_ioctls[] = { DRM_UNLOCKED|DRM_RENDER_ALLOW), DRM_IOCTL_DEF(DRM_IOCTL_SYNCOBJ_SIGNAL, drm_syncobj_signal_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW), + DRM_IOCTL_DEF(DRM_IOCTL_SYNCOBJ_QUERY, drm_syncobj_query_ioctl, + DRM_UNLOCKED|DRM_RENDER_ALLOW), DRM_IOCTL_DEF(DRM_IOCTL_CRTC_GET_SEQUENCE, drm_crtc_get_sequence_ioctl, DRM_UNLOCKED), DRM_IOCTL_DEF(DRM_IOCTL_CRTC_QUEUE_SEQUENCE, drm_crtc_queue_sequence_ioctl, DRM_UNLOCKED), DRM_IOCTL_DEF(DRM_IOCTL_MODE_CREATE_LEASE, drm_mode_create_lease_ioctl, DRM_MASTER|DRM_UNLOCKED), diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c index 348079bb0965..f97fa00ca1d0 100644 --- a/drivers/gpu/drm/drm_syncobj.c +++ b/drivers/gpu/drm/drm_syncobj.c @@ -1061,3 +1061,46 @@ drm_syncobj_signal_ioctl(struct drm_device *dev, void *data, return ret; } + +int drm_syncobj_query_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_private) +{ + struct drm_syncobj_timeline_array *args = data; + struct drm_syncobj **syncobjs; + uint64_t __user *points = u64_to_user_ptr(args->points); + uint32_t i; + int ret; + + if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ)) + return -ENODEV; + + if (args->pad != 0) + return -EINVAL; + + if (args->count_handles == 0) + return -EINVAL; + + ret = drm_syncobj_array_find(file_private, + u64_to_user_ptr(args->handles), + args->count_handles, + &syncobjs); + if (ret < 0) + return ret; + + for (i = 0; i < args->count_handles; i++) { + struct dma_fence_chain *chain; + struct dma_fence *fence; + uint64_t point; + + fence = drm_syncobj_fence_get(syncobjs[i]); + chain = to_dma_fence_chain(fence); + point = chain ? fence->seqno : 0; + ret = copy_to_user(&points[i], &point, sizeof(uint64_t)); + ret = ret ? -EFAULT : 0; + if (ret) + break; + } + drm_syncobj_array_free(syncobjs, args->count_handles); + + return ret; +} diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h index 0092111d002c..b2c36f2b2599 100644 --- a/include/uapi/drm/drm.h +++ b/include/uapi/drm/drm.h @@ -767,6 +767,14 @@ struct drm_syncobj_array { __u32 pad; }; +struct drm_syncobj_timeline_array { + __u64 handles; + __u64 points; + __u32 count_handles; + __u32 pad; +}; + + /* Query current scanout sequence number */ struct drm_crtc_get_sequence { __u32 crtc_id; /* requested crtc_id */ @@ -924,6 +932,8 @@ extern "C" { #define DRM_IOCTL_MODE_REVOKE_LEASE DRM_IOWR(0xC9, struct drm_mode_revoke_lease) #define DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT DRM_IOWR(0xCA, struct drm_syncobj_timeline_wait) +#define DRM_IOCTL_SYNCOBJ_QUERY DRM_IOWR(0xCB, struct drm_syncobj_timeline_array) + /** * Device specific ioctls should only be in their respective headers * The device specific ioctl range is from 0x40 to 0x9f.