From patchwork Thu Jan 24 16:58:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 10779543 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 0D207139A for ; Thu, 24 Jan 2019 16:58:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C28232CC93 for ; Thu, 24 Jan 2019 16:58:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B2DB529EF9; Thu, 24 Jan 2019 16:58:53 +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 D7DF42FFA2 for ; Thu, 24 Jan 2019 16:58:52 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 453E06F1BF; Thu, 24 Jan 2019 16:58:47 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id 978BA6F1B3 for ; Thu, 24 Jan 2019 16:58:44 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id o10so5119075edt.13 for ; Thu, 24 Jan 2019 08:58:44 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ku58Tz7gb+wiz5vsBXkKEPy7jootHMNsz++ro7jTAaY=; b=E2gkwYLLP1owXJUlcOb6GXeChHRAsXB/8GEsEjlXysqK6kEjIBACmx0Kb7TixKCGMV w3EGskhmERo4nnEfLTZSXWmV4lqqPY7JFGzi3SpWHHsYLWRa3adimD7ifi8sVO9WC7oe fWl/6mCiPYAdMKy9TQGhddHVzZG349m9t9EzmVct6mJqAf+0CpIPnL8HWQsqyLoTw/rK S2+T1z8xeEPW7xWasnTAC+NUfF+pN/t/bv3U4Bln1wcXziaEYZRcsd8lNmlreBqIcFMc FYG7aDMqKwe0b2Pj4UPBxbrWG02Zr1lmUoCgK42smfja/ascH0KtToxRK77W++QVzBfa O0rQ== X-Gm-Message-State: AJcUukdp8cRT5JMu15mdW1gxhjO8sME33NEEtKFPfdkU0CgDg/HY70ml gByhLtXumENp3w7U9wgjicNq3w== X-Google-Smtp-Source: ALg8bN7f7LCb0P5igrhjqUPnIFzh5npPv4T2VPBrC7QHvtc9BWbnkuWJOUxej+O5Ba0n84Zz8PCkew== X-Received: by 2002:a17:906:60b:: with SMTP id s11-v6mr6636028ejb.25.1548349122831; Thu, 24 Jan 2019 08:58:42 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:569e:0:3106:d637:d723:e855]) by smtp.gmail.com with ESMTPSA id w31sm11219233edw.82.2019.01.24.08.58.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Jan 2019 08:58:41 -0800 (PST) From: Daniel Vetter To: DRI Development Date: Thu, 24 Jan 2019 17:58:08 +0100 Message-Id: <20190124165831.16427-4-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190124165831.16427-1-daniel.vetter@ffwll.ch> References: <20190124165831.16427-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 03/26] drm/irq: Ditch DRIVER_IRQ_SHARED X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Intel Graphics Development , Daniel Vetter Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Virus-Scanned: ClamAV using ClamSMTP This is only used by drm_irq_install(), which is an optional helper. And the right choice is to set it for all pci devices, and not for everything else. Any driver with special needs should just use request_irq() directly, and there's plenty of drivers doing that already. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +- drivers/gpu/drm/drm_irq.c | 4 ++-- drivers/gpu/drm/gma500/psb_drv.c | 3 +-- drivers/gpu/drm/i915/i915_drv.c | 2 +- drivers/gpu/drm/mga/mga_drv.c | 2 +- drivers/gpu/drm/qxl/qxl_drv.c | 1 - drivers/gpu/drm/r128/r128_drv.c | 2 +- drivers/gpu/drm/radeon/radeon_drv.c | 4 +--- drivers/gpu/drm/via/via_drv.c | 3 +-- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 +- drivers/staging/vboxvideo/vbox_drv.c | 3 +-- include/drm/drm_drv.h | 24 +++++++----------------- 12 files changed, 18 insertions(+), 34 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index 22502417c18c..a1bb3773087b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -1189,7 +1189,7 @@ amdgpu_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe, static struct drm_driver kms_driver = { .driver_features = DRIVER_USE_AGP | DRIVER_ATOMIC | - DRIVER_IRQ_SHARED | DRIVER_GEM | + DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ, .load = amdgpu_driver_load_kms, .open = amdgpu_driver_open_kms, diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index c5babb3e4752..9bd8908d5fd8 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c @@ -120,8 +120,8 @@ int drm_irq_install(struct drm_device *dev, int irq) if (dev->driver->irq_preinstall) dev->driver->irq_preinstall(dev); - /* Install handler */ - if (drm_core_check_feature(dev, DRIVER_IRQ_SHARED)) + /* PCI devices require shared interrupts. */ + if (dev->pdev) sh_flags = IRQF_SHARED; ret = request_irq(irq, dev->driver->irq_handler, diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c index 7cf14aeb1c28..eefaf4daff2b 100644 --- a/drivers/gpu/drm/gma500/psb_drv.c +++ b/drivers/gpu/drm/gma500/psb_drv.c @@ -468,8 +468,7 @@ static const struct file_operations psb_gem_fops = { }; static struct drm_driver driver = { - .driver_features = DRIVER_IRQ_SHARED | \ - DRIVER_MODESET | DRIVER_GEM, + .driver_features = DRIVER_MODESET | DRIVER_GEM, .load = psb_driver_load, .unload = psb_driver_unload, .lastclose = drm_fb_helper_lastclose, diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 550cfb945942..a7aaa1ac4c99 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -3010,7 +3010,7 @@ static struct drm_driver driver = { * deal with them for Intel hardware. */ .driver_features = - DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME | + DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET | DRIVER_ATOMIC | DRIVER_SYNCOBJ, .release = i915_driver_release, .open = i915_driver_open, diff --git a/drivers/gpu/drm/mga/mga_drv.c b/drivers/gpu/drm/mga/mga_drv.c index 1aad27813c23..6e1d1054ad06 100644 --- a/drivers/gpu/drm/mga/mga_drv.c +++ b/drivers/gpu/drm/mga/mga_drv.c @@ -57,7 +57,7 @@ static const struct file_operations mga_driver_fops = { static struct drm_driver driver = { .driver_features = DRIVER_USE_AGP | DRIVER_PCI_DMA | DRIVER_LEGACY | - DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED, + DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ, .dev_priv_size = sizeof(drm_mga_buf_priv_t), .load = mga_driver_load, .unload = mga_driver_unload, diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c index 44daac129205..d856615bdb50 100644 --- a/drivers/gpu/drm/qxl/qxl_drv.c +++ b/drivers/gpu/drm/qxl/qxl_drv.c @@ -243,7 +243,6 @@ static struct pci_driver qxl_pci_driver = { static struct drm_driver qxl_driver = { .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | - DRIVER_IRQ_SHARED | DRIVER_ATOMIC, .dumb_create = qxl_mode_dumb_create, diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c index 0d2b7e42b3a7..4b1a505ab353 100644 --- a/drivers/gpu/drm/r128/r128_drv.c +++ b/drivers/gpu/drm/r128/r128_drv.c @@ -57,7 +57,7 @@ static const struct file_operations r128_driver_fops = { static struct drm_driver driver = { .driver_features = DRIVER_USE_AGP | DRIVER_PCI_DMA | DRIVER_SG | DRIVER_LEGACY | - DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED, + DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ, .dev_priv_size = sizeof(drm_r128_buf_priv_t), .load = r128_driver_load, .preclose = r128_driver_preclose, diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index 450a9d473c30..2e96c886392b 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -534,9 +534,7 @@ radeon_get_crtc_scanout_position(struct drm_device *dev, unsigned int pipe, static struct drm_driver kms_driver = { .driver_features = - DRIVER_USE_AGP | - DRIVER_IRQ_SHARED | DRIVER_GEM | - DRIVER_PRIME | DRIVER_RENDER, + DRIVER_USE_AGP | DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER, .load = radeon_driver_load_kms, .open = radeon_driver_open_kms, .postclose = radeon_driver_postclose_kms, diff --git a/drivers/gpu/drm/via/via_drv.c b/drivers/gpu/drm/via/via_drv.c index aaf766f7cca2..af6a12d3c058 100644 --- a/drivers/gpu/drm/via/via_drv.c +++ b/drivers/gpu/drm/via/via_drv.c @@ -70,8 +70,7 @@ static const struct file_operations via_driver_fops = { static struct drm_driver driver = { .driver_features = - DRIVER_USE_AGP | DRIVER_HAVE_IRQ | DRIVER_LEGACY | - DRIVER_IRQ_SHARED, + DRIVER_USE_AGP | DRIVER_HAVE_IRQ | DRIVER_LEGACY, .load = via_driver_load, .unload = via_driver_unload, .open = via_driver_open, diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index d159d0400013..4638f6791cda 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -1582,7 +1582,7 @@ static const struct file_operations vmwgfx_driver_fops = { }; static struct drm_driver driver = { - .driver_features = DRIVER_IRQ_SHARED | + .driver_features = DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER | DRIVER_ATOMIC, .load = vmw_driver_load, .unload = vmw_driver_unload, diff --git a/drivers/staging/vboxvideo/vbox_drv.c b/drivers/staging/vboxvideo/vbox_drv.c index 78cbcd68d4f3..b0d73d5fba5d 100644 --- a/drivers/staging/vboxvideo/vbox_drv.c +++ b/drivers/staging/vboxvideo/vbox_drv.c @@ -221,8 +221,7 @@ static void vbox_master_drop(struct drm_device *dev, struct drm_file *file_priv) static struct drm_driver driver = { .driver_features = - DRIVER_MODESET | DRIVER_GEM | DRIVER_IRQ_SHARED | - DRIVER_PRIME | DRIVER_ATOMIC, + DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME | DRIVER_ATOMIC, .dev_priv_size = 0, .lastclose = drm_fb_helper_lastclose, diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h index fbbcd2887ea8..60318480675f 100644 --- a/include/drm/drm_drv.h +++ b/include/drm/drm_drv.h @@ -94,42 +94,32 @@ enum drm_driver_feature { * code by calling request_irq() directly. */ DRIVER_HAVE_IRQ = BIT(5), - /** - * @DRIVER_IRQ_SHARED: - * - * Indicates to drm_irq_install() that a shared irq should be requested. - * - * FIXME: This should be an explicit argument for non-legacy drivers, or - * at least the default for PCI devices (which would cover all current - * users). - */ - DRIVER_IRQ_SHARED = BIT(6), /** * @DRIVER_GEM: * * Driver use the GEM memory manager. This should be set for all modern * drivers. */ - DRIVER_GEM = BIT(7), + DRIVER_GEM = BIT(6), /** * @DRIVER_MODESET: * * Driver supports mode setting interfaces (KMS). */ - DRIVER_MODESET = BIT(8), + DRIVER_MODESET = BIT(7), /** * @DRIVER_PRIME: * * Driver implements DRM PRIME buffer sharing. */ - DRIVER_PRIME = BIT(9), + DRIVER_PRIME = BIT(8), /** * @DRIVER_RENDER: * * Driver supports dedicated render nodes. See also the :ref:`section on * render nodes ` for details. */ - DRIVER_RENDER = BIT(10), + DRIVER_RENDER = BIT(9), /** * @DRIVER_ATOMIC: * @@ -139,21 +129,21 @@ enum drm_driver_feature { * multi-plane updates are not guaranteed to be tear-free) should not * set this flag. */ - DRIVER_ATOMIC = BIT(11), + DRIVER_ATOMIC = BIT(10), /** * @DRIVER_KMS_LEGACY_CONTEXT: * * Used only by nouveau for backwards compatibility with existing * userspace. Do not use. */ - DRIVER_KMS_LEGACY_CONTEXT = BIT(12), + DRIVER_KMS_LEGACY_CONTEXT = BIT(11), /** * @DRIVER_SYNCOBJ: * * Driver supports &drm_syncobj for explicit synchronization of command * submission. */ - DRIVER_SYNCOBJ = BIT(13), + DRIVER_SYNCOBJ = BIT(12), }; /**