On Tue, May 12, 2020 at 2:20 PM Thomas Zimmermann <tzimmerm...@suse.de> wrote: > > Hi Christian > > Am 11.05.20 um 19:17 schrieb Christian König: > > AGP is deprecated for 10+ years now and not used any more on modern > > hardware. > > > > Old hardware should continue to work in PCI mode. > > > > Signed-off-by: Christian König <christian.koe...@amd.com> > > --- > > drivers/gpu/drm/radeon/Makefile | 4 +- > > drivers/gpu/drm/radeon/evergreen.c | 7 - > > drivers/gpu/drm/radeon/r100.c | 10 +- > > drivers/gpu/drm/radeon/r300.c | 9 - > > drivers/gpu/drm/radeon/r420.c | 9 - > > drivers/gpu/drm/radeon/r520.c | 8 - > > drivers/gpu/drm/radeon/r600.c | 6 - > > drivers/gpu/drm/radeon/radeon.h | 11 - > > drivers/gpu/drm/radeon/radeon_agp.c | 290 ------------------------- > > drivers/gpu/drm/radeon/radeon_device.c | 23 +- > > drivers/gpu/drm/radeon/radeon_drv.c | 9 - > > In radeon_drv.c, the field drm_device.agp is still being initialized in > radeon_pci_probe() and cleaned up in radeon_driver_unload_kms(). Is this > intentional? > > Best regards > Thomas > > > drivers/gpu/drm/radeon/radeon_ttm.c | 39 ---- > > drivers/gpu/drm/radeon/rv515.c | 9 - > > drivers/gpu/drm/radeon/rv770.c | 7 - > > 14 files changed, 4 insertions(+), 437 deletions(-) > > delete mode 100644 drivers/gpu/drm/radeon/radeon_agp.c > > > > diff --git a/drivers/gpu/drm/radeon/Makefile > > b/drivers/gpu/drm/radeon/Makefile > > index c693b2ca0329..77429cfd303e 100644 > > --- a/drivers/gpu/drm/radeon/Makefile > > +++ b/drivers/gpu/drm/radeon/Makefile > > @@ -61,8 +61,8 @@ radeon-y := radeon_drv.o > > > > # add KMS driver > > radeon-y += radeon_device.o radeon_asic.o radeon_kms.o \ > > - radeon_atombios.o radeon_agp.o atombios_crtc.o radeon_combios.o \ > > - atom.o radeon_fence.o radeon_ttm.o radeon_object.o radeon_gart.o \ > > + radeon_atombios.o atombios_crtc.o radeon_combios.o atom.o \ > > + radeon_fence.o radeon_ttm.o radeon_object.o radeon_gart.o \ > > radeon_legacy_crtc.o radeon_legacy_encoders.o radeon_connectors.o \ > > radeon_encoders.o radeon_display.o radeon_cursor.o radeon_i2c.o \ > > radeon_clocks.o radeon_fb.o radeon_gem.o radeon_ring.o > > radeon_irq_kms.o \ > > diff --git a/drivers/gpu/drm/radeon/evergreen.c > > b/drivers/gpu/drm/radeon/evergreen.c > > index 14d90dc376e7..66b3d9a2c6dd 100644 > > --- a/drivers/gpu/drm/radeon/evergreen.c > > +++ b/drivers/gpu/drm/radeon/evergreen.c > > @@ -5216,12 +5216,6 @@ int evergreen_init(struct radeon_device *rdev) > > r = radeon_fence_driver_init(rdev); > > if (r) > > return r; > > - /* initialize AGP */ > > - if (rdev->flags & RADEON_IS_AGP) { > > - r = radeon_agp_init(rdev); > > - if (r) > > - radeon_agp_disable(rdev); > > - } > > /* initialize memory controller */ > > r = evergreen_mc_init(rdev); > > if (r) > > @@ -5315,7 +5309,6 @@ void evergreen_fini(struct radeon_device *rdev) > > r600_vram_scratch_fini(rdev); > > radeon_gem_fini(rdev); > > radeon_fence_driver_fini(rdev); > > - radeon_agp_fini(rdev); > > radeon_bo_fini(rdev); > > radeon_atombios_fini(rdev); > > kfree(rdev->bios); > > diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c > > index 24c8db673931..320b1b40a30a 100644 > > --- a/drivers/gpu/drm/radeon/r100.c > > +++ b/drivers/gpu/drm/radeon/r100.c > > @@ -3382,7 +3382,7 @@ void r100_bandwidth_update(struct radeon_device *rdev) > > > > if (rdev->flags & RADEON_IS_AGP) { > > fixed20_12 agpmode_ff; > > - agpmode_ff.full = dfixed_const(radeon_agpmode); > > + agpmode_ff.full = dfixed_const(0); > > temp_ff.full = dfixed_const_666(16); > > sclk_eff_ff.full -= dfixed_mul(agpmode_ff, temp_ff); > > } > > @@ -3992,7 +3992,6 @@ void r100_fini(struct radeon_device *rdev) > > radeon_gem_fini(rdev); > > if (rdev->flags & RADEON_IS_PCI) > > r100_pci_gart_fini(rdev); > > - radeon_agp_fini(rdev); > > radeon_irq_kms_fini(rdev); > > radeon_fence_driver_fini(rdev); > > radeon_bo_fini(rdev); > > @@ -4068,13 +4067,6 @@ int r100_init(struct radeon_device *rdev) > > r100_errata(rdev); > > /* Initialize clocks */ > > radeon_get_clock_info(rdev->ddev); > > - /* initialize AGP */ > > - if (rdev->flags & RADEON_IS_AGP) { > > - r = radeon_agp_init(rdev); > > - if (r) { > > - radeon_agp_disable(rdev); > > - } > > - } > > /* initialize VRAM */ > > r100_mc_init(rdev); > > /* Fence driver */ > > diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c > > index 3b7ead5be5bf..afd688629cf9 100644 > > --- a/drivers/gpu/drm/radeon/r300.c > > +++ b/drivers/gpu/drm/radeon/r300.c > > @@ -1498,7 +1498,6 @@ void r300_fini(struct radeon_device *rdev) > > rv370_pcie_gart_fini(rdev); > > if (rdev->flags & RADEON_IS_PCI) > > r100_pci_gart_fini(rdev); > > - radeon_agp_fini(rdev); > > radeon_irq_kms_fini(rdev); > > radeon_fence_driver_fini(rdev); > > radeon_bo_fini(rdev); > > @@ -1547,13 +1546,6 @@ int r300_init(struct radeon_device *rdev) > > r300_errata(rdev); > > /* Initialize clocks */ > > radeon_get_clock_info(rdev->ddev); > > - /* initialize AGP */ > > - if (rdev->flags & RADEON_IS_AGP) { > > - r = radeon_agp_init(rdev); > > - if (r) { > > - radeon_agp_disable(rdev); > > - } > > - } > > /* initialize memory controller */ > > r300_mc_init(rdev); > > /* Fence driver */ > > @@ -1592,7 +1584,6 @@ int r300_init(struct radeon_device *rdev) > > rv370_pcie_gart_fini(rdev); > > if (rdev->flags & RADEON_IS_PCI) > > r100_pci_gart_fini(rdev); > > - radeon_agp_fini(rdev); > > rdev->accel_working = false; > > } > > return 0; > > diff --git a/drivers/gpu/drm/radeon/r420.c b/drivers/gpu/drm/radeon/r420.c > > index 1d4c04e0a449..3cb337dacd56 100644 > > --- a/drivers/gpu/drm/radeon/r420.c > > +++ b/drivers/gpu/drm/radeon/r420.c > > @@ -366,7 +366,6 @@ void r420_fini(struct radeon_device *rdev) > > rv370_pcie_gart_fini(rdev); > > if (rdev->flags & RADEON_IS_PCI) > > r100_pci_gart_fini(rdev); > > - radeon_agp_fini(rdev); > > radeon_irq_kms_fini(rdev); > > radeon_fence_driver_fini(rdev); > > radeon_bo_fini(rdev); > > @@ -419,13 +418,6 @@ int r420_init(struct radeon_device *rdev) > > > > /* Initialize clocks */ > > radeon_get_clock_info(rdev->ddev); > > - /* initialize AGP */ > > - if (rdev->flags & RADEON_IS_AGP) { > > - r = radeon_agp_init(rdev); > > - if (r) { > > - radeon_agp_disable(rdev); > > - } > > - } > > /* initialize memory controller */ > > r300_mc_init(rdev); > > r420_debugfs(rdev); > > @@ -470,7 +462,6 @@ int r420_init(struct radeon_device *rdev) > > rv370_pcie_gart_fini(rdev); > > if (rdev->flags & RADEON_IS_PCI) > > r100_pci_gart_fini(rdev); > > - radeon_agp_fini(rdev); > > rdev->accel_working = false; > > } > > return 0; > > diff --git a/drivers/gpu/drm/radeon/r520.c b/drivers/gpu/drm/radeon/r520.c > > index fc78e64ae727..76ac87d72406 100644 > > --- a/drivers/gpu/drm/radeon/r520.c > > +++ b/drivers/gpu/drm/radeon/r520.c > > @@ -288,13 +288,6 @@ int r520_init(struct radeon_device *rdev) > > } > > /* Initialize clocks */ > > radeon_get_clock_info(rdev->ddev); > > - /* initialize AGP */ > > - if (rdev->flags & RADEON_IS_AGP) { > > - r = radeon_agp_init(rdev); > > - if (r) { > > - radeon_agp_disable(rdev); > > - } > > - } > > /* initialize memory controller */ > > r520_mc_init(rdev); > > rv515_debugfs(rdev); > > @@ -324,7 +317,6 @@ int r520_init(struct radeon_device *rdev) > > radeon_ib_pool_fini(rdev); > > radeon_irq_kms_fini(rdev); > > rv370_pcie_gart_fini(rdev); > > - radeon_agp_fini(rdev); > > rdev->accel_working = false; > > } > > return 0; > > diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c > > index d9a33ca768f3..4a5ac15893c2 100644 > > --- a/drivers/gpu/drm/radeon/r600.c > > +++ b/drivers/gpu/drm/radeon/r600.c > > @@ -3286,11 +3286,6 @@ int r600_init(struct radeon_device *rdev) > > r = radeon_fence_driver_init(rdev); > > if (r) > > return r; > > - if (rdev->flags & RADEON_IS_AGP) { > > - r = radeon_agp_init(rdev); > > - if (r) > > - radeon_agp_disable(rdev); > > - } > > r = r600_mc_init(rdev); > > if (r) > > return r; > > @@ -3353,7 +3348,6 @@ void r600_fini(struct radeon_device *rdev) > > radeon_irq_kms_fini(rdev); > > r600_pcie_gart_fini(rdev); > > r600_vram_scratch_fini(rdev); > > - radeon_agp_fini(rdev); > > radeon_gem_fini(rdev); > > radeon_fence_driver_fini(rdev); > > radeon_bo_fini(rdev); > > diff --git a/drivers/gpu/drm/radeon/radeon.h > > b/drivers/gpu/drm/radeon/radeon.h > > index 30e32adc1fc6..377e1403b134 100644 > > --- a/drivers/gpu/drm/radeon/radeon.h > > +++ b/drivers/gpu/drm/radeon/radeon.h > > @@ -91,7 +91,6 @@ extern int radeon_no_wb; > > extern int radeon_modeset; > > extern int radeon_dynclks; > > extern int radeon_r4xx_atom; > > -extern int radeon_agpmode; > > extern int radeon_vram_limit; > > extern int radeon_gart_size; > > extern int radeon_benchmarking; > > @@ -1116,16 +1115,6 @@ typedef int (*radeon_packet0_check_t)(struct > > radeon_cs_parser *p, > > typedef int (*radeon_packet3_check_t)(struct radeon_cs_parser *p, > > struct radeon_cs_packet *pkt); > > > > - > > -/* > > - * AGP > > - */ > > -int radeon_agp_init(struct radeon_device *rdev); > > -void radeon_agp_resume(struct radeon_device *rdev); > > -void radeon_agp_suspend(struct radeon_device *rdev); > > -void radeon_agp_fini(struct radeon_device *rdev); > > - > > - > > /* > > * Writeback > > */ > > diff --git a/drivers/gpu/drm/radeon/radeon_agp.c > > b/drivers/gpu/drm/radeon/radeon_agp.c > > deleted file mode 100644 > > index 0aca7bdf54c7..000000000000 > > --- a/drivers/gpu/drm/radeon/radeon_agp.c > > +++ /dev/null > > @@ -1,290 +0,0 @@ > > -/* > > - * Copyright 2008 Red Hat Inc. > > - * Copyright 2009 Jerome Glisse. > > - * > > - * Permission is hereby granted, free of charge, to any person obtaining a > > - * copy of this software and associated documentation files (the > > "Software"), > > - * to deal in the Software without restriction, including without > > limitation > > - * the rights to use, copy, modify, merge, publish, distribute, sublicense, > > - * and/or sell copies of the Software, and to permit persons to whom the > > - * Software is furnished to do so, subject to the following conditions: > > - * > > - * The above copyright notice and this permission notice shall be included > > in > > - * all copies or substantial portions of the Software. > > - * > > - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > > OR > > - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > > - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > > - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR > > - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, > > - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > > - * OTHER DEALINGS IN THE SOFTWARE. > > - * > > - * Authors: > > - * Dave Airlie > > - * Jerome Glisse <gli...@freedesktop.org> > > - */ > > - > > -#include <linux/pci.h> > > - > > -#include <drm/drm_agpsupport.h> > > -#include <drm/drm_device.h> > > -#include <drm/radeon_drm.h> > > - > > -#include "radeon.h" > > - > > -#if IS_ENABLED(CONFIG_AGP) > > - > > -struct radeon_agpmode_quirk { > > - u32 hostbridge_vendor; > > - u32 hostbridge_device; > > - u32 chip_vendor; > > - u32 chip_device; > > - u32 subsys_vendor; > > - u32 subsys_device; > > - u32 default_mode; > > -}; > > - > > -static struct radeon_agpmode_quirk radeon_agpmode_quirk_list[] = { > > - /* Intel E7505 Memory Controller Hub / RV350 AR [Radeon 9600XT] Needs > > AGPMode 4 (deb #515326) */ > > - { PCI_VENDOR_ID_INTEL, 0x2550, PCI_VENDOR_ID_ATI, 0x4152, 0x1458, > > 0x4038, 4}, > > - /* Intel 82865G/PE/P DRAM Controller/Host-Hub / Mobility 9800 Needs > > AGPMode 4 (deb #462590) */ > > - { PCI_VENDOR_ID_INTEL, 0x2570, PCI_VENDOR_ID_ATI, 0x4a4e, > > PCI_VENDOR_ID_DELL, 0x5106, 4}, > > - /* Intel 82865G/PE/P DRAM Controller/Host-Hub / RV280 [Radeon 9200 > > SE] Needs AGPMode 4 (lp #300304) */ > > - { PCI_VENDOR_ID_INTEL, 0x2570, PCI_VENDOR_ID_ATI, 0x5964, > > - 0x148c, 0x2073, 4}, > > - /* Intel 82855PM Processor to I/O Controller / Mobility M6 LY Needs > > AGPMode 1 (deb #467235) */ > > - { PCI_VENDOR_ID_INTEL, 0x3340, PCI_VENDOR_ID_ATI, 0x4c59, > > - PCI_VENDOR_ID_IBM, 0x052f, 1}, > > - /* Intel 82855PM host bridge / Mobility 9600 M10 RV350 Needs AGPMode > > 1 (lp #195051) */ > > - { PCI_VENDOR_ID_INTEL, 0x3340, PCI_VENDOR_ID_ATI, 0x4e50, > > - PCI_VENDOR_ID_IBM, 0x0550, 1}, > > - /* Intel 82855PM host bridge / RV250/M9 GL [Mobility FireGL > > 9000/Radeon 9000] needs AGPMode 1 (Thinkpad T40p) */ > > - { PCI_VENDOR_ID_INTEL, 0x3340, PCI_VENDOR_ID_ATI, 0x4c66, > > - PCI_VENDOR_ID_IBM, 0x054d, 1}, > > - /* Intel 82855PM host bridge / Mobility M7 needs AGPMode 1 */ > > - { PCI_VENDOR_ID_INTEL, 0x3340, PCI_VENDOR_ID_ATI, 0x4c57, > > - PCI_VENDOR_ID_IBM, 0x0530, 1}, > > - /* Intel 82855PM host bridge / FireGL Mobility T2 RV350 Needs AGPMode > > 2 (fdo #20647) */ > > - { PCI_VENDOR_ID_INTEL, 0x3340, PCI_VENDOR_ID_ATI, 0x4e54, > > - PCI_VENDOR_ID_IBM, 0x054f, 2}, > > - /* Intel 82855PM host bridge / Mobility M9+ / VaioPCG-V505DX Needs > > AGPMode 2 (fdo #17928) */ > > - { PCI_VENDOR_ID_INTEL, 0x3340, PCI_VENDOR_ID_ATI, 0x5c61, > > - PCI_VENDOR_ID_SONY, 0x816b, 2}, > > - /* Intel 82855PM Processor to I/O Controller / Mobility M9+ Needs > > AGPMode 8 (phoronix forum) */ > > - { PCI_VENDOR_ID_INTEL, 0x3340, PCI_VENDOR_ID_ATI, 0x5c61, > > - PCI_VENDOR_ID_SONY, 0x8195, 8}, > > - /* Intel 82830 830 Chipset Host Bridge / Mobility M6 LY Needs AGPMode > > 2 (fdo #17360)*/ > > - { PCI_VENDOR_ID_INTEL, 0x3575, PCI_VENDOR_ID_ATI, 0x4c59, > > - PCI_VENDOR_ID_DELL, 0x00e3, 2}, > > - /* Intel 82852/82855 host bridge / Mobility FireGL 9000 RV250 Needs > > AGPMode 1 (lp #296617) */ > > - { PCI_VENDOR_ID_INTEL, 0x3580, PCI_VENDOR_ID_ATI, 0x4c66, > > - PCI_VENDOR_ID_DELL, 0x0149, 1}, > > - /* Intel 82855PM host bridge / Mobility FireGL 9000 RV250 Needs > > AGPMode 1 for suspend/resume */ > > - { PCI_VENDOR_ID_INTEL, 0x3340, PCI_VENDOR_ID_ATI, 0x4c66, > > - PCI_VENDOR_ID_IBM, 0x0531, 1}, > > - /* Intel 82852/82855 host bridge / Mobility 9600 M10 RV350 Needs > > AGPMode 1 (deb #467460) */ > > - { PCI_VENDOR_ID_INTEL, 0x3580, PCI_VENDOR_ID_ATI, 0x4e50, > > - 0x1025, 0x0061, 1}, > > - /* Intel 82852/82855 host bridge / Mobility 9600 M10 RV350 Needs > > AGPMode 1 (lp #203007) */ > > - { PCI_VENDOR_ID_INTEL, 0x3580, PCI_VENDOR_ID_ATI, 0x4e50, > > - 0x1025, 0x0064, 1}, > > - /* Intel 82852/82855 host bridge / Mobility 9600 M10 RV350 Needs > > AGPMode 1 (lp #141551) */ > > - { PCI_VENDOR_ID_INTEL, 0x3580, PCI_VENDOR_ID_ATI, 0x4e50, > > - PCI_VENDOR_ID_ASUSTEK, 0x1942, 1}, > > - /* Intel 82852/82855 host bridge / Mobility 9600/9700 Needs AGPMode 1 > > (deb #510208) */ > > - { PCI_VENDOR_ID_INTEL, 0x3580, PCI_VENDOR_ID_ATI, 0x4e50, > > - 0x10cf, 0x127f, 1}, > > - /* ASRock K7VT4A+ AGP 8x / ATI Radeon 9250 AGP Needs AGPMode 4 (lp > > #133192) */ > > - { 0x1849, 0x3189, PCI_VENDOR_ID_ATI, 0x5960, > > - 0x1787, 0x5960, 4}, > > - /* VIA K8M800 Host Bridge / RV280 [Radeon 9200 PRO] Needs AGPMode 4 > > (fdo #12544) */ > > - { PCI_VENDOR_ID_VIA, 0x0204, PCI_VENDOR_ID_ATI, 0x5960, > > - 0x17af, 0x2020, 4}, > > - /* VIA KT880 Host Bridge / RV350 [Radeon 9550] Needs AGPMode 4 (fdo > > #19981) */ > > - { PCI_VENDOR_ID_VIA, 0x0269, PCI_VENDOR_ID_ATI, 0x4153, > > - PCI_VENDOR_ID_ASUSTEK, 0x003c, 4}, > > - /* VIA VT8363 Host Bridge / R200 QL [Radeon 8500] Needs AGPMode 2 (lp > > #141551) */ > > - { PCI_VENDOR_ID_VIA, 0x0305, PCI_VENDOR_ID_ATI, 0x514c, > > - PCI_VENDOR_ID_ATI, 0x013a, 2}, > > - /* VIA VT82C693A Host Bridge / RV280 [Radeon 9200 PRO] Needs AGPMode > > 2 (deb #515512) */ > > - { PCI_VENDOR_ID_VIA, 0x0691, PCI_VENDOR_ID_ATI, 0x5960, > > - PCI_VENDOR_ID_ASUSTEK, 0x004c, 2}, > > - /* VIA VT82C693A Host Bridge / RV280 [Radeon 9200 PRO] Needs AGPMode > > 2 */ > > - { PCI_VENDOR_ID_VIA, 0x0691, PCI_VENDOR_ID_ATI, 0x5960, > > - PCI_VENDOR_ID_ASUSTEK, 0x0054, 2}, > > - /* VIA VT8377 Host Bridge / R200 QM [Radeon 9100] Needs AGPMode 4 > > (deb #461144) */ > > - { PCI_VENDOR_ID_VIA, 0x3189, PCI_VENDOR_ID_ATI, 0x514d, > > - 0x174b, 0x7149, 4}, > > - /* VIA VT8377 Host Bridge / RV280 [Radeon 9200 PRO] Needs AGPMode 4 > > (lp #312693) */ > > - { PCI_VENDOR_ID_VIA, 0x3189, PCI_VENDOR_ID_ATI, 0x5960, > > - 0x1462, 0x0380, 4}, > > - /* VIA VT8377 Host Bridge / RV280 Needs AGPMode 4 (ati ML) */ > > - { PCI_VENDOR_ID_VIA, 0x3189, PCI_VENDOR_ID_ATI, 0x5964, > > - 0x148c, 0x2073, 4}, > > - /* ATI Host Bridge / RV280 [M9+] Needs AGPMode 1 (phoronix forum) */ > > - { PCI_VENDOR_ID_ATI, 0xcbb2, PCI_VENDOR_ID_ATI, 0x5c61, > > - PCI_VENDOR_ID_SONY, 0x8175, 1}, > > - { 0, 0, 0, 0, 0, 0, 0 }, > > -}; > > -#endif > > - > > -int radeon_agp_init(struct radeon_device *rdev) > > -{ > > -#if IS_ENABLED(CONFIG_AGP) > > - struct radeon_agpmode_quirk *p = radeon_agpmode_quirk_list; > > - struct drm_agp_mode mode; > > - struct drm_agp_info info; > > - uint32_t agp_status; > > - int default_mode; > > - bool is_v3; > > - int ret; > > - > > - /* Acquire AGP. */ > > - ret = drm_agp_acquire(rdev->ddev); > > - if (ret) { > > - DRM_ERROR("Unable to acquire AGP: %d\n", ret); > > - return ret; > > - } > > - > > - ret = drm_agp_info(rdev->ddev, &info); > > - if (ret) { > > - drm_agp_release(rdev->ddev); > > - DRM_ERROR("Unable to get AGP info: %d\n", ret); > > - return ret; > > - } > > - > > - if (rdev->ddev->agp->agp_info.aper_size < 32) { > > - drm_agp_release(rdev->ddev); > > - dev_warn(rdev->dev, "AGP aperture too small (%zuM) " > > - "need at least 32M, disabling AGP\n", > > - rdev->ddev->agp->agp_info.aper_size); > > - return -EINVAL; > > - } > > - > > - mode.mode = info.mode; > > - /* chips with the agp to pcie bridge don't have the AGP_STATUS > > register > > - * Just use the whatever mode the host sets up. > > - */ > > - if (rdev->family <= CHIP_RV350) > > - agp_status = (RREG32(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) > > & mode.mode; > > - else > > - agp_status = mode.mode; > > - is_v3 = !!(agp_status & RADEON_AGPv3_MODE); > > - > > - if (is_v3) { > > - default_mode = (agp_status & RADEON_AGPv3_8X_MODE) ? 8 : 4; > > - } else { > > - if (agp_status & RADEON_AGP_4X_MODE) { > > - default_mode = 4; > > - } else if (agp_status & RADEON_AGP_2X_MODE) { > > - default_mode = 2; > > - } else { > > - default_mode = 1; > > - } > > - } > > - > > - /* Apply AGPMode Quirks */ > > - while (p && p->chip_device != 0) { > > - if (info.id_vendor == p->hostbridge_vendor && > > - info.id_device == p->hostbridge_device && > > - rdev->pdev->vendor == p->chip_vendor && > > - rdev->pdev->device == p->chip_device && > > - rdev->pdev->subsystem_vendor == p->subsys_vendor && > > - rdev->pdev->subsystem_device == p->subsys_device) { > > - default_mode = p->default_mode; > > - } > > - ++p; > > - } > > - > > - if (radeon_agpmode > 0) { > > - if ((radeon_agpmode < (is_v3 ? 4 : 1)) || > > - (radeon_agpmode > (is_v3 ? 8 : 4)) || > > - (radeon_agpmode & (radeon_agpmode - 1))) { > > - DRM_ERROR("Illegal AGP Mode: %d (valid %s), leaving > > at %d\n", > > - radeon_agpmode, is_v3 ? "4, 8" : "1, 2, 4", > > - default_mode); > > - radeon_agpmode = default_mode; > > - } else { > > - DRM_INFO("AGP mode requested: %d\n", radeon_agpmode); > > - } > > - } else { > > - radeon_agpmode = default_mode; > > - } > > - > > - mode.mode &= ~RADEON_AGP_MODE_MASK; > > - if (is_v3) { > > - switch (radeon_agpmode) { > > - case 8: > > - mode.mode |= RADEON_AGPv3_8X_MODE; > > - break; > > - case 4: > > - default: > > - mode.mode |= RADEON_AGPv3_4X_MODE; > > - break; > > - } > > - } else { > > - switch (radeon_agpmode) { > > - case 4: > > - mode.mode |= RADEON_AGP_4X_MODE; > > - break; > > - case 2: > > - mode.mode |= RADEON_AGP_2X_MODE; > > - break; > > - case 1: > > - default: > > - mode.mode |= RADEON_AGP_1X_MODE; > > - break; > > - } > > - } > > - > > - mode.mode &= ~RADEON_AGP_FW_MODE; /* disable fw */ > > - ret = drm_agp_enable(rdev->ddev, mode); > > - if (ret) { > > - DRM_ERROR("Unable to enable AGP (mode = 0x%lx)\n", mode.mode); > > - drm_agp_release(rdev->ddev); > > - return ret; > > - } > > - > > - rdev->mc.agp_base = rdev->ddev->agp->agp_info.aper_base; > > The field agp_base seems to be used to program HW registers. Yet I > cannot find its initialization after applying the patchset. Does some of > this removed setup code need to be moved elsewhere instead?
I think we should be ok as long as the RADEON_IS_AGP flag is removed which gets done in radeon_agp_disable. Alex > > Best regards > Thomas > > > - rdev->mc.gtt_size = rdev->ddev->agp->agp_info.aper_size << 20; > > - rdev->mc.gtt_start = rdev->mc.agp_base; > > - rdev->mc.gtt_end = rdev->mc.gtt_start + rdev->mc.gtt_size - 1; > > - dev_info(rdev->dev, "GTT: %lluM 0x%08llX - 0x%08llX\n", > > - rdev->mc.gtt_size >> 20, rdev->mc.gtt_start, > > rdev->mc.gtt_end); > > - > > - /* workaround some hw issues */ > > - if (rdev->family < CHIP_R200) { > > - WREG32(RADEON_AGP_CNTL, RREG32(RADEON_AGP_CNTL) | 0x000e0000); > > - } > > - return 0; > > -#else > > - return 0; > > -#endif > > -} > > - > > -void radeon_agp_resume(struct radeon_device *rdev) > > -{ > > -#if IS_ENABLED(CONFIG_AGP) > > - int r; > > - if (rdev->flags & RADEON_IS_AGP) { > > - r = radeon_agp_init(rdev); > > - if (r) > > - dev_warn(rdev->dev, "radeon AGP reinit failed\n"); > > - } > > -#endif > > -} > > - > > -void radeon_agp_fini(struct radeon_device *rdev) > > -{ > > -#if IS_ENABLED(CONFIG_AGP) > > - if (rdev->ddev->agp && rdev->ddev->agp->acquired) { > > - drm_agp_release(rdev->ddev); > > - } > > -#endif > > -} > > - > > -void radeon_agp_suspend(struct radeon_device *rdev) > > -{ > > - radeon_agp_fini(rdev); > > -} > > diff --git a/drivers/gpu/drm/radeon/radeon_device.c > > b/drivers/gpu/drm/radeon/radeon_device.c > > index 266e3cbbd09b..12e5c5d81c47 100644 > > --- a/drivers/gpu/drm/radeon/radeon_device.c > > +++ b/drivers/gpu/drm/radeon/radeon_device.c > > @@ -1145,22 +1145,6 @@ static void radeon_check_arguments(struct > > radeon_device *rdev) > > } > > rdev->mc.gtt_size = (uint64_t)radeon_gart_size << 20; > > > > - /* AGP mode can only be -1, 1, 2, 4, 8 */ > > - switch (radeon_agpmode) { > > - case -1: > > - case 0: > > - case 1: > > - case 2: > > - case 4: > > - case 8: > > - break; > > - default: > > - dev_warn(rdev->dev, "invalid AGP mode %d (valid mode: " > > - "-1, 0, 1, 2, 4, 8)\n", radeon_agpmode); > > - radeon_agpmode = 0; > > - break; > > - } > > - > > if (!radeon_check_pot_argument(radeon_vm_size)) { > > dev_warn(rdev->dev, "VM size (%d) must be a power of 2\n", > > radeon_vm_size); > > @@ -1348,9 +1332,8 @@ int radeon_device_init(struct radeon_device *rdev, > > rdev->flags &= ~RADEON_IS_AGP; > > } > > > > - if (rdev->flags & RADEON_IS_AGP && radeon_agpmode == -1) { > > + if (rdev->flags & RADEON_IS_AGP) > > radeon_agp_disable(rdev); > > - } > > > > /* Set the internal MC address mask > > * This is the max address of the GPU's > > @@ -1636,8 +1619,6 @@ int radeon_suspend_kms(struct drm_device *dev, bool > > suspend, > > */ > > radeon_bo_evict_vram(rdev); > > > > - radeon_agp_suspend(rdev); > > - > > pci_save_state(dev->pdev); > > if (freeze && rdev->family >= CHIP_CEDAR && !(rdev->flags & > > RADEON_IS_IGP)) { > > rdev->asic->asic_reset(rdev, true); > > @@ -1687,8 +1668,6 @@ int radeon_resume_kms(struct drm_device *dev, bool > > resume, bool fbcon) > > return -1; > > } > > } > > - /* resume AGP if in use */ > > - radeon_agp_resume(rdev); > > radeon_resume(rdev); > > > > r = radeon_ib_ring_tests(rdev); > > diff --git a/drivers/gpu/drm/radeon/radeon_drv.c > > b/drivers/gpu/drm/radeon/radeon_drv.c > > index bbb0883e8ce6..62a5dfaf990b 100644 > > --- a/drivers/gpu/drm/radeon/radeon_drv.c > > +++ b/drivers/gpu/drm/radeon/radeon_drv.c > > @@ -171,12 +171,6 @@ int radeon_no_wb; > > int radeon_modeset = -1; > > int radeon_dynclks = -1; > > int radeon_r4xx_atom = 0; > > -#ifdef __powerpc__ > > -/* Default to PCI on PowerPC (fdo #95017) */ > > -int radeon_agpmode = -1; > > -#else > > -int radeon_agpmode = 0; > > -#endif > > int radeon_vram_limit = 0; > > int radeon_gart_size = -1; /* auto */ > > int radeon_benchmarking = 0; > > @@ -220,9 +214,6 @@ module_param_named(r4xx_atom, radeon_r4xx_atom, int, > > 0444); > > MODULE_PARM_DESC(vramlimit, "Restrict VRAM for testing, in megabytes"); > > module_param_named(vramlimit, radeon_vram_limit, int, 0600); > > > > -MODULE_PARM_DESC(agpmode, "AGP Mode (-1 == PCI)"); > > -module_param_named(agpmode, radeon_agpmode, int, 0444); > > - > > MODULE_PARM_DESC(gartsize, "Size of PCIE/IGP gart to setup in megabytes > > (32, 64, etc., -1 = auto)"); > > module_param_named(gartsize, radeon_gart_size, int, 0600); > > > > diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c > > b/drivers/gpu/drm/radeon/radeon_ttm.c > > index 5d50c9edbe80..21bb3706c13c 100644 > > --- a/drivers/gpu/drm/radeon/radeon_ttm.c > > +++ b/drivers/gpu/drm/radeon/radeon_ttm.c > > @@ -86,20 +86,6 @@ static int radeon_init_mem_type(struct ttm_bo_device > > *bdev, uint32_t type, > > man->available_caching = TTM_PL_MASK_CACHING; > > man->default_caching = TTM_PL_FLAG_CACHED; > > man->flags = TTM_MEMTYPE_FLAG_MAPPABLE | TTM_MEMTYPE_FLAG_CMA; > > -#if IS_ENABLED(CONFIG_AGP) > > - if (rdev->flags & RADEON_IS_AGP) { > > - if (!rdev->ddev->agp) { > > - DRM_ERROR("AGP is not enabled for memory type > > %u\n", > > - (unsigned)type); > > - return -EINVAL; > > - } > > - if (!rdev->ddev->agp->cant_use_aperture) > > - man->flags = TTM_MEMTYPE_FLAG_MAPPABLE; > > - man->available_caching = TTM_PL_FLAG_UNCACHED | > > - TTM_PL_FLAG_WC; > > - man->default_caching = TTM_PL_FLAG_WC; > > - } > > -#endif > > break; > > case TTM_PL_VRAM: > > /* "On-card" video ram */ > > @@ -411,14 +397,6 @@ static int radeon_ttm_io_mem_reserve(struct > > ttm_bo_device *bdev, struct ttm_mem_ > > /* system memory */ > > return 0; > > case TTM_PL_TT: > > -#if IS_ENABLED(CONFIG_AGP) > > - if (rdev->flags & RADEON_IS_AGP) { > > - /* RADEON_IS_AGP is set only if AGP is active */ > > - mem->bus.offset = mem->start << PAGE_SHIFT; > > - mem->bus.base = rdev->mc.agp_base; > > - mem->bus.is_iomem = > > !rdev->ddev->agp->cant_use_aperture; > > - } > > -#endif > > break; > > case TTM_PL_VRAM: > > mem->bus.offset = mem->start << PAGE_SHIFT; > > @@ -631,12 +609,6 @@ static struct ttm_tt *radeon_ttm_tt_create(struct > > ttm_buffer_object *bo, > > struct radeon_ttm_tt *gtt; > > > > rdev = radeon_get_rdev(bo->bdev); > > -#if IS_ENABLED(CONFIG_AGP) > > - if (rdev->flags & RADEON_IS_AGP) { > > - return ttm_agp_tt_create(bo, rdev->ddev->agp->bridge, > > - page_flags); > > - } > > -#endif > > > > gtt = kzalloc(sizeof(struct radeon_ttm_tt), GFP_KERNEL); > > if (gtt == NULL) { > > @@ -683,11 +655,6 @@ static int radeon_ttm_tt_populate(struct ttm_tt *ttm, > > } > > > > rdev = radeon_get_rdev(ttm->bdev); > > -#if IS_ENABLED(CONFIG_AGP) > > - if (rdev->flags & RADEON_IS_AGP) { > > - return ttm_agp_tt_populate(ttm, ctx); > > - } > > -#endif > > > > #ifdef CONFIG_SWIOTLB > > if (rdev->need_swiotlb && swiotlb_nr_tbl()) { > > @@ -714,12 +681,6 @@ static void radeon_ttm_tt_unpopulate(struct ttm_tt > > *ttm) > > return; > > > > rdev = radeon_get_rdev(ttm->bdev); > > -#if IS_ENABLED(CONFIG_AGP) > > - if (rdev->flags & RADEON_IS_AGP) { > > - ttm_agp_tt_unpopulate(ttm); > > - return; > > - } > > -#endif > > > > #ifdef CONFIG_SWIOTLB > > if (rdev->need_swiotlb && swiotlb_nr_tbl()) { > > diff --git a/drivers/gpu/drm/radeon/rv515.c b/drivers/gpu/drm/radeon/rv515.c > > index 147e5cf8348d..8a2f16320869 100644 > > --- a/drivers/gpu/drm/radeon/rv515.c > > +++ b/drivers/gpu/drm/radeon/rv515.c > > @@ -622,7 +622,6 @@ void rv515_fini(struct radeon_device *rdev) > > radeon_ib_pool_fini(rdev); > > radeon_gem_fini(rdev); > > rv370_pcie_gart_fini(rdev); > > - radeon_agp_fini(rdev); > > radeon_irq_kms_fini(rdev); > > radeon_fence_driver_fini(rdev); > > radeon_bo_fini(rdev); > > @@ -667,13 +666,6 @@ int rv515_init(struct radeon_device *rdev) > > return -EINVAL; > > /* Initialize clocks */ > > radeon_get_clock_info(rdev->ddev); > > - /* initialize AGP */ > > - if (rdev->flags & RADEON_IS_AGP) { > > - r = radeon_agp_init(rdev); > > - if (r) { > > - radeon_agp_disable(rdev); > > - } > > - } > > /* initialize memory controller */ > > rv515_mc_init(rdev); > > rv515_debugfs(rdev); > > @@ -703,7 +695,6 @@ int rv515_init(struct radeon_device *rdev) > > radeon_ib_pool_fini(rdev); > > radeon_irq_kms_fini(rdev); > > rv370_pcie_gart_fini(rdev); > > - radeon_agp_fini(rdev); > > rdev->accel_working = false; > > } > > return 0; > > diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c > > index 21f653ae1e1b..20bf54266f24 100644 > > --- a/drivers/gpu/drm/radeon/rv770.c > > +++ b/drivers/gpu/drm/radeon/rv770.c > > @@ -1943,12 +1943,6 @@ int rv770_init(struct radeon_device *rdev) > > r = radeon_fence_driver_init(rdev); > > if (r) > > return r; > > - /* initialize AGP */ > > - if (rdev->flags & RADEON_IS_AGP) { > > - r = radeon_agp_init(rdev); > > - if (r) > > - radeon_agp_disable(rdev); > > - } > > r = rv770_mc_init(rdev); > > if (r) > > return r; > > @@ -2015,7 +2009,6 @@ void rv770_fini(struct radeon_device *rdev) > > r600_vram_scratch_fini(rdev); > > radeon_gem_fini(rdev); > > radeon_fence_driver_fini(rdev); > > - radeon_agp_fini(rdev); > > radeon_bo_fini(rdev); > > radeon_atombios_fini(rdev); > > kfree(rdev->bios); > > > > -- > Thomas Zimmermann > Graphics Driver Developer > SUSE Software Solutions Germany GmbH > Maxfeldstr. 5, 90409 Nürnberg, Germany > (HRB 36809, AG Nürnberg) > Geschäftsführer: Felix Imendörffer > > _______________________________________________ > amd-gfx mailing list > amd-...@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau