From patchwork Mon Jan 14 16:05:56 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1972701 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id 134613FE33 for ; Mon, 14 Jan 2013 16:20:58 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 161A5E6486 for ; Mon, 14 Jan 2013 08:20:58 -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.9]) by gabe.freedesktop.org (Postfix) with ESMTP id 9E276E6458 for ; Mon, 14 Jan 2013 08:06:10 -0800 (PST) Received: from mailbox.adnet.avionic-design.de (mailbox.avionic-design.de [109.75.18.3]) by mrelayeu.kundenserver.de (node=mrbap3) with ESMTP (Nemesis) id 0MAeNv-1Toy2u3pMZ-00BHSI; Mon, 14 Jan 2013 17:06:08 +0100 Received: from localhost (localhost [127.0.0.1]) by mailbox.adnet.avionic-design.de (Postfix) with ESMTP id 24DEC2A2815B; Mon, 14 Jan 2013 17:06:07 +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 DxQ+k+-WNpVP; Mon, 14 Jan 2013 17:06:01 +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 EE0FF2A2814A; Mon, 14 Jan 2013 17:06:00 +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 42BE9100507; Mon, 14 Jan 2013 17:05:57 +0100 (CET) From: Thierry Reding To: David Airlie Subject: [PATCH v2 1/5] drm: Allow vblank support without DRIVER_HAVE_IRQ Date: Mon, 14 Jan 2013 17:05:56 +0100 Message-Id: <1358179560-26799-2-git-send-email-thierry.reding@avionic-design.de> X-Mailer: git-send-email 1.8.1 In-Reply-To: <1358179560-26799-1-git-send-email-thierry.reding@avionic-design.de> References: <1358179560-26799-1-git-send-email-thierry.reding@avionic-design.de> X-Provags-ID: V02:K0:bkeTzzIptpJGam5cBqwHfkwMR3JUgLPSL5dzwAYrf8y 53nadZRcaLLN9d1KebYpRTHCfMCZ70VCvYG1rUqGYlT3L+cCDm 1aPrOsOBdfctkccZJm17DEO0WZwVWtU9mH5wg70Dyk1UsLDKM7 7luff9qxP2/V875+d4SrKjKbnsqeQu8nbFmPXUZ3j0TCIq8YS+ d5M7EfumcnEmh676I3QJKMsDaySTnY7MRu7Rw6Mfp3RQeNYigl D4Ie+t43eqyebLDZvpLYjLp8hk11kBNcF8lBop++5EDJ000LQh uMM3gjS+ZZdxMgQ+zO4lNw31heYwB1hn2CddRCoGI1yLO/hiJl 31QyhTT640EAmnOZM6Vk3fjdPI2m9BscASi/MUuvcEEUJwG+bC cQP1T+lf2FiFNg4qP0+6duPE6mcO7owokIcXgtlJhuUb3/ISAI Lcdlv 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;