From patchwork Mon Jan 14 15:55:28 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1972641 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork2.kernel.org (Postfix) with ESMTP id 4522BDF2E1 for ; Mon, 14 Jan 2013 16:08:31 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 41180E646D for ; Mon, 14 Jan 2013 08:08:31 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.8]) by gabe.freedesktop.org (Postfix) with ESMTP id 3ABB4E643A for ; Mon, 14 Jan 2013 07:55:41 -0800 (PST) Received: from mailbox.adnet.avionic-design.de (mailbox.avionic-design.de [109.75.18.3]) by mrelayeu.kundenserver.de (node=mreu2) with ESMTP (Nemesis) id 0MFwkk-1Th0zl3f2k-00FNks; Mon, 14 Jan 2013 16:55:40 +0100 Received: from localhost (localhost [127.0.0.1]) by mailbox.adnet.avionic-design.de (Postfix) with ESMTP id 2F1602A28162; Mon, 14 Jan 2013 16:55:39 +0100 (CET) X-Virus-Scanned: amavisd-new at avionic-design.de Received: from mailbox.adnet.avionic-design.de ([127.0.0.1]) by localhost (mailbox.avionic-design.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0SSBs0VWxOnu; Mon, 14 Jan 2013 16:55:33 +0100 (CET) Received: from mailman.adnet.avionic-design.de (mailman.adnet.avionic-design.de [172.20.31.172]) by mailbox.adnet.avionic-design.de (Postfix) with ESMTP id 291902A28109; Mon, 14 Jan 2013 16:55:33 +0100 (CET) Received: from localhost (avionic-0098.adnet.avionic-design.de [172.20.31.233]) by mailman.adnet.avionic-design.de (Postfix) with ESMTP id 69D72100480; Mon, 14 Jan 2013 16:55:29 +0100 (CET) From: Thierry Reding To: David Airlie Subject: [PATCH 1/5] drm: Allow vblank support without DRIVER_HAVE_IRQ Date: Mon, 14 Jan 2013 16:55:28 +0100 Message-Id: <1358178932-25505-2-git-send-email-thierry.reding@avionic-design.de> X-Mailer: git-send-email 1.8.1 In-Reply-To: <1358178932-25505-1-git-send-email-thierry.reding@avionic-design.de> References: <1358178932-25505-1-git-send-email-thierry.reding@avionic-design.de> X-Provags-ID: V02:K0:YXQ9WT3pvgnifTXaImLep4/9jlkjBPPlv0x1RwYWqTw /s7SBMS6qxOBAM8ioj3k4LjVV1O2DS73avH4jVyZUHy4pQumap 2SPvGbgrYmyALgVntKkAwIIjlIKlq+O3AIGxbQqQXn6aYGdpKy pOs1aPyhhw9vwRUUtHpDOFfhR2ukVnp1emK71RLEWXxtrP3Y4v 2z/tSz4kU/yvCYnLvIqZYMwz6WA2althm4ZwP2h+pCJlAdM96g X1ZNTwpGTL3mBWfjknxSRb1rVu7PIPUXt5FHlvBSrIKc00faC0 GxP8/MmrjtOUy0QAfBYy90a2Rqe/HIBvhIH0DOehDp7QuWzaDw haEgO3bVRG1TkRBHweEo54Le3SoTb4cYAHpqF4mSM8hDrR0v4r 8PDQrwi1bCCazuRBWvnl8RG22Ntbg63jHLNstsHl8YXY4ctjMz 8NFRP Cc: linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Drivers that register interrupt handlers without the DRM core helpers don't initialize the .irq_enabled field and drm_dev_to_irq() may fail when called on them. This shouldn't preclude them from implementing the vblank IOCTL. Signed-off-by: Thierry Reding --- drivers/gpu/drm/drm_irq.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index 19c01ca..71f8205 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c @@ -1218,8 +1218,9 @@ int drm_wait_vblank(struct drm_device *dev, void *data, int ret; unsigned int flags, seq, crtc, high_crtc; - if ((!drm_dev_to_irq(dev)) || (!dev->irq_enabled)) - return -EINVAL; + if (drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) + if ((!drm_dev_to_irq(dev)) || (!dev->irq_enabled)) + return -EINVAL; if (vblwait->request.type & _DRM_VBLANK_SIGNAL) return -EINVAL;