/* First, try to allocate a huge chunk of DMA memory */
        size = PAGE_ALIGN(size);
-       man->map = dma_alloc_coherent(&dev_priv->dev->pdev->dev, size,
+       man->map = dma_alloc_coherent(dev_priv->dev->dev, size,
                                      &man->handle, GFP_KERNEL);
        if (man->map) {
                man->using_mob = false;
        man->num_contexts = (dev_priv->capabilities & SVGA_CAP_HP_CMD_QUEUE) ?
                2 : 1;
        man->headers = dma_pool_create("vmwgfx cmdbuf",
-                                      &dev_priv->dev->pdev->dev,
+                                      dev_priv->dev->dev,
                                       sizeof(SVGACBHeader),
                                       64, PAGE_SIZE);
        if (!man->headers) {
        }
 
        man->dheaders = dma_pool_create("vmwgfx inline cmdbuf",
-                                       &dev_priv->dev->pdev->dev,
+                                       dev_priv->dev->dev,
                                        sizeof(struct vmw_cmdbuf_dheader),
                                        64, PAGE_SIZE);
        if (!man->dheaders) {
                ttm_bo_put(man->cmd_space);
                man->cmd_space = NULL;
        } else {
-               dma_free_coherent(&man->dev_priv->dev->pdev->dev,
+               dma_free_coherent(man->dev_priv->dev->dev,
                                  man->size, man->map, man->handle);
        }
 }
 
        enum vmw_res_type i;
        bool refuse_dma = false;
        char host_log[100] = {0};
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
 
        dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL);
        if (unlikely(!dev_priv)) {
                return -ENOMEM;
        }
 
-       pci_set_master(dev->pdev);
+       pci_set_master(pdev);
 
        dev_priv->dev = dev;
        dev_priv->vmw_chipset = chipset;
 
        dev_priv->used_memory_size = 0;
 
-       dev_priv->io_start = pci_resource_start(dev->pdev, 0);
-       dev_priv->vram_start = pci_resource_start(dev->pdev, 1);
-       dev_priv->mmio_start = pci_resource_start(dev->pdev, 2);
+       dev_priv->io_start = pci_resource_start(pdev, 0);
+       dev_priv->vram_start = pci_resource_start(pdev, 1);
+       dev_priv->mmio_start = pci_resource_start(pdev, 2);
 
        dev_priv->assume_16bpp = !!vmw_assume_16bpp;
 
 
        dev->dev_private = dev_priv;
 
-       ret = pci_request_regions(dev->pdev, "vmwgfx probe");
+       ret = pci_request_regions(pdev, "vmwgfx probe");
        dev_priv->stealth = (ret != 0);
        if (dev_priv->stealth) {
                /**
 
                DRM_INFO("It appears like vesafb is loaded. "
                         "Ignore above error if any.\n");
-               ret = pci_request_region(dev->pdev, 2, "vmwgfx stealth probe");
+               ret = pci_request_region(pdev, 2, "vmwgfx stealth probe");
                if (unlikely(ret != 0)) {
                        DRM_ERROR("Failed reserving the SVGA MMIO resource.\n");
                        goto out_no_device;
        }
 
        if (dev_priv->capabilities & SVGA_CAP_IRQMASK) {
-               ret = vmw_irq_install(dev, dev->pdev->irq);
+               ret = vmw_irq_install(dev, pdev->irq);
                if (ret != 0) {
                        DRM_ERROR("Failed installing irq: %d\n", ret);
                        goto out_no_irq;
                vmw_irq_uninstall(dev_priv->dev);
 out_no_irq:
        if (dev_priv->stealth)
-               pci_release_region(dev->pdev, 2);
+               pci_release_region(pdev, 2);
        else
-               pci_release_regions(dev->pdev);
+               pci_release_regions(pdev);
 out_no_device:
        ttm_object_device_release(&dev_priv->tdev);
 out_err4:
 static void vmw_driver_unload(struct drm_device *dev)
 {
        struct vmw_private *dev_priv = vmw_priv(dev);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        enum vmw_res_type i;
 
        unregister_pm_notifier(&dev_priv->pm_nb);
        if (dev_priv->capabilities & SVGA_CAP_IRQMASK)
                vmw_irq_uninstall(dev_priv->dev);
        if (dev_priv->stealth)
-               pci_release_region(dev->pdev, 2);
+               pci_release_region(pdev, 2);
        else
-               pci_release_regions(dev->pdev);
+               pci_release_regions(pdev);
 
        ttm_object_device_release(&dev_priv->tdev);
        memunmap(dev_priv->mmio_virt);
 
        vmw_fence_fifo_down(dev_priv->fman);
        __vmw_svga_disable(dev_priv);
-       
+
        vmw_release_device_late(dev_priv);
        return 0;
 }
                goto err_pci_disable_device;
        }
 
-       dev->pdev = pdev;
        pci_set_drvdata(pdev, dev);
 
        ret = vmw_driver_load(dev, ent->driver_data);