From patchwork Mon Sep 4 15:16:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marius Vlad X-Patchwork-Id: 9937655 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 45CD7601EB for ; Mon, 4 Sep 2017 23:30:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1ABC4287A3 for ; Mon, 4 Sep 2017 23:30:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0F80F287B6; Mon, 4 Sep 2017 23:30:07 +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=-4.2 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_MED,UPPERCASE_50_75 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 B941628818 for ; Mon, 4 Sep 2017 23:30:05 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 187C76E389; Mon, 4 Sep 2017 23:29:58 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org X-Greylist: delayed 963 seconds by postgrey-1.35 at gabe; Mon, 04 Sep 2017 15:33:01 UTC Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0068.outbound.protection.outlook.com [104.47.40.68]) by gabe.freedesktop.org (Postfix) with ESMTPS id EE6DD6E3B9; Mon, 4 Sep 2017 15:33:01 +0000 (UTC) Received: from BN6PR03CA0010.namprd03.prod.outlook.com (10.168.230.148) by CY1PR03MB2265.namprd03.prod.outlook.com (10.166.207.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Mon, 4 Sep 2017 15:17:01 +0000 Received: from BN1AFFO11FD025.protection.gbl (2a01:111:f400:7c10::118) by BN6PR03CA0010.outlook.office365.com (2603:10b6:404:23::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10 via Frontend Transport; Mon, 4 Sep 2017 15:17:00 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; gmail.com; dkim=none (message not signed) header.d=none; gmail.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1AFFO11FD025.mail.protection.outlook.com (10.58.52.85) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1385.11 via Frontend Transport; Mon, 4 Sep 2017 15:17:00 +0000 Received: from fsr-ub1664-140.ea.freescale.net (fsr-ub1664-140.ea.freescale.net [10.171.73.81]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v84FGsSt026469; Mon, 4 Sep 2017 08:16:58 -0700 From: Marius Vlad To: , Subject: [PATCH 2/4] drm/i915: Convert i915 to use ioctl_register/ioctl_deregister. Date: Mon, 4 Sep 2017 18:16:43 +0300 Message-ID: <20170904151645.4490-3-marius-cristian.vlad@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170904151645.4490-1-marius-cristian.vlad@nxp.com> References: <20170904151645.4490-1-marius-cristian.vlad@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131490118206081053; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39380400002)(39860400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(97736004)(5660300001)(47776003)(85426001)(305945005)(8676002)(81166006)(356003)(36756003)(86362001)(68736007)(81156014)(50226002)(2906002)(189998001)(8936002)(106466001)(50466002)(626005)(2950100002)(5003940100001)(77096006)(104016004)(6666003)(498600001)(48376002)(76176999)(1076002)(39060400002)(105606002)(4326008)(50986999)(33646002)(54906002)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2265; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD025; 1:XAzzbIWy50G4A/VTKiEWINIjuwB00gOVhT7kfz8SJYLIYkUPMjc+EdhS83qcBJuUFxlBKxs9wIJxA23s8fqOz5rBL7zni/gHYKYe8pkChuG+bXjVqCL7YXlpIMkD17rH MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c77f76d4-7c8c-4eb5-bd1d-08d4f3a7fd89 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY1PR03MB2265; X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2265; 3:eBbVSD2mcRtjhTbP2yq3vZeKSPqzQHoGC8GLhHYKMQNSwBuuNuIl0jgwXJBVYi+lTpb92/vgJWdi2vohsnaI3BxjyOjiBjL6Wdol1E9OVy2GzBi9nNvG3uWLpRSGEtlwAJhOHEchppagsH8ZrSSsHFTC6lAUwVqrRvXlI10vTILUb4s6E52288M7U1kr3D0GAP3eCOUPpnqGVgJCNgb7kVAyS+Nsib1o8tLAxHSPafaTrrdPRK5zvAEUJ6MQI2YOER3M39lmiR5QESzYP4e+9EMf147h0fD15pXbT7vVBD0xdO4F9RqblyMHsH81DihAM0RJmvAT9Uwl6b+mWujZHbCeDHrCcBTWgbCnqoYlqMA=; 25:47GL/eO3VhZXYI79gs22DrNb5ib0HYY3tgFXde71EN2EQ0zIstNnOF6aJJyuh8rX47abh41/kKoS8xjEc4o5B6s2KGzutt02nje/B17mZn0iekMkvDRALo6uovRy6E6bw6E0i/UMotZKv9Q1bz1U7t7TiC74++3qWeyroDSmIbeFlkgtB7Hrp68QYnfRqmjfYsMeav0okLK7Ka+wtlwopd/mR2QjrvVZb77K+jxOHIv2OYORC1ebL2E+XBk2z4CSUgGIaPMyxy++N0ZUfJeZS5sDLpIaNmBbrSKDdQvw1Mdmdy02SGCxPwzD3bclkpdSF4OTXc4Rr/oVnt2E02/Mug== X-MS-TrafficTypeDiagnostic: CY1PR03MB2265: X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2265; 31:KS9qdVIoS/jvBHh4mPjoRd5rLHLlk7HnnKIUkd1EY4zjDl6lgHYJMvjAhdt67+ZAeKaERv8uhgopwkksa3zPoi4rD0LaL0c9cTuETNjcp97rCfU99TegZXCj1sqPOvtCLb6m83wXTl1MxaFFYgiE2QRJjHya9EyZMDPbkt3hUWUxjaUrtTe20xlhuZpIwJ9h5OeCCh7E7KBSvtblEmzeqlOpZ+mWjwqCZAKZMo3/beM=; 4:+Ix+qmXPCTPLKCgXIG4WY/GRA+l2uBNyTJ+4VRKXW/yb48InssNZB3D6TeRYF7aZYrkHjH85mfpOrwYKNYj5UiqbZlYOhRkhpJOWt6fuY2Uof5qIulB1LsRRkZUpvNyxn/++nC3Czd17ZEmCltq5Of9P3MSpE0leGd8Y+SZQQeeQyAkbwxW3/AWydacPQnsA6G76VuS9anPFEYvtFKGx6StYArdnf6xtpR70KiWc0HRgllXA4DtAX6XuS3yolwH8 X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6055026)(6096035)(20161123561025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123563025)(20161123556025)(20161123565025)(20161123559100)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR03MB2265; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR03MB2265; X-Forefront-PRVS: 0420213CCD X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR03MB2265; 23:pguVHJ1coIqVZT5ucXO1BG3oYR1qAcR5INSyIQl/2?= =?us-ascii?Q?EwJSDnbVBVkfcVvkrbLWUi8HeRBHK7Bw5aeC1esx1XPz0jvjmaZDEcJBYewv?= =?us-ascii?Q?r22355I1Oc+AMpu3909ZTe1DZU+A/TNzOLsKf0D+PN/gh4sOZNd9eTEas7jQ?= =?us-ascii?Q?Z/LfssVDV4p7KTgHkuNNI5J0Nym6MtkHxPPUU2+sF9QgR7JjAonHEx4e56Tc?= =?us-ascii?Q?AbZGQit6Ykry2gyGM6uKEcm1voCvYXdeEku/kI5Jrm8jyyVpgulhMGx/XzGF?= =?us-ascii?Q?UVwwg0M2ihkk8hsU+6Ogm2mjQp3Q5DJAUGbZkDC09tIxeaCDdyKF4MZ3Id23?= =?us-ascii?Q?6b3hEnDwTNhuuFKwKXlFmE2PUZqOTzVZyrcRRXRF8F2qOVFq+XX7M9/dvdN8?= =?us-ascii?Q?LYTB/t9XDWng9uuDrKVfy5MWK3xJESuO+NvBL4vRqCeuZoGN9gw/fd/NHnNd?= =?us-ascii?Q?lhcIu5XyoRrEtDqx5Ba5bt0nEjURRtWTsTIclKtCA2UR0N7Wru+ecPgHvPjR?= =?us-ascii?Q?Qs9ncrzUhyXY6XVwkqeOyEDGjQ/iV92RXAvnJSWtuHYtFpnWYusLMenvEdgQ?= =?us-ascii?Q?LD5LeVZFkRW0VP4aJrqXWJJ9GxsVuLGbLrG1PRVZUiQQYxcxp5IUboDfNoXl?= =?us-ascii?Q?KY8qA4Q7hO5+McjhiON7SzAUXmO6YOm9xJn/7fYNSupqHF28QRXgX9Zz/8IL?= =?us-ascii?Q?FT/DG5/+fy641tzkmuJnpRq2K4ahE7r6HW9U6aiEkczFfeTp481w8+4XEq+4?= =?us-ascii?Q?B1q0izZ4I2PM5pFTzkZLnjOxAjGRuNYOWM4RB9m/dgK11Fu+ba4VAXcs9Yb4?= =?us-ascii?Q?HeOnQOq7dk44FEMH4dphSiMKcI/dY4nIv+sG8fh43GKPNFj+u1bAA8ugJ0I1?= =?us-ascii?Q?KAT91wCu9cR8m+/OTtYmwRNf7tKizD+RHiwg6zFNnK/fUzkGx57l2ZOQ4pqO?= =?us-ascii?Q?TLnyMs3KIet8/pdBlXD1TTypuhoT5qSXP6mGsXKOFO0ApO/nyFzk7abafDzA?= =?us-ascii?Q?ZrRyuyL4ok2GQmzQWpIFOddjGLCsAwwOChJETGYcB6Q2+Wlk7M7Xc9OyJ67s?= =?us-ascii?Q?zc7w6jdhO/7mKPdXUXTIoiCLNC9BxVL/lFgV36plgOIpYVDCQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2265; 6:Aqi4835sffNTBdR2HpysgecP7QxGvaT7rcB1T33R3syRY02zjstsBM3Jxm19YaeEO1Py3557QrwmD88cO0KdtIzF3nIBEmpQjsy+zHOge0wGZPb6v7RPP0kRJAl+6Ap4unUCzRj90ESXLU19gTgkCc7aJKx5uDIeKS1fS2uLk2n68KEg0yrmQDYSuWiEBFO/HjdhM2+fb6obhL7+xbJtR9Bkux5PjQ5AnilRLnv+VBV7/GqhlVv9CjotQsOFoz8RC0a50mbjYeqROCLhX+KR0J0vjC80EHa24bTUJ2eg/gyn0yPwMahdnLRKz0m48AbeOetM9PaYzqlO2QqklxduyA==; 5:PF7n6CtXQQo0BRXMlA+KFFzVs3XDkRgFhdZ3870dSP+KW/bGsyKG2gwyf8oYERbKbWAk+BlHvm+SAOVhXOh3E3OcMGwpvsj7+Z0/RGTn+6rA/poR5cxB6e7WboFNBYseaehcalrO7NNqh0mgjN8Bvg==; 24:QUG8LctsWRmfl0SZKgy62qdqPwCu1MXVpzb5W75SAAjgEKJp1jKEFY4UvJ2a45uwFXgJpGQ2z+StRrD5HQuyFOcBilNTg9Rughjid6h4e3I=; 7:ZVQVmWBKWRJwSKjdyd2culDvOexht6SweOclf4pJui5ebJWQlcZf4NozS77tGZAL/HQo4XSQaUBtuHbeZLFy9XqR6IuI9cjnezi7D1XSzgdYcHyi3+3Rl4kszWj4/M+DE6oevsHnrY7Raxf+6wTgT5GxjAzxuB5/LcZcV+Yb5Bcs/V6ZIZxkqp6OVNtut5ipavnl0fJbXClMqV/D/vPlwS+DiEJhmVXcL7MCKejZZaU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2017 15:17:00.3117 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB2265 X-Mailman-Approved-At: Mon, 04 Sep 2017 23:29:56 +0000 Cc: Marius Vlad X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 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 From: Marius Vlad Signed-off-by: Marius Vlad Signed-off-by: Marius-Adrian Negreanu --- drivers/gpu/drm/i915/i915_drv.c | 145 +++++++++++++++++++++------------------- 1 file changed, 78 insertions(+), 67 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 4310022..73be83d 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -1183,6 +1183,71 @@ static void i915_driver_cleanup_hw(struct drm_i915_private *dev_priv) i915_ggtt_cleanup_hw(dev_priv); } +static int +i915_gem_reject_pin_ioctl(struct drm_device *dev, void *data, + struct drm_file *file) +{ + return -ENODEV; +} + +static struct drm_ioctl_desc i915_ioctls[] = { + DRM_IOCTL_DEF_DRV(I915_INIT, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), + DRM_IOCTL_DEF_DRV(I915_FLUSH, drm_noop, DRM_AUTH), + DRM_IOCTL_DEF_DRV(I915_FLIP, drm_noop, DRM_AUTH), + DRM_IOCTL_DEF_DRV(I915_BATCHBUFFER, drm_noop, DRM_AUTH), + DRM_IOCTL_DEF_DRV(I915_IRQ_EMIT, drm_noop, DRM_AUTH), + DRM_IOCTL_DEF_DRV(I915_IRQ_WAIT, drm_noop, DRM_AUTH), + DRM_IOCTL_DEF_DRV(I915_GETPARAM, i915_getparam, DRM_AUTH|DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_SETPARAM, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), + DRM_IOCTL_DEF_DRV(I915_ALLOC, drm_noop, DRM_AUTH), + DRM_IOCTL_DEF_DRV(I915_FREE, drm_noop, DRM_AUTH), + DRM_IOCTL_DEF_DRV(I915_INIT_HEAP, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), + DRM_IOCTL_DEF_DRV(I915_CMDBUFFER, drm_noop, DRM_AUTH), + DRM_IOCTL_DEF_DRV(I915_DESTROY_HEAP, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), + DRM_IOCTL_DEF_DRV(I915_SET_VBLANK_PIPE, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), + DRM_IOCTL_DEF_DRV(I915_GET_VBLANK_PIPE, drm_noop, DRM_AUTH), + DRM_IOCTL_DEF_DRV(I915_VBLANK_SWAP, drm_noop, DRM_AUTH), + DRM_IOCTL_DEF_DRV(I915_HWS_ADDR, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), + DRM_IOCTL_DEF_DRV(I915_GEM_INIT, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), + DRM_IOCTL_DEF_DRV(I915_GEM_EXECBUFFER, i915_gem_execbuffer, DRM_AUTH), + DRM_IOCTL_DEF_DRV(I915_GEM_EXECBUFFER2_WR, i915_gem_execbuffer2, DRM_AUTH|DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_PIN, i915_gem_reject_pin_ioctl, DRM_AUTH|DRM_ROOT_ONLY), + DRM_IOCTL_DEF_DRV(I915_GEM_UNPIN, i915_gem_reject_pin_ioctl, DRM_AUTH|DRM_ROOT_ONLY), + DRM_IOCTL_DEF_DRV(I915_GEM_BUSY, i915_gem_busy_ioctl, DRM_AUTH|DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_SET_CACHING, i915_gem_set_caching_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_GET_CACHING, i915_gem_get_caching_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_THROTTLE, i915_gem_throttle_ioctl, DRM_AUTH|DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_ENTERVT, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), + DRM_IOCTL_DEF_DRV(I915_GEM_LEAVEVT, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), + DRM_IOCTL_DEF_DRV(I915_GEM_CREATE, i915_gem_create_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_PREAD, i915_gem_pread_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_PWRITE, i915_gem_pwrite_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_MMAP, i915_gem_mmap_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_MMAP_GTT, i915_gem_mmap_gtt_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_SET_DOMAIN, i915_gem_set_domain_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_SW_FINISH, i915_gem_sw_finish_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_SET_TILING, i915_gem_set_tiling_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_GET_TILING, i915_gem_get_tiling_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_GET_APERTURE, i915_gem_get_aperture_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GET_PIPE_FROM_CRTC_ID, intel_get_pipe_from_crtc_id, 0), + DRM_IOCTL_DEF_DRV(I915_GEM_MADVISE, i915_gem_madvise_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_OVERLAY_PUT_IMAGE, intel_overlay_put_image_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW), + DRM_IOCTL_DEF_DRV(I915_OVERLAY_ATTRS, intel_overlay_attrs_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW), + DRM_IOCTL_DEF_DRV(I915_SET_SPRITE_COLORKEY, intel_sprite_set_colorkey, DRM_MASTER|DRM_CONTROL_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GET_SPRITE_COLORKEY, drm_noop, DRM_MASTER|DRM_CONTROL_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_WAIT, i915_gem_wait_ioctl, DRM_AUTH|DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_CREATE, i915_gem_context_create_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_DESTROY, i915_gem_context_destroy_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_REG_READ, i915_reg_read_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GET_RESET_STATS, i915_gem_context_reset_stats_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_USERPTR, i915_gem_userptr_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_GETPARAM, i915_gem_context_getparam_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_SETPARAM, i915_gem_context_setparam_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_PERF_OPEN, i915_perf_open_ioctl, DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_PERF_ADD_CONFIG, i915_perf_add_config_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_PERF_REMOVE_CONFIG, i915_perf_remove_config_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW), +}; + /** * i915_driver_register - register the driver with the rest of the system * @dev_priv: device private @@ -1193,6 +1258,7 @@ static void i915_driver_cleanup_hw(struct drm_i915_private *dev_priv) static void i915_driver_register(struct drm_i915_private *dev_priv) { struct drm_device *dev = &dev_priv->drm; + unsigned int i; i915_gem_shrinker_init(dev_priv); @@ -1225,6 +1291,9 @@ static void i915_driver_register(struct drm_i915_private *dev_priv) intel_audio_init(dev_priv); + for (i = 0; i < ARRAY_SIZE(i915_ioctls); i++) + dev->driver->ioctl_register(dev, &i915_ioctls[i]); + /* * Some ports require correctly set-up hpd registers for detection to * work properly (leading to ghost connected connector status), e.g. VGA @@ -1241,6 +1310,12 @@ static void i915_driver_register(struct drm_i915_private *dev_priv) */ static void i915_driver_unregister(struct drm_i915_private *dev_priv) { + unsigned int i; + struct drm_device *dev = &dev_priv->drm; + + for (i = 0; i < ARRAY_SIZE(i915_ioctls); i++) + dev->driver->ioctl_deregister(dev, &i915_ioctls[i]); + intel_fbdev_unregister(dev_priv); intel_audio_deinit(dev_priv); @@ -2669,71 +2744,6 @@ static const struct file_operations i915_driver_fops = { .llseek = noop_llseek, }; -static int -i915_gem_reject_pin_ioctl(struct drm_device *dev, void *data, - struct drm_file *file) -{ - return -ENODEV; -} - -static const struct drm_ioctl_desc i915_ioctls[] = { - DRM_IOCTL_DEF_DRV(I915_INIT, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(I915_FLUSH, drm_noop, DRM_AUTH), - DRM_IOCTL_DEF_DRV(I915_FLIP, drm_noop, DRM_AUTH), - DRM_IOCTL_DEF_DRV(I915_BATCHBUFFER, drm_noop, DRM_AUTH), - DRM_IOCTL_DEF_DRV(I915_IRQ_EMIT, drm_noop, DRM_AUTH), - DRM_IOCTL_DEF_DRV(I915_IRQ_WAIT, drm_noop, DRM_AUTH), - DRM_IOCTL_DEF_DRV(I915_GETPARAM, i915_getparam, DRM_AUTH|DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_SETPARAM, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(I915_ALLOC, drm_noop, DRM_AUTH), - DRM_IOCTL_DEF_DRV(I915_FREE, drm_noop, DRM_AUTH), - DRM_IOCTL_DEF_DRV(I915_INIT_HEAP, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(I915_CMDBUFFER, drm_noop, DRM_AUTH), - DRM_IOCTL_DEF_DRV(I915_DESTROY_HEAP, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(I915_SET_VBLANK_PIPE, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(I915_GET_VBLANK_PIPE, drm_noop, DRM_AUTH), - DRM_IOCTL_DEF_DRV(I915_VBLANK_SWAP, drm_noop, DRM_AUTH), - DRM_IOCTL_DEF_DRV(I915_HWS_ADDR, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(I915_GEM_INIT, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(I915_GEM_EXECBUFFER, i915_gem_execbuffer, DRM_AUTH), - DRM_IOCTL_DEF_DRV(I915_GEM_EXECBUFFER2_WR, i915_gem_execbuffer2, DRM_AUTH|DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_PIN, i915_gem_reject_pin_ioctl, DRM_AUTH|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(I915_GEM_UNPIN, i915_gem_reject_pin_ioctl, DRM_AUTH|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(I915_GEM_BUSY, i915_gem_busy_ioctl, DRM_AUTH|DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_SET_CACHING, i915_gem_set_caching_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_GET_CACHING, i915_gem_get_caching_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_THROTTLE, i915_gem_throttle_ioctl, DRM_AUTH|DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_ENTERVT, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(I915_GEM_LEAVEVT, drm_noop, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), - DRM_IOCTL_DEF_DRV(I915_GEM_CREATE, i915_gem_create_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_PREAD, i915_gem_pread_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_PWRITE, i915_gem_pwrite_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_MMAP, i915_gem_mmap_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_MMAP_GTT, i915_gem_mmap_gtt_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_SET_DOMAIN, i915_gem_set_domain_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_SW_FINISH, i915_gem_sw_finish_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_SET_TILING, i915_gem_set_tiling_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_GET_TILING, i915_gem_get_tiling_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_GET_APERTURE, i915_gem_get_aperture_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GET_PIPE_FROM_CRTC_ID, intel_get_pipe_from_crtc_id, 0), - DRM_IOCTL_DEF_DRV(I915_GEM_MADVISE, i915_gem_madvise_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_OVERLAY_PUT_IMAGE, intel_overlay_put_image_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW), - DRM_IOCTL_DEF_DRV(I915_OVERLAY_ATTRS, intel_overlay_attrs_ioctl, DRM_MASTER|DRM_CONTROL_ALLOW), - DRM_IOCTL_DEF_DRV(I915_SET_SPRITE_COLORKEY, intel_sprite_set_colorkey, DRM_MASTER|DRM_CONTROL_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GET_SPRITE_COLORKEY, drm_noop, DRM_MASTER|DRM_CONTROL_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_WAIT, i915_gem_wait_ioctl, DRM_AUTH|DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_CREATE, i915_gem_context_create_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_DESTROY, i915_gem_context_destroy_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_REG_READ, i915_reg_read_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GET_RESET_STATS, i915_gem_context_reset_stats_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_USERPTR, i915_gem_userptr_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_GETPARAM, i915_gem_context_getparam_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_SETPARAM, i915_gem_context_setparam_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_PERF_OPEN, i915_perf_open_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_PERF_ADD_CONFIG, i915_perf_add_config_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(I915_PERF_REMOVE_CONFIG, i915_perf_remove_config_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW), -}; - static struct drm_driver driver = { /* Don't use MTRRs here; the Xserver or userspace app should * deal with them for Intel hardware. @@ -2757,8 +2767,9 @@ static struct drm_driver driver = { .dumb_create = i915_gem_dumb_create, .dumb_map_offset = i915_gem_mmap_gtt, - .ioctls = i915_ioctls, - .num_ioctls = ARRAY_SIZE(i915_ioctls), + .ioctl_register = drm_ioctl_register, + .ioctl_deregister = drm_ioctl_deregister, + .ioctl_get_registered = drm_ioctl_get_registered, .fops = &i915_driver_fops, .name = DRIVER_NAME, .desc = DRIVER_DESC,