Received: by 2002:a17:90a:9307:0:0:0:0 with SMTP id p7csp3966311pjo; Tue, 3 Mar 2020 10:13:24 -0800 (PST) X-Google-Smtp-Source: ADFU+vu+QecpP6mfmCCV4A84XzxTJWVfY9i118d9Xvv5OKTuTuaIZ9ZJdV1mXQbWgKrK4Rgi+ihH X-Received: by 2002:aca:4cd0:: with SMTP id z199mr3125838oia.123.1583259204004; Tue, 03 Mar 2020 10:13:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583259203; cv=none; d=google.com; s=arc-20160816; b=vClur6SWCpkDUHjeTwfKxwH4c43CEtZfojoGduKlPBqC0pVF8iOkbjEoa7+jDLNuMK pdXJF4gNE2J9sfN+Ns+/PEq63ueDETNoKN2+yNJ1Fd0gqrrU/3k8VZHpktGP8Dlx30O9 gF5ZgkUaq7HE0ksANJ68Yc9ZVNazG6qvcvqSn1kHmHi64S0Pv48DFASqlmPPQp4ptiPj X8G1SiUjH/8j3zYkvNC1UoNy7lEBMfWUjacV3Iu1nyBXT/9JMk9Y0g+HJRwJr/o9mNjV iJMk9PRq0Q159nyFDjtpy2sfSuRN77AUvK4v6VEcS8qrP+nGZtbKVguq6pMTFdtquXix +xZA== 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=VWhqlNHxUzmRxkwkoHM+VrJL4WmCaGSw2u510KPj1EM=; b=nYv7dD/bErzv2haZVxPetVAPAFUqjutM36dlMwtPaOWwElcstb9Q7spltx+ejJCBoC ogxxkCB06d35AMphQLNv4ZNuPf1iq8WO6/UvdX+7jK2KkCng1mmn2gHL9DOPz8eqmd0p GtYmcENkNyGtnuNCLsiK4lfk+K+qJ8m1+UNSa1YP/CzX9QllAurifh01C8Q2vc2PBne+ gK0mySkVbjifg06y3VXC7Au5JCkRYSoihKRmptzsaUdPtJnXiCsKIFn4yxmLv7DK95JE 4h7+FOT5yPg9ZmWe3XdcPK/nlk1pRPVicTJw+HJX4E+zM3jEj2SWmef2GzebniR01Jqd 5IwA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="v1L/fDFD"; 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 e6si8689274otq.217.2020.03.03.10.13.11; Tue, 03 Mar 2020 10:13:23 -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="v1L/fDFD"; 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 S1731995AbgCCSMe (ORCPT + 99 others); Tue, 3 Mar 2020 13:12:34 -0500 Received: from mail.kernel.org ([198.145.29.99]:55396 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731616AbgCCRsU (ORCPT ); Tue, 3 Mar 2020 12:48:20 -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 A0BA4208C3; Tue, 3 Mar 2020 17:48:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583257698; bh=RoFfNCxuyBJAaBUVqc+Mkp2CuQkPRSxXZ6tfduI7cOw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=v1L/fDFDy1hiWv7OzrhEDKSIbZLIheI1vnlFzjVBJ8ToJ+YwcdwaLcHtctZ1kbWbO ynozGn0nMgFAJruBqzHlR3P6ZHa8uNezv4IHe0/hqWNARXMjgS2q239eMcmQtrrRb4 hm60NW8OEzK+wRxUXfq11OIIJhVYBtPHRAOC1JuQ= 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.5 094/176] drm/radeon: Inline drm_get_pci_dev Date: Tue, 3 Mar 2020 18:42:38 +0100 Message-Id: <20200303174315.693227994@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200303174304.593872177@linuxfoundation.org> References: <20200303174304.593872177@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 @@ -575,7 +614,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;