{
        drm_via_blitq_t *blitq = container_of(work, drm_via_blitq_t, wq);
        struct drm_device *dev = blitq->dev;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        unsigned long irqsave;
        drm_via_sg_info_t *cur_sg;
        int cur_released;
 
                wake_up(&blitq->busy_queue);
 
-               via_free_sg_info(dev->pdev, cur_sg);
+               via_free_sg_info(pdev, cur_sg);
                kfree(cur_sg);
 
                spin_lock_irqsave(&blitq->blit_lock, irqsave);
 {
        int i, j;
        drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        drm_via_blitq_t *blitq;
 
-       pci_set_master(dev->pdev);
+       pci_set_master(pdev);
 
        for (i = 0; i < VIA_NUM_BLIT_ENGINES; ++i) {
                blitq = dev_priv->blit_queues + i;
 static int
 via_build_sg_info(struct drm_device *dev, drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer)
 {
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        int draw = xfer->to_fb;
        int ret = 0;
 
 
        if (0 != (ret = via_lock_all_dma_pages(vsg, xfer))) {
                DRM_ERROR("Could not lock DMA pages.\n");
-               via_free_sg_info(dev->pdev, vsg);
+               via_free_sg_info(pdev, vsg);
                return ret;
        }
 
-       via_map_blit_for_device(dev->pdev, xfer, vsg, 0);
+       via_map_blit_for_device(pdev, xfer, vsg, 0);
        if (0 != (ret = via_alloc_desc_pages(vsg))) {
                DRM_ERROR("Could not allocate DMA descriptor pages.\n");
-               via_free_sg_info(dev->pdev, vsg);
+               via_free_sg_info(pdev, vsg);
                return ret;
        }
-       via_map_blit_for_device(dev->pdev, xfer, vsg, 1);
+       via_map_blit_for_device(pdev, xfer, vsg, 1);
 
        return 0;
 }