drm/nouveau: Remove references to struct drm_device.pdev
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 7 Jan 2021 08:07:47 +0000 (09:07 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Wed, 13 Jan 2021 08:04:04 +0000 (09:04 +0100)
Using struct drm_device.pdev is deprecated. Convert nouveau to struct
drm_device.dev. No functional changes.

v3:
* fix nv04_dfp_update_backlight() as well (Jeremy)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jeremy Cline <jcline@redhat.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210107080748.4768-8-tzimmermann@suse.de
drivers/gpu/drm/nouveau/dispnv04/arb.c
drivers/gpu/drm/nouveau/dispnv04/dfp.c
drivers/gpu/drm/nouveau/dispnv04/disp.h
drivers/gpu/drm/nouveau/dispnv04/hw.c
drivers/gpu/drm/nouveau/nouveau_abi16.c
drivers/gpu/drm/nouveau/nouveau_acpi.c
drivers/gpu/drm/nouveau/nouveau_bios.c
drivers/gpu/drm/nouveau/nouveau_connector.c
drivers/gpu/drm/nouveau/nouveau_drm.c
drivers/gpu/drm/nouveau/nouveau_fbcon.c
drivers/gpu/drm/nouveau/nouveau_vga.c

index 9d4a2d97507e03660b432a410497717a497c4a43..1d3542d6006b597828d7bfdb8fbd179804103ffe 100644 (file)
@@ -200,16 +200,17 @@ nv04_update_arb(struct drm_device *dev, int VClk, int bpp,
        int MClk = nouveau_hw_get_clock(dev, PLL_MEMORY);
        int NVClk = nouveau_hw_get_clock(dev, PLL_CORE);
        uint32_t cfg1 = nvif_rd32(device, NV04_PFB_CFG1);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
 
        sim_data.pclk_khz = VClk;
        sim_data.mclk_khz = MClk;
        sim_data.nvclk_khz = NVClk;
        sim_data.bpp = bpp;
        sim_data.two_heads = nv_two_heads(dev);
-       if ((dev->pdev->device & 0xffff) == 0x01a0 /*CHIPSET_NFORCE*/ ||
-           (dev->pdev->device & 0xffff) == 0x01f0 /*CHIPSET_NFORCE2*/) {
+       if ((pdev->device & 0xffff) == 0x01a0 /*CHIPSET_NFORCE*/ ||
+           (pdev->device & 0xffff) == 0x01f0 /*CHIPSET_NFORCE2*/) {
                uint32_t type;
-               int domain = pci_domain_nr(dev->pdev->bus);
+               int domain = pci_domain_nr(pdev->bus);
 
                pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 1),
                                      0x7c, &type);
@@ -251,11 +252,12 @@ void
 nouveau_calc_arb(struct drm_device *dev, int vclk, int bpp, int *burst, int *lwm)
 {
        struct nouveau_drm *drm = nouveau_drm(dev);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
 
        if (drm->client.device.info.family < NV_DEVICE_INFO_V0_KELVIN)
                nv04_update_arb(dev, vclk, bpp, burst, lwm);
-       else if ((dev->pdev->device & 0xfff0) == 0x0240 /*CHIPSET_C51*/ ||
-                (dev->pdev->device & 0xfff0) == 0x03d0 /*CHIPSET_C512*/) {
+       else if ((pdev->device & 0xfff0) == 0x0240 /*CHIPSET_C51*/ ||
+                (pdev->device & 0xfff0) == 0x03d0 /*CHIPSET_C512*/) {
                *burst = 128;
                *lwm = 0x0480;
        } else
index 42687ea2a4ca32fb3a30b37d5bd115c7218f12de..ce3d8c6ef000a4623dca525820f5b46f6401e8b2 100644 (file)
@@ -488,12 +488,13 @@ static void nv04_dfp_update_backlight(struct drm_encoder *encoder, int mode)
 #ifdef __powerpc__
        struct drm_device *dev = encoder->dev;
        struct nvif_object *device = &nouveau_drm(dev)->client.device.object;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
 
        /* BIOS scripts usually take care of the backlight, thanks
         * Apple for your consistency.
         */
-       if (dev->pdev->device == 0x0174 || dev->pdev->device == 0x0179 ||
-           dev->pdev->device == 0x0189 || dev->pdev->device == 0x0329) {
+       if (pdev->device == 0x0174 || pdev->device == 0x0179 ||
+           pdev->device == 0x0189 || pdev->device == 0x0329) {
                if (mode == DRM_MODE_DPMS_ON) {
                        nvif_mask(device, NV_PBUS_DEBUG_DUALHEAD_CTL, 1 << 31, 1 << 31);
                        nvif_mask(device, NV_PCRTC_GPIO_EXT, 3, 1);
index 5ace5e906949a02c5b4fc9653182a19f87212b0f..f0a24126641abb999945e450188ac3ba6e4d9e4d 100644 (file)
@@ -130,7 +130,7 @@ static inline bool
 nv_two_heads(struct drm_device *dev)
 {
        struct nouveau_drm *drm = nouveau_drm(dev);
-       const int impl = dev->pdev->device & 0x0ff0;
+       const int impl = to_pci_dev(dev->dev)->device & 0x0ff0;
 
        if (drm->client.device.info.family >= NV_DEVICE_INFO_V0_CELSIUS && impl != 0x0100 &&
            impl != 0x0150 && impl != 0x01a0 && impl != 0x0200)
@@ -142,14 +142,14 @@ nv_two_heads(struct drm_device *dev)
 static inline bool
 nv_gf4_disp_arch(struct drm_device *dev)
 {
-       return nv_two_heads(dev) && (dev->pdev->device & 0x0ff0) != 0x0110;
+       return nv_two_heads(dev) && (to_pci_dev(dev->dev)->device & 0x0ff0) != 0x0110;
 }
 
 static inline bool
 nv_two_reg_pll(struct drm_device *dev)
 {
        struct nouveau_drm *drm = nouveau_drm(dev);
-       const int impl = dev->pdev->device & 0x0ff0;
+       const int impl = to_pci_dev(dev->dev)->device & 0x0ff0;
 
        if (impl == 0x0310 || impl == 0x0340 || drm->client.device.info.family >= NV_DEVICE_INFO_V0_CURIE)
                return true;
@@ -160,9 +160,11 @@ static inline bool
 nv_match_device(struct drm_device *dev, unsigned device,
                unsigned sub_vendor, unsigned sub_device)
 {
-       return dev->pdev->device == device &&
-               dev->pdev->subsystem_vendor == sub_vendor &&
-               dev->pdev->subsystem_device == sub_device;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
+
+       return pdev->device == device &&
+               pdev->subsystem_vendor == sub_vendor &&
+               pdev->subsystem_device == sub_device;
 }
 
 #include <subdev/bios/init.h>
index b674d68ef28ab8bc1efb2538530a05773ed16359..f7d35657aa64c270d6fa6debc4492af36682803a 100644 (file)
@@ -214,14 +214,15 @@ nouveau_hw_pllvals_to_clk(struct nvkm_pll_vals *pv)
 int
 nouveau_hw_get_clock(struct drm_device *dev, enum nvbios_pll_type plltype)
 {
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct nvkm_pll_vals pllvals;
        int ret;
        int domain;
 
-       domain = pci_domain_nr(dev->pdev->bus);
+       domain = pci_domain_nr(pdev->bus);
 
        if (plltype == PLL_MEMORY &&
-           (dev->pdev->device & 0x0ff0) == CHIPSET_NFORCE) {
+           (pdev->device & 0x0ff0) == CHIPSET_NFORCE) {
                uint32_t mpllP;
                pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 3),
                                      0x6c, &mpllP);
@@ -232,7 +233,7 @@ nouveau_hw_get_clock(struct drm_device *dev, enum nvbios_pll_type plltype)
                return 400000 / mpllP;
        } else
        if (plltype == PLL_MEMORY &&
-           (dev->pdev->device & 0xff0) == CHIPSET_NFORCE2) {
+           (pdev->device & 0xff0) == CHIPSET_NFORCE2) {
                uint32_t clock;
 
                pci_read_config_dword(pci_get_domain_bus_and_slot(domain, 0, 5),
@@ -309,6 +310,7 @@ void
 nouveau_hw_save_vga_fonts(struct drm_device *dev, bool save)
 {
        struct nouveau_drm *drm = nouveau_drm(dev);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        uint8_t misc, gr4, gr5, gr6, seq2, seq4;
        bool graphicsmode;
        unsigned plane;
@@ -327,7 +329,7 @@ nouveau_hw_save_vga_fonts(struct drm_device *dev, bool save)
        NV_INFO(drm, "%sing VGA fonts\n", save ? "Sav" : "Restor");
 
        /* map first 64KiB of VRAM, holds VGA fonts etc */
-       iovram = ioremap(pci_resource_start(dev->pdev, 1), 65536);
+       iovram = ioremap(pci_resource_start(pdev, 1), 65536);
        if (!iovram) {
                NV_ERROR(drm, "Failed to map VRAM, "
                                        "cannot save/restore VGA fonts.\n");
index 9a5be6f3242496013779cd78c9f509a36e95bb8b..f08b31d84d4d3a25673afa5ec84f39b9dbb7face 100644 (file)
@@ -181,6 +181,7 @@ nouveau_abi16_ioctl_getparam(ABI16_IOCTL_ARGS)
        struct nvif_device *device = &drm->client.device;
        struct nvkm_gr *gr = nvxx_gr(device);
        struct drm_nouveau_getparam *getparam = data;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
 
        switch (getparam->param) {
        case NOUVEAU_GETPARAM_CHIPSET_ID:
@@ -188,13 +189,13 @@ nouveau_abi16_ioctl_getparam(ABI16_IOCTL_ARGS)
                break;
        case NOUVEAU_GETPARAM_PCI_VENDOR:
                if (device->info.platform != NV_DEVICE_INFO_V0_SOC)
-                       getparam->value = dev->pdev->vendor;
+                       getparam->value = pdev->vendor;
                else
                        getparam->value = 0;
                break;
        case NOUVEAU_GETPARAM_PCI_DEVICE:
                if (device->info.platform != NV_DEVICE_INFO_V0_SOC)
-                       getparam->value = dev->pdev->device;
+                       getparam->value = pdev->device;
                else
                        getparam->value = 0;
                break;
@@ -205,7 +206,7 @@ nouveau_abi16_ioctl_getparam(ABI16_IOCTL_ARGS)
                case NV_DEVICE_INFO_V0_PCIE: getparam->value = 2; break;
                case NV_DEVICE_INFO_V0_SOC : getparam->value = 3; break;
                case NV_DEVICE_INFO_V0_IGP :
-                       if (!pci_is_pcie(dev->pdev))
+                       if (!pci_is_pcie(pdev))
                                getparam->value = 1;
                        else
                                getparam->value = 2;
index 69a84d0197d0af2ce4544b564f9c9605e9da1e8c..7c15f64484281ede2a8ca79ebcc5267a4271b9fb 100644 (file)
@@ -377,7 +377,7 @@ nouveau_acpi_edid(struct drm_device *dev, struct drm_connector *connector)
                return NULL;
        }
 
-       handle = ACPI_HANDLE(&dev->pdev->dev);
+       handle = ACPI_HANDLE(dev->dev);
        if (!handle)
                return NULL;
 
index d204ea8a5618edf2d42a63cad34696d7667dfdc7..7cc683b8dc7a672b269f61e1b473539a196ba397 100644 (file)
@@ -110,6 +110,9 @@ static int call_lvds_manufacturer_script(struct drm_device *dev, struct dcb_outp
        struct nvbios *bios = &drm->vbios;
        uint8_t sub = bios->data[bios->fp.xlated_entry + script] + (bios->fp.link_c_increment && dcbent->or & DCB_OUTPUT_C ? 1 : 0);
        uint16_t scriptofs = ROM16(bios->data[bios->init_script_tbls_ptr + sub * 2]);
+#ifdef __powerpc__
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
+#endif
 
        if (!bios->fp.xlated_entry || !sub || !scriptofs)
                return -EINVAL;
@@ -123,8 +126,8 @@ static int call_lvds_manufacturer_script(struct drm_device *dev, struct dcb_outp
 #ifdef __powerpc__
        /* Powerbook specific quirks */
        if (script == LVDS_RESET &&
-           (dev->pdev->device == 0x0179 || dev->pdev->device == 0x0189 ||
-            dev->pdev->device == 0x0329))
+           (pdev->device == 0x0179 || pdev->device == 0x0189 ||
+            pdev->device == 0x0329))
                nv_write_tmds(dev, dcbent->or, 0, 0x02, 0x72);
 #endif
 
@@ -2080,11 +2083,13 @@ nouveau_bios_init(struct drm_device *dev)
 {
        struct nouveau_drm *drm = nouveau_drm(dev);
        struct nvbios *bios = &drm->vbios;
+       struct pci_dev *pdev;
        int ret;
 
        /* only relevant for PCI devices */
-       if (!dev->pdev)
+       if (!dev_is_pci(dev->dev))
                return 0;
+       pdev = to_pci_dev(dev->dev);
 
        if (!NVInitVBIOS(dev))
                return -ENODEV;
index 8b4b3688c7ae3a608f0e76d5aec9d54571d94da0..14c29e68db8f96a1d72f789f4b6d174cc5b19176 100644 (file)
@@ -411,6 +411,7 @@ static struct nouveau_encoder *
 nouveau_connector_ddc_detect(struct drm_connector *connector)
 {
        struct drm_device *dev = connector->dev;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct nouveau_encoder *nv_encoder = NULL, *found = NULL;
        struct drm_encoder *encoder;
        int ret;
@@ -438,11 +439,11 @@ nouveau_connector_ddc_detect(struct drm_connector *connector)
                                break;
 
                        if (switcheroo_ddc)
-                               vga_switcheroo_lock_ddc(dev->pdev);
+                               vga_switcheroo_lock_ddc(pdev);
                        if (nvkm_probe_i2c(nv_encoder->i2c, 0x50))
                                found = nv_encoder;
                        if (switcheroo_ddc)
-                               vga_switcheroo_unlock_ddc(dev->pdev);
+                               vga_switcheroo_unlock_ddc(pdev);
 
                        break;
                }
@@ -490,6 +491,7 @@ nouveau_connector_set_encoder(struct drm_connector *connector,
        struct nouveau_connector *nv_connector = nouveau_connector(connector);
        struct nouveau_drm *drm = nouveau_drm(connector->dev);
        struct drm_device *dev = connector->dev;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
 
        if (nv_connector->detected_encoder == nv_encoder)
                return;
@@ -511,8 +513,8 @@ nouveau_connector_set_encoder(struct drm_connector *connector,
                connector->doublescan_allowed = true;
                if (drm->client.device.info.family == NV_DEVICE_INFO_V0_KELVIN ||
                    (drm->client.device.info.family == NV_DEVICE_INFO_V0_CELSIUS &&
-                    (dev->pdev->device & 0x0ff0) != 0x0100 &&
-                    (dev->pdev->device & 0x0ff0) != 0x0150))
+                    (pdev->device & 0x0ff0) != 0x0100 &&
+                    (pdev->device & 0x0ff0) != 0x0150))
                        /* HW is broken */
                        connector->interlace_allowed = false;
                else
index d141a5f004afc9f729d2defef3739641b98f60b9..1b2169e9c295d5cb4bdb3022a8b93de25cf98032 100644 (file)
@@ -115,8 +115,8 @@ nouveau_platform_name(struct platform_device *platformdev)
 static u64
 nouveau_name(struct drm_device *dev)
 {
-       if (dev->pdev)
-               return nouveau_pci_name(dev->pdev);
+       if (dev_is_pci(dev->dev))
+               return nouveau_pci_name(to_pci_dev(dev->dev));
        else
                return nouveau_platform_name(to_platform_device(dev->dev));
 }
@@ -760,7 +760,6 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
        if (ret)
                goto fail_drm;
 
-       drm_dev->pdev = pdev;
        pci_set_drvdata(pdev, drm_dev);
 
        ret = nouveau_drm_device_init(drm_dev);
index 24ec5339efb46880bda75eae5eb41631b0a6b02b..4fc0fa696461f417f199ccae33f0e85a5bceab05 100644 (file)
@@ -396,7 +396,9 @@ nouveau_fbcon_create(struct drm_fb_helper *helper,
        NV_INFO(drm, "allocated %dx%d fb: 0x%llx, bo %p\n",
                fb->width, fb->height, nvbo->offset, nvbo);
 
-       vga_switcheroo_client_fb_set(dev->pdev, info);
+       if (dev_is_pci(dev->dev))
+               vga_switcheroo_client_fb_set(to_pci_dev(dev->dev), info);
+
        return 0;
 
 out_unlock:
@@ -548,7 +550,7 @@ nouveau_fbcon_init(struct drm_device *dev)
        int ret;
 
        if (!dev->mode_config.num_crtc ||
-           (dev->pdev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
+           (to_pci_dev(dev->dev)->class >> 8) != PCI_CLASS_DISPLAY_VGA)
                return 0;
 
        fbcon = kzalloc(sizeof(struct nouveau_fbdev), GFP_KERNEL);
index c85dd8afa3c3df7c65c3141488e3fba7deec468d..7c4b374b3eca32fbbf296184bcee078f32b00594 100644 (file)
@@ -87,18 +87,20 @@ nouveau_vga_init(struct nouveau_drm *drm)
 {
        struct drm_device *dev = drm->dev;
        bool runtime = nouveau_pmops_runtime();
+       struct pci_dev *pdev;
 
        /* only relevant for PCI devices */
-       if (!dev->pdev)
+       if (!dev_is_pci(dev->dev))
                return;
+       pdev = to_pci_dev(dev->dev);
 
-       vga_client_register(dev->pdev, dev, NULL, nouveau_vga_set_decode);
+       vga_client_register(pdev, dev, NULL, nouveau_vga_set_decode);
 
        /* don't register Thunderbolt eGPU with vga_switcheroo */
-       if (pci_is_thunderbolt_attached(dev->pdev))
+       if (pci_is_thunderbolt_attached(pdev))
                return;
 
-       vga_switcheroo_register_client(dev->pdev, &nouveau_switcheroo_ops, runtime);
+       vga_switcheroo_register_client(pdev, &nouveau_switcheroo_ops, runtime);
 
        if (runtime && nouveau_is_v1_dsm() && !nouveau_is_optimus())
                vga_switcheroo_init_domain_pm_ops(drm->dev->dev, &drm->vga_pm_domain);
@@ -109,17 +111,19 @@ nouveau_vga_fini(struct nouveau_drm *drm)
 {
        struct drm_device *dev = drm->dev;
        bool runtime = nouveau_pmops_runtime();
+       struct pci_dev *pdev;
 
        /* only relevant for PCI devices */
-       if (!dev->pdev)
+       if (!dev_is_pci(dev->dev))
                return;
+       pdev = to_pci_dev(dev->dev);
 
-       vga_client_register(dev->pdev, NULL, NULL, NULL);
+       vga_client_register(pdev, NULL, NULL, NULL);
 
-       if (pci_is_thunderbolt_attached(dev->pdev))
+       if (pci_is_thunderbolt_attached(pdev))
                return;
 
-       vga_switcheroo_unregister_client(dev->pdev);
+       vga_switcheroo_unregister_client(pdev);
        if (runtime && nouveau_is_v1_dsm() && !nouveau_is_optimus())
                vga_switcheroo_fini_domain_pm_ops(drm->dev->dev);
 }