[PATCH 15/21] drm/nouveau/nvkm: move pci probe() enable/disable handling from drm
Ben Skeggs
bskeggs at nvidia.com
Thu Jun 13 17:00:07 UTC 2024
Signed-off-by: Ben Skeggs <bskeggs at nvidia.com>
---
.../gpu/drm/nouveau/include/nvkm/core/pci.h | 1 -
drivers/gpu/drm/nouveau/nouveau_drm.c | 11 +-------
drivers/gpu/drm/nouveau/nvkm/device/pci.c | 28 ++-----------------
3 files changed, 3 insertions(+), 37 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/pci.h b/drivers/gpu/drm/nouveau/include/nvkm/core/pci.h
index b9e10dad6ee9..0797225ab038 100644
--- a/drivers/gpu/drm/nouveau/include/nvkm/core/pci.h
+++ b/drivers/gpu/drm/nouveau/include/nvkm/core/pci.h
@@ -6,7 +6,6 @@
struct nvkm_device_pci {
struct nvkm_device device;
struct pci_dev *pdev;
- bool suspend;
struct dev_pm_domain vga_pm_domain;
};
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index be31e8ea4fee..4bcfc2291c4d 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -804,8 +804,6 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
device = pci_get_drvdata(pdev);
- pci_set_master(pdev);
-
if (nouveau_atomic)
driver_pci.driver_features |= DRIVER_ATOMIC;
@@ -815,13 +813,9 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
goto fail_nvkm;
}
- ret = pci_enable_device(pdev);
- if (ret)
- goto fail_drm;
-
ret = nouveau_drm_device_init(drm);
if (ret)
- goto fail_pci;
+ goto fail_drm;
if (drm->device.impl->ram_size <= 32 * 1024 * 1024)
drm_fbdev_ttm_setup(drm->dev, 8);
@@ -831,8 +825,6 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
quirk_broken_nv_runpm(pdev);
return 0;
-fail_pci:
- pci_disable_device(pdev);
fail_drm:
nouveau_drm_device_del(drm);
fail_nvkm:
@@ -858,7 +850,6 @@ nouveau_drm_remove(struct pci_dev *pdev)
if (drm->old_pm_cap)
pdev->pm_cap = drm->old_pm_cap;
nouveau_drm_device_remove(drm);
- pci_disable_device(pdev);
nvkm_device_pci_driver.remove(pdev);
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/device/pci.c b/drivers/gpu/drm/nouveau/nvkm/device/pci.c
index 7d0ddc968246..d9b8e3bc4169 100644
--- a/drivers/gpu/drm/nouveau/nvkm/device/pci.c
+++ b/drivers/gpu/drm/nouveau/nvkm/device/pci.c
@@ -1585,30 +1585,6 @@ nvkm_device_pci_irq(struct nvkm_device *device)
return nvkm_device_pci(device)->pdev->irq;
}
-static void
-nvkm_device_pci_fini(struct nvkm_device *device, bool suspend)
-{
- struct nvkm_device_pci *pdev = nvkm_device_pci(device);
- if (suspend) {
- pci_disable_device(pdev->pdev);
- pdev->suspend = true;
- }
-}
-
-static int
-nvkm_device_pci_preinit(struct nvkm_device *device)
-{
- struct nvkm_device_pci *pdev = nvkm_device_pci(device);
- if (pdev->suspend) {
- int ret = pci_enable_device(pdev->pdev);
- if (ret)
- return ret;
- pci_set_master(pdev->pdev);
- pdev->suspend = false;
- }
- return 0;
-}
-
static int
nvkm_device_pci_oneinit(struct nvkm_device *device)
{
@@ -1630,9 +1606,7 @@ static const struct nvkm_device_func
nvkm_device_pci_func = {
.pci = nvkm_device_pci,
.dtor = nvkm_device_pci_dtor,
- .preinit = nvkm_device_pci_preinit,
.oneinit = nvkm_device_pci_oneinit,
- .fini = nvkm_device_pci_fini,
.irq = nvkm_device_pci_irq,
.resource_addr = nvkm_device_pci_resource_addr,
.resource_size = nvkm_device_pci_resource_size,
@@ -1700,6 +1674,8 @@ nvkm_device_pci_probe(struct pci_dev *pci_dev, const struct pci_device_id *id)
return ret;
}
+ pci_set_master(pci_dev);
+
ret = nvkm_device_ctor(&nvkm_device_pci_func, quirk, &pci_dev->dev,
pci_is_pcie(pci_dev) ? NVKM_DEVICE_PCIE :
pci_find_capability(pci_dev, PCI_CAP_ID_AGP) ?
--
2.44.0
More information about the dri-devel
mailing list