Received: by 2002:a17:90a:9307:0:0:0:0 with SMTP id p7csp3948025pjo; Tue, 3 Mar 2020 09:56:14 -0800 (PST) X-Google-Smtp-Source: ADFU+vubz7yzd89PmlEc4akIvnM8Bcs2AHRx1KF9WJONS0rKf61V/ox8Na0RADLS18GsopauPNCn X-Received: by 2002:a9d:7088:: with SMTP id l8mr4324566otj.208.1583258173801; Tue, 03 Mar 2020 09:56:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583258173; cv=none; d=google.com; s=arc-20160816; b=lojoQixDcKfdzFGdG497umcKrMJiyyfh9xtsrzz80u6HYbd8Zt71tr9p+tWhe+cdtf HjxoaRuNoC/+0jfeuMY1+0hLh0zK2z0zk0PJVjp38jftMNTYLDtccx/zxcQ7BETiaBSe 2CxyIKZo7yXr7HmHCgh6lDKzlwemfvq2swlOhHOm5HHq9zThuzhlNMLizG/RmQKcUGVG ZbEFoGZOumqFxUPAQ9/SWXElLT0ANG21hbgKY76k0qBpqjO9dgtd4CeC8IU7vpdIasz1 zpB/NdqACbvsexZZ0RXL64/NWH9WzGOkdwUL25XPBxU5Y8kLZJcZLxpzusxN0OaVlzJq xT4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=fcxrX7bjeSAAufrkx6WH+wtGfMyxwktH51Kk89Cqloo=; b=tQKFhasfvpyDcQFkxtUYaUHoyOtXmXbuS65coJZWsbL42jVO8WFVvpy+LMxtVP+Vz6 zM6DnTfN3cDYJXvS+Xo/2sm2i9XJz0oQMXdVMrZz27p+y1/o2hKwtwLgEK6tb0mVUzyE 4D6265tOqzcadPI24Tib+BCLgNGyj04ghGcgJ3aHPOvPq8NDzMh8p6XUe7QIp28HZb/F oJTwDSJKjdgEF1dEXzaFONJ4AA/s+1CzfV4KxmKBK2vyVU26tf9CZaf4PvrzkhtjAPiS +/KMYBgq+Ay4DysI/6VYQE764JD8R2G9ddKOF9p/3YOQlII/aDoumLcHZzdHo8FfUsNc Kj3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YqLUnBvv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t6si2841909otp.133.2020.03.03.09.56.02; Tue, 03 Mar 2020 09:56:13 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YqLUnBvv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732724AbgCCRza (ORCPT + 99 others); Tue, 3 Mar 2020 12:55:30 -0500 Received: from mail.kernel.org ([198.145.29.99]:37080 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732713AbgCCRz1 (ORCPT ); Tue, 3 Mar 2020 12:55:27 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9C58D2072D; Tue, 3 Mar 2020 17:55:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583258126; bh=4tOmSmVMe3mvmllK6G1Y4slRC9SU/jQaGPx0xsYACAc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YqLUnBvv6HYLLlkhZ78QE9kVYC3uJiUyKvcAgiGzzmeYfZYCALdZtLK5kluerNcga ZMjIqGIkZhYsl7xL59bzxi2peo5JePRklkZ4xn3tM1njblFoh40QzfTaVOgItRtMKP IuDqkPcJWlO50aDvhFLyYtjozK0DZ7P6OLsT+yS0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Daniel Vetter , Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , "David (ChunMing) Zhou" , amd-gfx@lists.freedesktop.org, Emil Velikov Subject: [PATCH 5.4 080/152] drm/radeon: Inline drm_get_pci_dev Date: Tue, 3 Mar 2020 18:42:58 +0100 Message-Id: <20200303174311.613425292@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200303174302.523080016@linuxfoundation.org> References: <20200303174302.523080016@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Daniel Vetter commit eb12c957735b582607e5842a06d1f4c62e185c1d upstream. It's the last user, and more importantly, it's the last non-legacy user of anything in drm_pci.c. The only tricky bit is the agp initialization. But a close look shows that radeon does not use the drm_agp midlayer (the main use of that is drm_bufs for legacy drivers), and instead could use the agp subsystem directly (like nouveau does already). Hence we can just pull this in too. A further step would be to entirely drop the use of drm_device->agp, but feels like too much churn just for this patch. Signed-off-by: Daniel Vetter Cc: Alex Deucher Cc: "Christian König" Cc: "David (ChunMing) Zhou" Cc: amd-gfx@lists.freedesktop.org Reviewed-by: Alex Deucher Reviewed-by: Emil Velikov Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/radeon/radeon_drv.c | 43 ++++++++++++++++++++++++++++++++++-- drivers/gpu/drm/radeon/radeon_kms.c | 6 +++++ 2 files changed, 47 insertions(+), 2 deletions(-) --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -37,6 +37,7 @@ #include #include +#include #include #include #include @@ -325,6 +326,7 @@ static int radeon_pci_probe(struct pci_d const struct pci_device_id *ent) { unsigned long flags = 0; + struct drm_device *dev; int ret; if (!ent) @@ -365,7 +367,44 @@ static int radeon_pci_probe(struct pci_d if (ret) return ret; - return drm_get_pci_dev(pdev, ent, &kms_driver); + dev = drm_dev_alloc(&kms_driver, &pdev->dev); + if (IS_ERR(dev)) + return PTR_ERR(dev); + + ret = pci_enable_device(pdev); + if (ret) + goto err_free; + + dev->pdev = pdev; +#ifdef __alpha__ + dev->hose = pdev->sysdata; +#endif + + pci_set_drvdata(pdev, dev); + + if (pci_find_capability(dev->pdev, PCI_CAP_ID_AGP)) + dev->agp = drm_agp_init(dev); + if (dev->agp) { + dev->agp->agp_mtrr = arch_phys_wc_add( + dev->agp->agp_info.aper_base, + dev->agp->agp_info.aper_size * + 1024 * 1024); + } + + ret = drm_dev_register(dev, ent->driver_data); + if (ret) + goto err_agp; + + return 0; + +err_agp: + if (dev->agp) + arch_phys_wc_del(dev->agp->agp_mtrr); + kfree(dev->agp); + pci_disable_device(pdev); +err_free: + drm_dev_put(dev); + return ret; } static void @@ -578,7 +617,7 @@ radeon_get_crtc_scanout_position(struct static struct drm_driver kms_driver = { .driver_features = - DRIVER_USE_AGP | DRIVER_GEM | DRIVER_RENDER, + DRIVER_GEM | DRIVER_RENDER, .load = radeon_driver_load_kms, .open = radeon_driver_open_kms, .postclose = radeon_driver_postclose_kms, --- a/drivers/gpu/drm/radeon/radeon_kms.c +++ b/drivers/gpu/drm/radeon/radeon_kms.c @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -77,6 +78,11 @@ void radeon_driver_unload_kms(struct drm radeon_modeset_fini(rdev); radeon_device_fini(rdev); + if (dev->agp) + arch_phys_wc_del(dev->agp->agp_mtrr); + kfree(dev->agp); + dev->agp = NULL; + done_free: kfree(rdev); dev->dev_private = NULL;