Merge drm/drm-next into drm-misc-next
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thu, 7 Jan 2021 13:11:28 +0000 (14:11 +0100)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thu, 7 Jan 2021 13:11:28 +0000 (14:11 +0100)
Staying in sync to drm-next, and to be able to pull ttm fixes.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
66 files changed:
drivers/gpu/drm/ast/ast_drv.c
drivers/gpu/drm/ast/ast_main.c
drivers/gpu/drm/ast/ast_mm.c
drivers/gpu/drm/ast/ast_mode.c
drivers/gpu/drm/ast/ast_post.c
drivers/gpu/drm/bochs/bochs_drv.c
drivers/gpu/drm/bochs/bochs_hw.c
drivers/gpu/drm/gma500/cdv_device.c
drivers/gpu/drm/gma500/cdv_intel_crt.c
drivers/gpu/drm/gma500/cdv_intel_lvds.c
drivers/gpu/drm/gma500/framebuffer.c
drivers/gpu/drm/gma500/gma_device.c
drivers/gpu/drm/gma500/gma_display.c
drivers/gpu/drm/gma500/gtt.c
drivers/gpu/drm/gma500/intel_bios.c
drivers/gpu/drm/gma500/intel_gmbus.c
drivers/gpu/drm/gma500/intel_i2c.c
drivers/gpu/drm/gma500/mdfld_device.c
drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
drivers/gpu/drm/gma500/mid_bios.c
drivers/gpu/drm/gma500/oaktrail_device.c
drivers/gpu/drm/gma500/oaktrail_lvds.c
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
drivers/gpu/drm/gma500/opregion.c
drivers/gpu/drm/gma500/power.c
drivers/gpu/drm/gma500/psb_drv.c
drivers/gpu/drm/gma500/psb_drv.h
drivers/gpu/drm/gma500/psb_intel_lvds.c
drivers/gpu/drm/gma500/psb_intel_sdvo.c
drivers/gpu/drm/gma500/tc35876x-dsi-lvds.c
drivers/gpu/drm/mgag200/mgag200_drv.c
drivers/gpu/drm/mgag200/mgag200_i2c.c
drivers/gpu/drm/mgag200/mgag200_mm.c
drivers/gpu/drm/qxl/qxl_drv.c
drivers/gpu/drm/qxl/qxl_ioctl.c
drivers/gpu/drm/qxl/qxl_irq.c
drivers/gpu/drm/qxl/qxl_kms.c
drivers/gpu/drm/radeon/atombios_encoders.c
drivers/gpu/drm/radeon/r100.c
drivers/gpu/drm/radeon/radeon.h
drivers/gpu/drm/radeon/radeon_atombios.c
drivers/gpu/drm/radeon/radeon_bios.c
drivers/gpu/drm/radeon/radeon_combios.c
drivers/gpu/drm/radeon/radeon_cs.c
drivers/gpu/drm/radeon/radeon_device.c
drivers/gpu/drm/radeon/radeon_display.c
drivers/gpu/drm/radeon/radeon_drv.c
drivers/gpu/drm/radeon/radeon_fb.c
drivers/gpu/drm/radeon/radeon_gem.c
drivers/gpu/drm/radeon/radeon_i2c.c
drivers/gpu/drm/radeon/radeon_irq_kms.c
drivers/gpu/drm/radeon/radeon_kms.c
drivers/gpu/drm/radeon/radeon_legacy_encoders.c
drivers/gpu/drm/radeon/rs780_dpm.c
drivers/gpu/drm/tiny/cirrus.c
drivers/gpu/drm/ttm/ttm_bo.c
drivers/gpu/drm/v3d/v3d_drv.c
drivers/gpu/drm/v3d/v3d_irq.c
drivers/gpu/drm/vboxvideo/vbox_drv.c
drivers/gpu/drm/vboxvideo/vbox_irq.c
drivers/gpu/drm/vboxvideo/vbox_main.c
drivers/gpu/drm/vboxvideo/vbox_ttm.c
drivers/gpu/drm/virtio/virtgpu_drv.c
drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
drivers/gpu/drm/vmwgfx/vmwgfx_fb.c

index 667b450..ea8164e 100644 (file)
@@ -147,7 +147,7 @@ static int ast_drm_freeze(struct drm_device *dev)
        error = drm_mode_config_helper_suspend(dev);
        if (error)
                return error;
-       pci_save_state(dev->pdev);
+       pci_save_state(to_pci_dev(dev->dev));
        return 0;
 }
 
@@ -162,7 +162,7 @@ static int ast_drm_resume(struct drm_device *dev)
 {
        int ret;
 
-       if (pci_enable_device(dev->pdev))
+       if (pci_enable_device(to_pci_dev(dev->dev)))
                return -EIO;
 
        ret = ast_drm_thaw(dev);
index 1b13199..0ac3c20 100644 (file)
@@ -67,8 +67,9 @@ uint8_t ast_get_index_reg_mask(struct ast_private *ast,
 
 static void ast_detect_config_mode(struct drm_device *dev, u32 *scu_rev)
 {
-       struct device_node *np = dev->pdev->dev.of_node;
+       struct device_node *np = dev->dev->of_node;
        struct ast_private *ast = to_ast_private(dev);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        uint32_t data, jregd0, jregd1;
 
        /* Defaults */
@@ -85,7 +86,7 @@ static void ast_detect_config_mode(struct drm_device *dev, u32 *scu_rev)
        }
 
        /* Not all families have a P2A bridge */
-       if (dev->pdev->device != PCI_CHIP_AST2000)
+       if (pdev->device != PCI_CHIP_AST2000)
                return;
 
        /*
@@ -119,6 +120,7 @@ static void ast_detect_config_mode(struct drm_device *dev, u32 *scu_rev)
 static int ast_detect_chip(struct drm_device *dev, bool *need_post)
 {
        struct ast_private *ast = to_ast_private(dev);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        uint32_t jreg, scu_rev;
 
        /*
@@ -143,19 +145,19 @@ static int ast_detect_chip(struct drm_device *dev, bool *need_post)
        ast_detect_config_mode(dev, &scu_rev);
 
        /* Identify chipset */
-       if (dev->pdev->revision >= 0x50) {
+       if (pdev->revision >= 0x50) {
                ast->chip = AST2600;
                drm_info(dev, "AST 2600 detected\n");
-       } else if (dev->pdev->revision >= 0x40) {
+       } else if (pdev->revision >= 0x40) {
                ast->chip = AST2500;
                drm_info(dev, "AST 2500 detected\n");
-       } else if (dev->pdev->revision >= 0x30) {
+       } else if (pdev->revision >= 0x30) {
                ast->chip = AST2400;
                drm_info(dev, "AST 2400 detected\n");
-       } else if (dev->pdev->revision >= 0x20) {
+       } else if (pdev->revision >= 0x20) {
                ast->chip = AST2300;
                drm_info(dev, "AST 2300 detected\n");
-       } else if (dev->pdev->revision >= 0x10) {
+       } else if (pdev->revision >= 0x10) {
                switch (scu_rev & 0x0300) {
                case 0x0200:
                        ast->chip = AST1100;
@@ -265,7 +267,7 @@ static int ast_detect_chip(struct drm_device *dev, bool *need_post)
 
 static int ast_get_dram_info(struct drm_device *dev)
 {
-       struct device_node *np = dev->pdev->dev.of_node;
+       struct device_node *np = dev->dev->of_node;
        struct ast_private *ast = to_ast_private(dev);
        uint32_t mcr_cfg, mcr_scu_mpll, mcr_scu_strap;
        uint32_t denum, num, div, ref_pll, dsel;
@@ -409,10 +411,9 @@ struct ast_private *ast_device_create(const struct drm_driver *drv,
                return ast;
        dev = &ast->base;
 
-       dev->pdev = pdev;
        pci_set_drvdata(pdev, dev);
 
-       ast->regs = pci_iomap(dev->pdev, 1, 0);
+       ast->regs = pci_iomap(pdev, 1, 0);
        if (!ast->regs)
                return ERR_PTR(-EIO);
 
@@ -421,14 +422,14 @@ struct ast_private *ast_device_create(const struct drm_driver *drv,
         * assume the chip has MMIO enabled by default (rev 0x20
         * and higher).
         */
-       if (!(pci_resource_flags(dev->pdev, 2) & IORESOURCE_IO)) {
+       if (!(pci_resource_flags(pdev, 2) & IORESOURCE_IO)) {
                drm_info(dev, "platform has no IO space, trying MMIO\n");
                ast->ioregs = ast->regs + AST_IO_MM_OFFSET;
        }
 
        /* "map" IO regs if the above hasn't done so already */
        if (!ast->ioregs) {
-               ast->ioregs = pci_iomap(dev->pdev, 2, 0);
+               ast->ioregs = pci_iomap(pdev, 2, 0);
                if (!ast->ioregs)
                        return ERR_PTR(-EIO);
        }
index 8392ebd..7592f1b 100644 (file)
@@ -77,31 +77,32 @@ static u32 ast_get_vram_size(struct ast_private *ast)
 static void ast_mm_release(struct drm_device *dev, void *ptr)
 {
        struct ast_private *ast = to_ast_private(dev);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
 
        arch_phys_wc_del(ast->fb_mtrr);
-       arch_io_free_memtype_wc(pci_resource_start(dev->pdev, 0),
-                               pci_resource_len(dev->pdev, 0));
+       arch_io_free_memtype_wc(pci_resource_start(pdev, 0),
+                               pci_resource_len(pdev, 0));
 }
 
 int ast_mm_init(struct ast_private *ast)
 {
        struct drm_device *dev = &ast->base;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        u32 vram_size;
        int ret;
 
        vram_size = ast_get_vram_size(ast);
 
-       ret = drmm_vram_helper_init(dev, pci_resource_start(dev->pdev, 0),
-                                   vram_size);
+       ret = drmm_vram_helper_init(dev, pci_resource_start(pdev, 0), vram_size);
        if (ret) {
                drm_err(dev, "Error initializing VRAM MM; %d\n", ret);
                return ret;
        }
 
-       arch_io_reserve_memtype_wc(pci_resource_start(dev->pdev, 0),
-                                  pci_resource_len(dev->pdev, 0));
-       ast->fb_mtrr = arch_phys_wc_add(pci_resource_start(dev->pdev, 0),
-                                       pci_resource_len(dev->pdev, 0));
+       arch_io_reserve_memtype_wc(pci_resource_start(pdev, 0),
+                                  pci_resource_len(pdev, 0));
+       ast->fb_mtrr = arch_phys_wc_add(pci_resource_start(pdev, 0),
+                                       pci_resource_len(pdev, 0));
 
        return drmm_add_action_or_reset(dev, ast_mm_release, NULL);
 }
index 5b0ec78..988b270 100644 (file)
@@ -1106,6 +1106,7 @@ static const struct drm_mode_config_funcs ast_mode_config_funcs = {
 int ast_mode_config_init(struct ast_private *ast)
 {
        struct drm_device *dev = &ast->base;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        int ret;
 
        ret = ast_cursor_init(ast);
@@ -1121,7 +1122,7 @@ int ast_mode_config_init(struct ast_private *ast)
        dev->mode_config.min_height = 0;
        dev->mode_config.preferred_depth = 24;
        dev->mode_config.prefer_shadow = 1;
-       dev->mode_config.fb_base = pci_resource_start(dev->pdev, 0);
+       dev->mode_config.fb_base = pci_resource_start(pdev, 0);
 
        if (ast->chip == AST2100 ||
            ast->chip == AST2200 ||
@@ -1258,7 +1259,7 @@ static struct ast_i2c_chan *ast_i2c_create(struct drm_device *dev)
 
        i2c->adapter.owner = THIS_MODULE;
        i2c->adapter.class = I2C_CLASS_DDC;
-       i2c->adapter.dev.parent = &dev->pdev->dev;
+       i2c->adapter.dev.parent = dev->dev;
        i2c->dev = dev;
        i2c_set_adapdata(&i2c->adapter, i2c);
        snprintf(i2c->adapter.name, sizeof(i2c->adapter.name),
index 8902c2f..0607658 100644 (file)
@@ -71,6 +71,7 @@ static void
 ast_set_def_ext_reg(struct drm_device *dev)
 {
        struct ast_private *ast = to_ast_private(dev);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        u8 i, index, reg;
        const u8 *ext_reg_info;
 
@@ -80,7 +81,7 @@ ast_set_def_ext_reg(struct drm_device *dev)
 
        if (ast->chip == AST2300 || ast->chip == AST2400 ||
            ast->chip == AST2500) {
-               if (dev->pdev->revision >= 0x20)
+               if (pdev->revision >= 0x20)
                        ext_reg_info = extreginfo_ast2300;
                else
                        ext_reg_info = extreginfo_ast2300a0;
@@ -366,11 +367,12 @@ static void ast_init_dram_reg(struct drm_device *dev)
 void ast_post_gpu(struct drm_device *dev)
 {
        struct ast_private *ast = to_ast_private(dev);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        u32 reg;
 
-       pci_read_config_dword(dev->pdev, 0x04, &reg);
+       pci_read_config_dword(pdev, 0x04, &reg);
        reg |= 0x3;
-       pci_write_config_dword(dev->pdev, 0x04, reg);
+       pci_write_config_dword(pdev, 0x04, reg);
 
        ast_enable_vga(dev);
        ast_open_key(ast);
index fd45422..b469624 100644 (file)
@@ -121,7 +121,6 @@ static int bochs_pci_probe(struct pci_dev *pdev,
        if (ret)
                goto err_free_dev;
 
-       dev->pdev = pdev;
        pci_set_drvdata(pdev, dev);
 
        ret = bochs_load(dev);
index dce4672..2d7380a 100644 (file)
@@ -110,7 +110,7 @@ int bochs_hw_load_edid(struct bochs_device *bochs)
 int bochs_hw_init(struct drm_device *dev)
 {
        struct bochs_device *bochs = dev->dev_private;
-       struct pci_dev *pdev = dev->pdev;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        unsigned long addr, size, mem, ioaddr, iosize;
        u16 id;
 
@@ -201,7 +201,7 @@ void bochs_hw_fini(struct drm_device *dev)
                release_region(VBE_DISPI_IOPORT_INDEX, 2);
        if (bochs->fb_map)
                iounmap(bochs->fb_map);
-       pci_release_regions(dev->pdev);
+       pci_release_regions(to_pci_dev(dev->dev));
        kfree(bochs->edid);
 }
 
index e75293e..19e055d 100644 (file)
@@ -95,13 +95,14 @@ static u32 cdv_get_max_backlight(struct drm_device *dev)
 static int cdv_get_brightness(struct backlight_device *bd)
 {
        struct drm_device *dev = bl_get_data(bd);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        u32 val = REG_READ(BLC_PWM_CTL) & BACKLIGHT_DUTY_CYCLE_MASK;
 
        if (cdv_backlight_combination_mode(dev)) {
                u8 lbpc;
 
                val &= ~1;
-               pci_read_config_byte(dev->pdev, 0xF4, &lbpc);
+               pci_read_config_byte(pdev, 0xF4, &lbpc);
                val *= lbpc;
        }
        return (val * 100)/cdv_get_max_backlight(dev);
@@ -111,6 +112,7 @@ static int cdv_get_brightness(struct backlight_device *bd)
 static int cdv_set_brightness(struct backlight_device *bd)
 {
        struct drm_device *dev = bl_get_data(bd);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        int level = bd->props.brightness;
        u32 blc_pwm_ctl;
 
@@ -128,7 +130,7 @@ static int cdv_set_brightness(struct backlight_device *bd)
                lbpc = level * 0xfe / max + 1;
                level /= lbpc;
 
-               pci_write_config_byte(dev->pdev, 0xF4, lbpc);
+               pci_write_config_byte(pdev, 0xF4, lbpc);
        }
 
        blc_pwm_ctl = REG_READ(BLC_PWM_CTL) & ~BACKLIGHT_DUTY_CYCLE_MASK;
@@ -205,8 +207,9 @@ static inline void CDV_MSG_WRITE32(int domain, uint port, uint offset,
 static void cdv_init_pm(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        u32 pwr_cnt;
-       int domain = pci_domain_nr(dev->pdev->bus);
+       int domain = pci_domain_nr(pdev->bus);
        int i;
 
        dev_priv->apm_base = CDV_MSG_READ32(domain, PSB_PUNIT_PORT,
@@ -234,6 +237,8 @@ static void cdv_init_pm(struct drm_device *dev)
 
 static void cdv_errata(struct drm_device *dev)
 {
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
+
        /* Disable bonus launch.
         *      CPU and GPU competes for memory and display misses updates and
         *      flickers. Worst with dual core, dual displays.
@@ -242,7 +247,7 @@ static void cdv_errata(struct drm_device *dev)
         *      Bonus Launch to work around the issue, by degrading
         *      performance.
         */
-        CDV_MSG_WRITE32(pci_domain_nr(dev->pdev->bus), 3, 0x30, 0x08027108);
+        CDV_MSG_WRITE32(pci_domain_nr(pdev->bus), 3, 0x30, 0x08027108);
 }
 
 /**
@@ -255,12 +260,13 @@ static void cdv_errata(struct drm_device *dev)
 static int cdv_save_display_registers(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct psb_save_area *regs = &dev_priv->regs;
        struct drm_connector *connector;
 
        dev_dbg(dev->dev, "Saving GPU registers.\n");
 
-       pci_read_config_byte(dev->pdev, 0xF4, &regs->cdv.saveLBB);
+       pci_read_config_byte(pdev, 0xF4, &regs->cdv.saveLBB);
 
        regs->cdv.saveDSPCLK_GATE_D = REG_READ(DSPCLK_GATE_D);
        regs->cdv.saveRAMCLK_GATE_D = REG_READ(RAMCLK_GATE_D);
@@ -309,11 +315,12 @@ static int cdv_save_display_registers(struct drm_device *dev)
 static int cdv_restore_display_registers(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct psb_save_area *regs = &dev_priv->regs;
        struct drm_connector *connector;
        u32 temp;
 
-       pci_write_config_byte(dev->pdev, 0xF4, regs->cdv.saveLBB);
+       pci_write_config_byte(pdev, 0xF4, regs->cdv.saveLBB);
 
        REG_WRITE(DSPCLK_GATE_D, regs->cdv.saveDSPCLK_GATE_D);
        REG_WRITE(RAMCLK_GATE_D, regs->cdv.saveRAMCLK_GATE_D);
@@ -421,16 +428,16 @@ static int cdv_power_up(struct drm_device *dev)
 static void cdv_hotplug_work_func(struct work_struct *work)
 {
         struct drm_psb_private *dev_priv = container_of(work, struct drm_psb_private,
-                                                       hotplug_work);                 
+                                                       hotplug_work);
         struct drm_device *dev = dev_priv->dev;
 
         /* Just fire off a uevent and let userspace tell us what to do */
         drm_helper_hpd_irq_event(dev);
-}                       
+}
 
 /* The core driver has received a hotplug IRQ. We are in IRQ context
    so extract the needed information and kick off queued processing */
-   
+
 static int cdv_hotplug_event(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
@@ -449,7 +456,7 @@ static void cdv_hotplug_enable(struct drm_device *dev, bool on)
        }  else {
                REG_WRITE(PORT_HOTPLUG_EN, 0);
                REG_WRITE(PORT_HOTPLUG_STAT, REG_READ(PORT_HOTPLUG_STAT));
-       }       
+       }
 }
 
 static const char *force_audio_names[] = {
@@ -568,9 +575,10 @@ static const struct psb_offset cdv_regmap[2] = {
 static int cdv_chip_setup(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        INIT_WORK(&dev_priv->hotplug_work, cdv_hotplug_work_func);
 
-       if (pci_enable_msi(dev->pdev))
+       if (pci_enable_msi(pdev))
                dev_warn(dev->dev, "Enabling MSI failed!\n");
        dev_priv->regmap = cdv_regmap;
        gma_get_core_freq(dev);
index 88535f5..fc58a73 100644 (file)
@@ -278,8 +278,7 @@ void cdv_intel_crt_init(struct drm_device *dev,
        gma_encoder->ddc_bus = psb_intel_i2c_create(dev,
                                                          i2c_reg, "CRTDDC_A");
        if (!gma_encoder->ddc_bus) {
-               dev_printk(KERN_ERR, &dev->pdev->dev, "DDC bus registration "
-                          "failed.\n");
+               dev_printk(KERN_ERR, dev->dev, "DDC bus registration failed.\n");
                goto failed_ddc;
        }
 
index eaaf4ef..b623689 100644 (file)
@@ -554,7 +554,7 @@ void cdv_intel_lvds_init(struct drm_device *dev,
                                                         "LVDSBLC_B");
        if (!gma_encoder->i2c_bus) {
                dev_printk(KERN_ERR,
-                       &dev->pdev->dev, "I2C bus registration failed.\n");
+                       dev->dev, "I2C bus registration failed.\n");
                goto failed_blc_i2c;
        }
        gma_encoder->i2c_bus->slave_addr = 0x2C;
@@ -575,7 +575,7 @@ void cdv_intel_lvds_init(struct drm_device *dev,
                                                         GPIOC,
                                                         "LVDSDDC_C");
        if (!gma_encoder->ddc_bus) {
-               dev_printk(KERN_ERR, &dev->pdev->dev,
+               dev_printk(KERN_ERR, dev->dev,
                           "DDC bus registration " "failed.\n");
                goto failed_ddc;
        }
index fc4fda1..22c80e8 100644 (file)
@@ -262,6 +262,7 @@ static int psbfb_create(struct drm_fb_helper *fb_helper,
 {
        struct drm_device *dev = fb_helper->dev;
        struct drm_psb_private *dev_priv = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct fb_info *info;
        struct drm_framebuffer *fb;
        struct drm_mode_fb_cmd2 mode_cmd;
@@ -325,8 +326,8 @@ static int psbfb_create(struct drm_fb_helper *fb_helper,
 
        drm_fb_helper_fill_info(info, fb_helper, sizes);
 
-       info->fix.mmio_start = pci_resource_start(dev->pdev, 0);
-       info->fix.mmio_len = pci_resource_len(dev->pdev, 0);
+       info->fix.mmio_start = pci_resource_start(pdev, 0);
+       info->fix.mmio_len = pci_resource_len(pdev, 0);
 
        /* Use default scratch pixmap (info->pixmap.flags = FB_PIXMAP_SYSTEM) */
 
@@ -529,6 +530,7 @@ void psb_modeset_init(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
        struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        int i;
 
        drm_mode_config_init(dev);
@@ -540,8 +542,7 @@ void psb_modeset_init(struct drm_device *dev)
 
        /* set memory base */
        /* Oaktrail and Poulsbo should use BAR 2*/
-       pci_read_config_dword(dev->pdev, PSB_BSM, (u32 *)
-                                       &(dev->mode_config.fb_base));
+       pci_read_config_dword(pdev, PSB_BSM, (u32 *)&(dev->mode_config.fb_base));
 
        /* num pipes is 2 for PSB but 1 for Mrst */
        for (i = 0; i < dev_priv->num_pipe; i++)
index 869f303..cfbeb01 100644 (file)
@@ -10,8 +10,9 @@
 void gma_get_core_freq(struct drm_device *dev)
 {
        uint32_t clock;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct pci_dev *pci_root =
-               pci_get_domain_bus_and_slot(pci_domain_nr(dev->pdev->bus),
+               pci_get_domain_bus_and_slot(pci_domain_nr(pdev->bus),
                                            0, 0);
        struct drm_psb_private *dev_priv = dev->dev_private;
 
index 3df6d6e..cadae84 100644 (file)
@@ -559,9 +559,9 @@ int gma_crtc_set_config(struct drm_mode_set *set,
        if (!dev_priv->rpm_enabled)
                return drm_crtc_helper_set_config(set, ctx);
 
-       pm_runtime_forbid(&dev->pdev->dev);
+       pm_runtime_forbid(dev->dev);
        ret = drm_crtc_helper_set_config(set, ctx);
-       pm_runtime_allow(&dev->pdev->dev);
+       pm_runtime_allow(dev->dev);
 
        return ret;
 }
index d246b1f..e884750 100644 (file)
@@ -340,13 +340,14 @@ static void psb_gtt_alloc(struct drm_device *dev)
 void psb_gtt_takedown(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
 
        if (dev_priv->gtt_map) {
                iounmap(dev_priv->gtt_map);
                dev_priv->gtt_map = NULL;
        }
        if (dev_priv->gtt_initialized) {
-               pci_write_config_word(dev->pdev, PSB_GMCH_CTRL,
+               pci_write_config_word(pdev, PSB_GMCH_CTRL,
                                      dev_priv->gmch_ctrl);
                PSB_WVDC32(dev_priv->pge_ctl, PSB_PGETBL_CTL);
                (void) PSB_RVDC32(PSB_PGETBL_CTL);
@@ -358,6 +359,7 @@ void psb_gtt_takedown(struct drm_device *dev)
 int psb_gtt_init(struct drm_device *dev, int resume)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        unsigned gtt_pages;
        unsigned long stolen_size, vram_stolen_size;
        unsigned i, num_pages;
@@ -376,8 +378,8 @@ int psb_gtt_init(struct drm_device *dev, int resume)
        pg = &dev_priv->gtt;
 
        /* Enable the GTT */
-       pci_read_config_word(dev->pdev, PSB_GMCH_CTRL, &dev_priv->gmch_ctrl);
-       pci_write_config_word(dev->pdev, PSB_GMCH_CTRL,
+       pci_read_config_word(pdev, PSB_GMCH_CTRL, &dev_priv->gmch_ctrl);
+       pci_write_config_word(pdev, PSB_GMCH_CTRL,
                              dev_priv->gmch_ctrl | _PSB_GMCH_ENABLED);
 
        dev_priv->pge_ctl = PSB_RVDC32(PSB_PGETBL_CTL);
@@ -397,8 +399,8 @@ int psb_gtt_init(struct drm_device *dev, int resume)
         */
        pg->mmu_gatt_start = 0xE0000000;
 
-       pg->gtt_start = pci_resource_start(dev->pdev, PSB_GTT_RESOURCE);
-       gtt_pages = pci_resource_len(dev->pdev, PSB_GTT_RESOURCE)
+       pg->gtt_start = pci_resource_start(pdev, PSB_GTT_RESOURCE);
+       gtt_pages = pci_resource_len(pdev, PSB_GTT_RESOURCE)
                                                                >> PAGE_SHIFT;
        /* CDV doesn't report this. In which case the system has 64 gtt pages */
        if (pg->gtt_start == 0 || gtt_pages == 0) {
@@ -407,10 +409,10 @@ int psb_gtt_init(struct drm_device *dev, int resume)
                pg->gtt_start = dev_priv->pge_ctl;
        }
 
-       pg->gatt_start = pci_resource_start(dev->pdev, PSB_GATT_RESOURCE);
-       pg->gatt_pages = pci_resource_len(dev->pdev, PSB_GATT_RESOURCE)
+       pg->gatt_start = pci_resource_start(pdev, PSB_GATT_RESOURCE);
+       pg->gatt_pages = pci_resource_len(pdev, PSB_GATT_RESOURCE)
                                                                >> PAGE_SHIFT;
-       dev_priv->gtt_mem = &dev->pdev->resource[PSB_GATT_RESOURCE];
+       dev_priv->gtt_mem = &pdev->resource[PSB_GATT_RESOURCE];
 
        if (pg->gatt_pages == 0 || pg->gatt_start == 0) {
                static struct resource fudge;   /* Preferably peppermint */
@@ -431,7 +433,7 @@ int psb_gtt_init(struct drm_device *dev, int resume)
                dev_priv->gtt_mem = &fudge;
        }
 
-       pci_read_config_dword(dev->pdev, PSB_BSM, &dev_priv->stolen_base);
+       pci_read_config_dword(pdev, PSB_BSM, &dev_priv->stolen_base);
        vram_stolen_size = pg->gtt_phys_start - dev_priv->stolen_base
                                                                - PAGE_SIZE;
 
index 8ad6337..a3b8433 100644 (file)
@@ -50,7 +50,7 @@ parse_edp(struct drm_psb_private *dev_priv, struct bdb_header *bdb)
        uint8_t panel_type;
 
        edp = find_section(bdb, BDB_EDP);
-       
+
        dev_priv->edp.bpp = 18;
        if (!edp) {
                if (dev_priv->edp.support) {
@@ -80,7 +80,7 @@ parse_edp(struct drm_psb_private *dev_priv, struct bdb_header *bdb)
        dev_priv->edp.pps = *edp_pps;
 
        DRM_DEBUG_KMS("EDP timing in vbt t1_t3 %d t8 %d t9 %d t10 %d t11_t12 %d\n",
-                               dev_priv->edp.pps.t1_t3, dev_priv->edp.pps.t8, 
+                               dev_priv->edp.pps.t1_t3, dev_priv->edp.pps.t8,
                                dev_priv->edp.pps.t9, dev_priv->edp.pps.t10,
                                dev_priv->edp.pps.t11_t12);
 
@@ -516,7 +516,7 @@ parse_device_mapping(struct drm_psb_private *dev_priv,
 int psb_intel_init_bios(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
-       struct pci_dev *pdev = dev->pdev;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct vbt_header *vbt = NULL;
        struct bdb_header *bdb = NULL;
        u8 __iomem *bios = NULL;
index a083fbf..370bd64 100644 (file)
@@ -196,7 +196,7 @@ intel_gpio_create(struct drm_psb_private *dev_priv, u32 pin)
                 "gma500 GPIO%c", "?BACDE?F"[pin]);
        gpio->adapter.owner = THIS_MODULE;
        gpio->adapter.algo_data = &gpio->algo;
-       gpio->adapter.dev.parent = &dev_priv->dev->pdev->dev;
+       gpio->adapter.dev.parent = dev_priv->dev->dev;
        gpio->algo.setsda = set_data;
        gpio->algo.setscl = set_clock;
        gpio->algo.getsda = get_data;
@@ -417,7 +417,7 @@ int gma_intel_setup_gmbus(struct drm_device *dev)
                         "gma500 gmbus %s",
                         names[i]);
 
-               bus->adapter.dev.parent = &dev->pdev->dev;
+               bus->adapter.dev.parent = dev->dev;
                bus->adapter.algo_data  = dev_priv;
 
                bus->adapter.algo = &gmbus_algorithm;
index de88101..cb92f24 100644 (file)
@@ -117,7 +117,7 @@ struct psb_intel_i2c_chan *psb_intel_i2c_create(struct drm_device *dev,
        snprintf(chan->adapter.name, I2C_NAME_SIZE, "intel drm %s", name);
        chan->adapter.owner = THIS_MODULE;
        chan->adapter.algo_data = &chan->algo;
-       chan->adapter.dev.parent = &dev->pdev->dev;
+       chan->adapter.dev.parent = dev->dev;
        chan->algo.setsda = set_data;
        chan->algo.setscl = set_clock;
        chan->algo.getsda = get_data;
index b83d59b..684d6cf 100644 (file)
@@ -523,7 +523,9 @@ static struct gpiod_lookup_table mdfld_dsi_pipe_gpio_table = {
 static int mdfld_chip_setup(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
-       if (pci_enable_msi(dev->pdev))
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
+
+       if (pci_enable_msi(pdev))
                dev_warn(dev->dev, "Enabling MSI failed!\n");
        dev_priv->regmap = mdfld_regmap;
 
index ae1223f..4c5a2f7 100644 (file)
@@ -138,7 +138,7 @@ static void dsi_set_pipe_plane_enable_state(struct drm_device *dev,
                REG_WRITE(pipeconf_reg, BIT(31));
 
                if (REG_BIT_WAIT(pipeconf_reg, 1, 30))
-                       dev_err(&dev->pdev->dev, "%s: Pipe enable timeout\n",
+                       dev_err(dev->dev, "%s: Pipe enable timeout\n",
                                __func__);
 
                /*Set up display plane */
@@ -165,11 +165,11 @@ static void dsi_set_pipe_plane_enable_state(struct drm_device *dev,
                REG_FLD_MOD(pipeconf_reg, 0, 31, 31);
 
                if (REG_BIT_WAIT(pipeconf_reg, 0, 30))
-                       dev_err(&dev->pdev->dev, "%s: Pipe disable timeout\n",
+                       dev_err(dev->dev, "%s: Pipe disable timeout\n",
                                __func__);
 
                if (REG_BIT_WAIT(MIPI_GEN_FIFO_STAT_REG(pipe), 1, 28))
-                       dev_err(&dev->pdev->dev, "%s: FIFO not empty\n",
+                       dev_err(dev->dev, "%s: FIFO not empty\n",
                                __func__);
        }
 }
@@ -867,7 +867,7 @@ void mdfld_dsi_dpi_mode_set(struct drm_encoder *encoder,
                REG_WRITE(MRST_DPLL_A, 0x80800000);
 
                if (REG_BIT_WAIT(pipeconf_reg, 1, 29))
-                       dev_err(&dev->pdev->dev, "%s: DSI PLL lock timeout\n",
+                       dev_err(dev->dev, "%s: DSI PLL lock timeout\n",
                                __func__);
 
                REG_WRITE(MIPI_DPHY_PARAM_REG(pipe), 0x2A0c6008);
index 8ab44fe..68e7879 100644 (file)
@@ -19,8 +19,9 @@
 static void mid_get_fuse_settings(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct pci_dev *pci_root =
-               pci_get_domain_bus_and_slot(pci_domain_nr(dev->pdev->bus),
+               pci_get_domain_bus_and_slot(pci_domain_nr(pdev->bus),
                                            0, 0);
        uint32_t fuse_value = 0;
        uint32_t fuse_value_tmp = 0;
@@ -93,7 +94,8 @@ static void mid_get_fuse_settings(struct drm_device *dev)
 static void mid_get_pci_revID(struct drm_psb_private *dev_priv)
 {
        uint32_t platform_rev_id = 0;
-       int domain = pci_domain_nr(dev_priv->dev->pdev->bus);
+       struct pci_dev *pdev = to_pci_dev(dev_priv->dev->dev);
+       int domain = pci_domain_nr(pdev->bus);
        struct pci_dev *pci_gfx_root =
                pci_get_domain_bus_and_slot(domain, 0, PCI_DEVFN(2, 0));
 
@@ -269,11 +271,12 @@ out:
 static void mid_get_vbt_data(struct drm_psb_private *dev_priv)
 {
        struct drm_device *dev = dev_priv->dev;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        u32 addr;
        u8 __iomem *vbt_virtual;
        struct mid_vbt_header vbt_header;
        struct pci_dev *pci_gfx_root =
-               pci_get_domain_bus_and_slot(pci_domain_nr(dev->pdev->bus),
+               pci_get_domain_bus_and_slot(pci_domain_nr(pdev->bus),
                                            0, PCI_DEVFN(2, 0));
        int ret = -1;
 
index 8754290..08cd5f7 100644 (file)
@@ -504,9 +504,10 @@ static const struct psb_offset oaktrail_regmap[2] = {
 static int oaktrail_chip_setup(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        int ret;
-       
-       if (pci_enable_msi(dev->pdev))
+
+       if (pci_enable_msi(pdev))
                dev_warn(dev->dev, "Enabling MSI failed!\n");
 
        dev_priv->regmap = oaktrail_regmap;
index 2828360..3abaedb 100644 (file)
@@ -60,7 +60,7 @@ static void oaktrail_lvds_set_power(struct drm_device *dev,
                        pp_status = REG_READ(PP_STATUS);
                } while (pp_status & PP_ON);
                dev_priv->is_lvds_on = false;
-               pm_request_idle(&dev->pdev->dev);
+               pm_request_idle(dev->dev);
        }
        gma_power_end(dev);
 }
index baaf821..d64aedc 100644 (file)
@@ -145,7 +145,7 @@ void oaktrail_lvds_i2c_init(struct drm_encoder *encoder)
        strncpy(chan->adapter.name, "gma500 LPC",  I2C_NAME_SIZE - 1);
        chan->adapter.owner = THIS_MODULE;
        chan->adapter.algo_data = &chan->algo;
-       chan->adapter.dev.parent = &dev->pdev->dev;
+       chan->adapter.dev.parent = dev->dev;
        chan->algo.setsda = set_data;
        chan->algo.setscl = set_clock;
        chan->algo.getsda = get_data;
index eab6d88..a1ffc6a 100644 (file)
@@ -305,12 +305,13 @@ void psb_intel_opregion_fini(struct drm_device *dev)
 int psb_intel_opregion_setup(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct psb_intel_opregion *opregion = &dev_priv->opregion;
        u32 opregion_phy, mboxes;
        void __iomem *base;
        int err = 0;
 
-       pci_read_config_dword(dev->pdev, PCI_ASLS, &opregion_phy);
+       pci_read_config_dword(pdev, PCI_ASLS, &opregion_phy);
        if (opregion_phy == 0) {
                DRM_DEBUG_DRIVER("ACPI Opregion not supported\n");
                return -ENOTSUPP;
index bea8578..f0fc171 100644 (file)
@@ -70,8 +70,8 @@ void gma_power_init(struct drm_device *dev)
  */
 void gma_power_uninit(struct drm_device *dev)
 {
-       pm_runtime_disable(&dev->pdev->dev);
-       pm_runtime_set_suspended(&dev->pdev->dev);
+       pm_runtime_disable(dev->dev);
+       pm_runtime_set_suspended(dev->dev);
 }
 
 /**
@@ -249,6 +249,7 @@ bool gma_power_is_on(struct drm_device *dev)
 bool gma_power_begin(struct drm_device *dev, bool force_on)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        int ret;
        unsigned long flags;
 
@@ -256,7 +257,7 @@ bool gma_power_begin(struct drm_device *dev, bool force_on)
        /* Power already on ? */
        if (dev_priv->display_power) {
                dev_priv->display_count++;
-               pm_runtime_get(&dev->pdev->dev);
+               pm_runtime_get(dev->dev);
                spin_unlock_irqrestore(&power_ctrl_lock, flags);
                return true;
        }
@@ -264,11 +265,11 @@ bool gma_power_begin(struct drm_device *dev, bool force_on)
                goto out_false;
 
        /* Ok power up needed */
-       ret = gma_resume_pci(dev->pdev);
+       ret = gma_resume_pci(pdev);
        if (ret == 0) {
                psb_irq_preinstall(dev);
                psb_irq_postinstall(dev);
-               pm_runtime_get(&dev->pdev->dev);
+               pm_runtime_get(dev->dev);
                dev_priv->display_count++;
                spin_unlock_irqrestore(&power_ctrl_lock, flags);
                return true;
@@ -293,7 +294,7 @@ void gma_power_end(struct drm_device *dev)
        dev_priv->display_count--;
        WARN_ON(dev_priv->display_count < 0);
        spin_unlock_irqrestore(&power_ctrl_lock, flags);
-       pm_runtime_put(&dev->pdev->dev);
+       pm_runtime_put(dev->dev);
 }
 
 int psb_runtime_suspend(struct device *dev)
index 134068f..a19f60d 100644 (file)
@@ -208,6 +208,7 @@ static void psb_driver_unload(struct drm_device *dev)
 
 static int psb_driver_load(struct drm_device *dev, unsigned long flags)
 {
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct drm_psb_private *dev_priv;
        unsigned long resource_start, resource_len;
        unsigned long irqflags;
@@ -227,11 +228,11 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags)
 
        pg = &dev_priv->gtt;
 
-       pci_set_master(dev->pdev);
+       pci_set_master(pdev);
 
        dev_priv->num_pipe = dev_priv->ops->pipes;
 
-       resource_start = pci_resource_start(dev->pdev, PSB_MMIO_RESOURCE);
+       resource_start = pci_resource_start(pdev, PSB_MMIO_RESOURCE);
 
        dev_priv->vdc_reg =
            ioremap(resource_start + PSB_VDC_OFFSET, PSB_VDC_SIZE);
@@ -244,7 +245,7 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags)
                goto out_err;
 
        if (IS_MRST(dev)) {
-               int domain = pci_domain_nr(dev->pdev->bus);
+               int domain = pci_domain_nr(pdev->bus);
 
                dev_priv->aux_pdev =
                        pci_get_domain_bus_and_slot(domain, 0,
@@ -361,7 +362,7 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags)
        PSB_WVDC32(0xFFFFFFFF, PSB_INT_MASK_R);
        spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
 
-       drm_irq_install(dev, dev->pdev->irq);
+       drm_irq_install(dev, pdev->irq);
 
        dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */
 
@@ -387,8 +388,8 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags)
        psb_intel_opregion_enable_asle(dev);
 #if 0
        /* Enable runtime pm at last */
-       pm_runtime_enable(&dev->pdev->dev);
-       pm_runtime_set_active(&dev->pdev->dev);
+       pm_runtime_enable(dev->dev);
+       pm_runtime_set_active(dev->dev);
 #endif
        /* Intel drm driver load is done, continue doing pvr load */
        return 0;
@@ -417,7 +418,7 @@ static long psb_unlocked_ioctl(struct file *filp, unsigned int cmd,
 
        if (runtime_allowed == 1 && dev_priv->is_lvds_on) {
                runtime_allowed++;
-               pm_runtime_allow(&dev->pdev->dev);
+               pm_runtime_allow(dev->dev);
                dev_priv->rpm_enabled = 1;
        }
        return drm_ioctl(filp, cmd, arg);
@@ -439,7 +440,6 @@ static int psb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                goto err_pci_disable_device;
        }
 
-       dev->pdev = pdev;
        pci_set_drvdata(pdev, dev);
 
        ret = psb_driver_load(dev, ent->driver_data);
index 5b7f7a3..d303f82 100644 (file)
@@ -43,10 +43,10 @@ enum {
        CHIP_MFLD_0130 = 3,             /* Medfield */
 };
 
-#define IS_PSB(dev) (((dev)->pdev->device & 0xfffe) == 0x8108)
-#define IS_MRST(dev) (((dev)->pdev->device & 0xfff0) == 0x4100)
-#define IS_MFLD(dev) (((dev)->pdev->device & 0xfff8) == 0x0130)
-#define IS_CDV(dev) (((dev)->pdev->device & 0xfff0) == 0x0be0)
+#define IS_PSB(drm) ((to_pci_dev((drm)->dev)->device & 0xfffe) == 0x8108)
+#define IS_MRST(drm) ((to_pci_dev((drm)->dev)->device & 0xfff0) == 0x4100)
+#define IS_MFLD(drm) ((to_pci_dev((drm)->dev)->device & 0xfff8) == 0x0130)
+#define IS_CDV(drm) ((to_pci_dev((drm)->dev)->device & 0xfff0) == 0x0be0)
 
 /* Hardware offsets */
 #define PSB_VDC_OFFSET          0x00000000
index 063c66b..f65a6f3 100644 (file)
@@ -216,7 +216,7 @@ static void psb_intel_lvds_set_power(struct drm_device *dev, bool on)
                dev_err(dev->dev, "set power, chip off!\n");
                return;
         }
-        
+
        if (on) {
                REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) |
                          POWER_TARGET_ON);
@@ -700,7 +700,7 @@ void psb_intel_lvds_init(struct drm_device *dev,
        lvds_priv->i2c_bus = psb_intel_i2c_create(dev, GPIOB, "LVDSBLC_B");
        if (!lvds_priv->i2c_bus) {
                dev_printk(KERN_ERR,
-                       &dev->pdev->dev, "I2C bus registration failed.\n");
+                       dev->dev, "I2C bus registration failed.\n");
                goto failed_blc_i2c;
        }
        lvds_priv->i2c_bus->slave_addr = 0x2C;
@@ -719,7 +719,7 @@ void psb_intel_lvds_init(struct drm_device *dev,
        /* Set up the DDC bus. */
        lvds_priv->ddc_bus = psb_intel_i2c_create(dev, GPIOC, "LVDSDDC_C");
        if (!lvds_priv->ddc_bus) {
-               dev_printk(KERN_ERR, &dev->pdev->dev,
+               dev_printk(KERN_ERR, dev->dev,
                           "DDC bus registration " "failed.\n");
                goto failed_ddc;
        }
index 907f966..2ddf7e4 100644 (file)
@@ -2406,7 +2406,7 @@ psb_intel_sdvo_init_ddc_proxy(struct psb_intel_sdvo *sdvo,
        sdvo->ddc.owner = THIS_MODULE;
        sdvo->ddc.class = I2C_CLASS_DDC;
        snprintf(sdvo->ddc.name, I2C_NAME_SIZE, "SDVO DDC proxy");
-       sdvo->ddc.dev.parent = &dev->pdev->dev;
+       sdvo->ddc.dev.parent = dev->dev;
        sdvo->ddc.algo_data = sdvo;
        sdvo->ddc.algo = &psb_intel_sdvo_ddc_proxy;
 
index e5bdd99..99d2ffc 100644 (file)
@@ -454,13 +454,13 @@ static void tc35876x_brightness_init(struct drm_device *dev)
        ret = intel_scu_ipc_ioread8(GPIOPWMCTRL, &pwmctrl);
        if (ret || pwmctrl != 0x01) {
                if (ret)
-                       dev_err(&dev->pdev->dev, "GPIOPWMCTRL read failed\n");
+                       dev_err(dev->dev, "GPIOPWMCTRL read failed\n");
                else
-                       dev_warn(&dev->pdev->dev, "GPIOPWMCTRL was not set to system clock (pwmctrl = 0x%02x)\n", pwmctrl);
+                       dev_warn(dev->dev, "GPIOPWMCTRL was not set to system clock (pwmctrl = 0x%02x)\n", pwmctrl);
 
                ret = intel_scu_ipc_iowrite8(GPIOPWMCTRL, 0x01);
                if (ret)
-                       dev_err(&dev->pdev->dev, "GPIOPWMCTRL set failed\n");
+                       dev_err(dev->dev, "GPIOPWMCTRL set failed\n");
        }
 
        clkdiv = calc_clkdiv(SYSTEMCLK, PWM_FREQUENCY);
@@ -470,9 +470,9 @@ static void tc35876x_brightness_init(struct drm_device *dev)
                ret = intel_scu_ipc_iowrite8(PWM0CLKDIV0, clkdiv & 0xff);
 
        if (ret)
-               dev_err(&dev->pdev->dev, "PWM0CLKDIV set failed\n");
+               dev_err(dev->dev, "PWM0CLKDIV set failed\n");
        else
-               dev_dbg(&dev->pdev->dev, "PWM0CLKDIV set to 0x%04x (%d Hz)\n",
+               dev_dbg(dev->dev, "PWM0CLKDIV set to 0x%04x (%d Hz)\n",
                        clkdiv, PWM_FREQUENCY);
 }
 
@@ -575,7 +575,7 @@ static struct drm_display_mode *tc35876x_get_config_mode(struct drm_device *dev)
 {
        struct drm_display_mode *mode;
 
-       dev_dbg(&dev->pdev->dev, "%s\n", __func__);
+       dev_dbg(dev->dev, "%s\n", __func__);
 
        mode = kzalloc(sizeof(*mode), GFP_KERNEL);
        if (!mode)
@@ -592,15 +592,15 @@ static struct drm_display_mode *tc35876x_get_config_mode(struct drm_device *dev)
        mode->vtotal = 838;
        mode->clock = 33324 << 1;
 
-       dev_info(&dev->pdev->dev, "hdisplay(w) = %d\n", mode->hdisplay);
-       dev_info(&dev->pdev->dev, "vdisplay(h) = %d\n", mode->vdisplay);
-       dev_info(&dev->pdev->dev, "HSS = %d\n", mode->hsync_start);
-       dev_info(&dev->pdev->dev, "HSE = %d\n", mode->hsync_end);
-       dev_info(&dev->pdev->dev, "htotal = %d\n", mode->htotal);
-       dev_info(&dev->pdev->dev, "VSS = %d\n", mode->vsync_start);
-       dev_info(&dev->pdev->dev, "VSE = %d\n", mode->vsync_end);
-       dev_info(&dev->pdev->dev, "vtotal = %d\n", mode->vtotal);
-       dev_info(&dev->pdev->dev, "clock = %d\n", mode->clock);
+       dev_info(dev->dev, "hdisplay(w) = %d\n", mode->hdisplay);
+       dev_info(dev->dev, "vdisplay(h) = %d\n", mode->vdisplay);
+       dev_info(dev->dev, "HSS = %d\n", mode->hsync_start);
+       dev_info(dev->dev, "HSE = %d\n", mode->hsync_end);
+       dev_info(dev->dev, "htotal = %d\n", mode->htotal);
+       dev_info(dev->dev, "VSS = %d\n", mode->vsync_start);
+       dev_info(dev->dev, "VSE = %d\n", mode->vsync_end);
+       dev_info(dev->dev, "vtotal = %d\n", mode->vtotal);
+       dev_info(dev->dev, "clock = %d\n", mode->clock);
 
        drm_mode_set_name(mode);
        drm_mode_set_crtcinfo(mode, 0);
@@ -775,19 +775,19 @@ void tc35876x_init(struct drm_device *dev)
 {
        int r;
 
-       dev_dbg(&dev->pdev->dev, "%s\n", __func__);
+       dev_dbg(dev->dev, "%s\n", __func__);
 
        cmi_lcd_hack_create_device();
 
        r = i2c_add_driver(&cmi_lcd_i2c_driver);
        if (r < 0)
-               dev_err(&dev->pdev->dev,
+               dev_err(dev->dev,
                        "%s: i2c_add_driver() for %s failed (%d)\n",
                        __func__, cmi_lcd_i2c_driver.driver.name, r);
 
        r = i2c_add_driver(&tc35876x_bridge_i2c_driver);
        if (r < 0)
-               dev_err(&dev->pdev->dev,
+               dev_err(dev->dev,
                        "%s: i2c_add_driver() for %s failed (%d)\n",
                        __func__, tc35876x_bridge_i2c_driver.driver.name, r);
 
index a977c9f..4e4c105 100644 (file)
@@ -47,10 +47,11 @@ static const struct drm_driver mgag200_driver = {
 static bool mgag200_has_sgram(struct mga_device *mdev)
 {
        struct drm_device *dev = &mdev->base;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        u32 option;
        int ret;
 
-       ret = pci_read_config_dword(dev->pdev, PCI_MGA_OPTION, &option);
+       ret = pci_read_config_dword(pdev, PCI_MGA_OPTION, &option);
        if (drm_WARN(dev, ret, "failed to read PCI config dword: %d\n", ret))
                return false;
 
@@ -60,6 +61,7 @@ static bool mgag200_has_sgram(struct mga_device *mdev)
 static int mgag200_regs_init(struct mga_device *mdev)
 {
        struct drm_device *dev = &mdev->base;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        u32 option, option2;
        u8 crtcext3;
 
@@ -99,13 +101,13 @@ static int mgag200_regs_init(struct mga_device *mdev)
        }
 
        if (option)
-               pci_write_config_dword(dev->pdev, PCI_MGA_OPTION, option);
+               pci_write_config_dword(pdev, PCI_MGA_OPTION, option);
        if (option2)
-               pci_write_config_dword(dev->pdev, PCI_MGA_OPTION2, option2);
+               pci_write_config_dword(pdev, PCI_MGA_OPTION2, option2);
 
        /* BAR 1 contains registers */
-       mdev->rmmio_base = pci_resource_start(dev->pdev, 1);
-       mdev->rmmio_size = pci_resource_len(dev->pdev, 1);
+       mdev->rmmio_base = pci_resource_start(pdev, 1);
+       mdev->rmmio_size = pci_resource_len(pdev, 1);
 
        if (!devm_request_mem_region(dev->dev, mdev->rmmio_base,
                                     mdev->rmmio_size, "mgadrmfb_mmio")) {
@@ -113,7 +115,7 @@ static int mgag200_regs_init(struct mga_device *mdev)
                return -ENOMEM;
        }
 
-       mdev->rmmio = pcim_iomap(dev->pdev, 1, 0);
+       mdev->rmmio = pcim_iomap(pdev, 1, 0);
        if (mdev->rmmio == NULL)
                return -ENOMEM;
 
@@ -218,6 +220,7 @@ static void mgag200_g200_interpret_bios(struct mga_device *mdev,
 static void mgag200_g200_init_refclk(struct mga_device *mdev)
 {
        struct drm_device *dev = &mdev->base;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        unsigned char __iomem *rom;
        unsigned char *bios;
        size_t size;
@@ -226,7 +229,7 @@ static void mgag200_g200_init_refclk(struct mga_device *mdev)
        mdev->model.g200.pclk_max = 230000;
        mdev->model.g200.ref_clk = 27050;
 
-       rom = pci_map_rom(dev->pdev, &size);
+       rom = pci_map_rom(pdev, &size);
        if (!rom)
                return;
 
@@ -244,7 +247,7 @@ static void mgag200_g200_init_refclk(struct mga_device *mdev)
 
        vfree(bios);
 out:
-       pci_unmap_rom(dev->pdev, rom);
+       pci_unmap_rom(pdev, rom);
 }
 
 static void mgag200_g200se_init_unique_id(struct mga_device *mdev)
@@ -301,7 +304,6 @@ mgag200_device_create(struct pci_dev *pdev, unsigned long flags)
                return mdev;
        dev = &mdev->base;
 
-       dev->pdev = pdev;
        pci_set_drvdata(pdev, dev);
 
        ret = mgag200_device_init(mdev, flags);
index 09731e6..ac8e34e 100644 (file)
@@ -126,7 +126,7 @@ struct mga_i2c_chan *mgag200_i2c_create(struct drm_device *dev)
        i2c->clock = clock;
        i2c->adapter.owner = THIS_MODULE;
        i2c->adapter.class = I2C_CLASS_DDC;
-       i2c->adapter.dev.parent = &dev->pdev->dev;
+       i2c->adapter.dev.parent = dev->dev;
        i2c->dev = dev;
        i2c_set_adapdata(&i2c->adapter, i2c);
        snprintf(i2c->adapter.name, sizeof(i2c->adapter.name), "mga i2c");
index 641f1aa..b667371 100644 (file)
@@ -78,11 +78,12 @@ static size_t mgag200_probe_vram(struct mga_device *mdev, void __iomem *mem,
 static void mgag200_mm_release(struct drm_device *dev, void *ptr)
 {
        struct mga_device *mdev = to_mga_device(dev);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
 
        mdev->vram_fb_available = 0;
        iounmap(mdev->vram);
-       arch_io_free_memtype_wc(pci_resource_start(dev->pdev, 0),
-                               pci_resource_len(dev->pdev, 0));
+       arch_io_free_memtype_wc(pci_resource_start(pdev, 0),
+                               pci_resource_len(pdev, 0));
        arch_phys_wc_del(mdev->fb_mtrr);
        mdev->fb_mtrr = 0;
 }
@@ -90,6 +91,7 @@ static void mgag200_mm_release(struct drm_device *dev, void *ptr)
 int mgag200_mm_init(struct mga_device *mdev)
 {
        struct drm_device *dev = &mdev->base;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        u8 misc;
        resource_size_t start, len;
        int ret;
@@ -102,8 +104,8 @@ int mgag200_mm_init(struct mga_device *mdev)
        WREG8(MGA_MISC_OUT, misc);
 
        /* BAR 0 is VRAM */
-       start = pci_resource_start(dev->pdev, 0);
-       len = pci_resource_len(dev->pdev, 0);
+       start = pci_resource_start(pdev, 0);
+       len = pci_resource_len(pdev, 0);
 
        if (!devm_request_mem_region(dev->dev, start, len, "mgadrmfb_vram")) {
                drm_err(dev, "can't reserve VRAM\n");
index 6e7f16f..fb5f6a5 100644 (file)
@@ -163,7 +163,7 @@ DEFINE_DRM_GEM_FOPS(qxl_fops);
 
 static int qxl_drm_freeze(struct drm_device *dev)
 {
-       struct pci_dev *pdev = dev->pdev;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct qxl_device *qdev = to_qxl(dev);
        int ret;
 
index 16e1e58..b6075f4 100644 (file)
@@ -370,13 +370,14 @@ static int qxl_clientcap_ioctl(struct drm_device *dev, void *data,
                                  struct drm_file *file_priv)
 {
        struct qxl_device *qdev = to_qxl(dev);
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct drm_qxl_clientcap *param = data;
        int byte, idx;
 
        byte = param->index / 8;
        idx = param->index % 8;
 
-       if (dev->pdev->revision < 4)
+       if (pdev->revision < 4)
                return -ENOSYS;
 
        if (byte >= 58)
index 1ba5a70..ddf6588 100644 (file)
@@ -81,6 +81,7 @@ static void qxl_client_monitors_config_work_func(struct work_struct *work)
 
 int qxl_irq_init(struct qxl_device *qdev)
 {
+       struct pci_dev *pdev = to_pci_dev(qdev->ddev.dev);
        int ret;
 
        init_waitqueue_head(&qdev->display_event);
@@ -93,7 +94,7 @@ int qxl_irq_init(struct qxl_device *qdev)
        atomic_set(&qdev->irq_received_cursor, 0);
        atomic_set(&qdev->irq_received_io_cmd, 0);
        qdev->irq_received_error = 0;
-       ret = drm_irq_install(&qdev->ddev, qdev->ddev.pdev->irq);
+       ret = drm_irq_install(&qdev->ddev, pdev->irq);
        qdev->ram_header->int_mask = QXL_INTERRUPT_MASK;
        if (unlikely(ret != 0)) {
                DRM_ERROR("Failed installing irq: %d\n", ret);
index 228e2b9..4a60a52 100644 (file)
@@ -111,7 +111,6 @@ int qxl_device_init(struct qxl_device *qdev,
 {
        int r, sb;
 
-       qdev->ddev.pdev = pdev;
        pci_set_drvdata(pdev, &qdev->ddev);
 
        mutex_init(&qdev->gem.mutex);
index 683de19..0fce73b 100644 (file)
@@ -2062,9 +2062,9 @@ atombios_apply_encoder_quirks(struct drm_encoder *encoder,
        struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc);
 
        /* Funky macbooks */
-       if ((dev->pdev->device == 0x71C5) &&
-           (dev->pdev->subsystem_vendor == 0x106b) &&
-           (dev->pdev->subsystem_device == 0x0080)) {
+       if ((rdev->pdev->device == 0x71C5) &&
+           (rdev->pdev->subsystem_vendor == 0x106b) &&
+           (rdev->pdev->subsystem_device == 0x0080)) {
                if (radeon_encoder->devices & ATOM_DEVICE_LCD1_SUPPORT) {
                        uint32_t lvtma_bit_depth_control = RREG32(AVIVO_LVTMA_BIT_DEPTH_CONTROL);
 
index aef4efc..2955bb3 100644 (file)
@@ -2612,7 +2612,6 @@ int r100_asic_reset(struct radeon_device *rdev, bool hard)
 
 void r100_set_common_regs(struct radeon_device *rdev)
 {
-       struct drm_device *dev = rdev->ddev;
        bool force_dac2 = false;
        u32 tmp;
 
@@ -2630,7 +2629,7 @@ void r100_set_common_regs(struct radeon_device *rdev)
         * don't report it in the bios connector
         * table.
         */
-       switch (dev->pdev->device) {
+       switch (rdev->pdev->device) {
                /* RN50 */
        case 0x515e:
        case 0x5969:
@@ -2640,17 +2639,17 @@ void r100_set_common_regs(struct radeon_device *rdev)
        case 0x5159:
        case 0x515a:
                /* DELL triple head servers */
-               if ((dev->pdev->subsystem_vendor == 0x1028 /* DELL */) &&
-                   ((dev->pdev->subsystem_device == 0x016c) ||
-                    (dev->pdev->subsystem_device == 0x016d) ||
-                    (dev->pdev->subsystem_device == 0x016e) ||
-                    (dev->pdev->subsystem_device == 0x016f) ||
-                    (dev->pdev->subsystem_device == 0x0170) ||
-                    (dev->pdev->subsystem_device == 0x017d) ||
-                    (dev->pdev->subsystem_device == 0x017e) ||
-                    (dev->pdev->subsystem_device == 0x0183) ||
-                    (dev->pdev->subsystem_device == 0x018a) ||
-                    (dev->pdev->subsystem_device == 0x019a)))
+               if ((rdev->pdev->subsystem_vendor == 0x1028 /* DELL */) &&
+                   ((rdev->pdev->subsystem_device == 0x016c) ||
+                    (rdev->pdev->subsystem_device == 0x016d) ||
+                    (rdev->pdev->subsystem_device == 0x016e) ||
+                    (rdev->pdev->subsystem_device == 0x016f) ||
+                    (rdev->pdev->subsystem_device == 0x0170) ||
+                    (rdev->pdev->subsystem_device == 0x017d) ||
+                    (rdev->pdev->subsystem_device == 0x017e) ||
+                    (rdev->pdev->subsystem_device == 0x0183) ||
+                    (rdev->pdev->subsystem_device == 0x018a) ||
+                    (rdev->pdev->subsystem_device == 0x019a)))
                        force_dac2 = true;
                break;
        }
@@ -2798,7 +2797,7 @@ void r100_vram_init_sizes(struct radeon_device *rdev)
                        rdev->mc.real_vram_size = 8192 * 1024;
                        WREG32(RADEON_CONFIG_MEMSIZE, rdev->mc.real_vram_size);
                }
-               /* Fix for RN50, M6, M7 with 8/16/32(??) MBs of VRAM - 
+               /* Fix for RN50, M6, M7 with 8/16/32(??) MBs of VRAM -
                 * Novell bug 204882 + along with lots of ubuntu ones
                 */
                if (rdev->mc.aper_size > config_aper_size)
index 5e1f367..6bcb851 100644 (file)
@@ -2622,14 +2622,14 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
                (rdev->family == CHIP_RV410) ||                 \
                (rdev->family == CHIP_RS400) ||                 \
                (rdev->family == CHIP_RS480))
-#define ASIC_IS_X2(rdev) ((rdev->ddev->pdev->device == 0x9441) || \
-               (rdev->ddev->pdev->device == 0x9443) || \
-               (rdev->ddev->pdev->device == 0x944B) || \
-               (rdev->ddev->pdev->device == 0x9506) || \
-               (rdev->ddev->pdev->device == 0x9509) || \
-               (rdev->ddev->pdev->device == 0x950F) || \
-               (rdev->ddev->pdev->device == 0x689C) || \
-               (rdev->ddev->pdev->device == 0x689D))
+#define ASIC_IS_X2(rdev) ((rdev->pdev->device == 0x9441) || \
+               (rdev->pdev->device == 0x9443) || \
+               (rdev->pdev->device == 0x944B) || \
+               (rdev->pdev->device == 0x9506) || \
+               (rdev->pdev->device == 0x9509) || \
+               (rdev->pdev->device == 0x950F) || \
+               (rdev->pdev->device == 0x689C) || \
+               (rdev->pdev->device == 0x689D))
 #define ASIC_IS_AVIVO(rdev) ((rdev->family >= CHIP_RS600))
 #define ASIC_IS_DCE2(rdev) ((rdev->family == CHIP_RS600)  ||   \
                            (rdev->family == CHIP_RS690)  ||    \
@@ -2652,14 +2652,14 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
 #define ASIC_IS_DCE83(rdev) ((rdev->family == CHIP_KABINI) || \
                             (rdev->family == CHIP_MULLINS))
 
-#define ASIC_IS_LOMBOK(rdev) ((rdev->ddev->pdev->device == 0x6849) || \
-                             (rdev->ddev->pdev->device == 0x6850) || \
-                             (rdev->ddev->pdev->device == 0x6858) || \
-                             (rdev->ddev->pdev->device == 0x6859) || \
-                             (rdev->ddev->pdev->device == 0x6840) || \
-                             (rdev->ddev->pdev->device == 0x6841) || \
-                             (rdev->ddev->pdev->device == 0x6842) || \
-                             (rdev->ddev->pdev->device == 0x6843))
+#define ASIC_IS_LOMBOK(rdev) ((rdev->pdev->device == 0x6849) || \
+                             (rdev->pdev->device == 0x6850) || \
+                             (rdev->pdev->device == 0x6858) || \
+                             (rdev->pdev->device == 0x6859) || \
+                             (rdev->pdev->device == 0x6840) || \
+                             (rdev->pdev->device == 0x6841) || \
+                             (rdev->pdev->device == 0x6842) || \
+                             (rdev->pdev->device == 0x6843))
 
 /*
  * BIOS helpers.
index be96d9b..42301b4 100644 (file)
@@ -284,46 +284,47 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
                                     uint16_t *line_mux,
                                     struct radeon_hpd *hpd)
 {
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
 
        /* Asus M2A-VM HDMI board lists the DVI port as HDMI */
-       if ((dev->pdev->device == 0x791e) &&
-           (dev->pdev->subsystem_vendor == 0x1043) &&
-           (dev->pdev->subsystem_device == 0x826d)) {
+       if ((pdev->device == 0x791e) &&
+           (pdev->subsystem_vendor == 0x1043) &&
+           (pdev->subsystem_device == 0x826d)) {
                if ((*connector_type == DRM_MODE_CONNECTOR_HDMIA) &&
                    (supported_device == ATOM_DEVICE_DFP3_SUPPORT))
                        *connector_type = DRM_MODE_CONNECTOR_DVID;
        }
 
        /* Asrock RS600 board lists the DVI port as HDMI */
-       if ((dev->pdev->device == 0x7941) &&
-           (dev->pdev->subsystem_vendor == 0x1849) &&
-           (dev->pdev->subsystem_device == 0x7941)) {
+       if ((pdev->device == 0x7941) &&
+           (pdev->subsystem_vendor == 0x1849) &&
+           (pdev->subsystem_device == 0x7941)) {
                if ((*connector_type == DRM_MODE_CONNECTOR_HDMIA) &&
                    (supported_device == ATOM_DEVICE_DFP3_SUPPORT))
                        *connector_type = DRM_MODE_CONNECTOR_DVID;
        }
 
        /* MSI K9A2GM V2/V3 board has no HDMI or DVI */
-       if ((dev->pdev->device == 0x796e) &&
-           (dev->pdev->subsystem_vendor == 0x1462) &&
-           (dev->pdev->subsystem_device == 0x7302)) {
+       if ((pdev->device == 0x796e) &&
+           (pdev->subsystem_vendor == 0x1462) &&
+           (pdev->subsystem_device == 0x7302)) {
                if ((supported_device == ATOM_DEVICE_DFP2_SUPPORT) ||
                    (supported_device == ATOM_DEVICE_DFP3_SUPPORT))
                        return false;
        }
 
        /* a-bit f-i90hd - ciaranm on #radeonhd - this board has no DVI */
-       if ((dev->pdev->device == 0x7941) &&
-           (dev->pdev->subsystem_vendor == 0x147b) &&
-           (dev->pdev->subsystem_device == 0x2412)) {
+       if ((pdev->device == 0x7941) &&
+           (pdev->subsystem_vendor == 0x147b) &&
+           (pdev->subsystem_device == 0x2412)) {
                if (*connector_type == DRM_MODE_CONNECTOR_DVII)
                        return false;
        }
 
        /* Falcon NW laptop lists vga ddc line for LVDS */
-       if ((dev->pdev->device == 0x5653) &&
-           (dev->pdev->subsystem_vendor == 0x1462) &&
-           (dev->pdev->subsystem_device == 0x0291)) {
+       if ((pdev->device == 0x5653) &&
+           (pdev->subsystem_vendor == 0x1462) &&
+           (pdev->subsystem_device == 0x0291)) {
                if (*connector_type == DRM_MODE_CONNECTOR_LVDS) {
                        i2c_bus->valid = false;
                        *line_mux = 53;
@@ -331,26 +332,26 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
        }
 
        /* HIS X1300 is DVI+VGA, not DVI+DVI */
-       if ((dev->pdev->device == 0x7146) &&
-           (dev->pdev->subsystem_vendor == 0x17af) &&
-           (dev->pdev->subsystem_device == 0x2058)) {
+       if ((pdev->device == 0x7146) &&
+           (pdev->subsystem_vendor == 0x17af) &&
+           (pdev->subsystem_device == 0x2058)) {
                if (supported_device == ATOM_DEVICE_DFP1_SUPPORT)
                        return false;
        }
 
        /* Gigabyte X1300 is DVI+VGA, not DVI+DVI */
-       if ((dev->pdev->device == 0x7142) &&
-           (dev->pdev->subsystem_vendor == 0x1458) &&
-           (dev->pdev->subsystem_device == 0x2134)) {
+       if ((pdev->device == 0x7142) &&
+           (pdev->subsystem_vendor == 0x1458) &&
+           (pdev->subsystem_device == 0x2134)) {
                if (supported_device == ATOM_DEVICE_DFP1_SUPPORT)
                        return false;
        }
 
 
        /* Funky macbooks */
-       if ((dev->pdev->device == 0x71C5) &&
-           (dev->pdev->subsystem_vendor == 0x106b) &&
-           (dev->pdev->subsystem_device == 0x0080)) {
+       if ((pdev->device == 0x71C5) &&
+           (pdev->subsystem_vendor == 0x106b) &&
+           (pdev->subsystem_device == 0x0080)) {
                if ((supported_device == ATOM_DEVICE_CRT1_SUPPORT) ||
                    (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
                        return false;
@@ -366,27 +367,27 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
        }
 
        /* ASUS HD 3600 XT board lists the DVI port as HDMI */
-       if ((dev->pdev->device == 0x9598) &&
-           (dev->pdev->subsystem_vendor == 0x1043) &&
-           (dev->pdev->subsystem_device == 0x01da)) {
+       if ((pdev->device == 0x9598) &&
+           (pdev->subsystem_vendor == 0x1043) &&
+           (pdev->subsystem_device == 0x01da)) {
                if (*connector_type == DRM_MODE_CONNECTOR_HDMIA) {
                        *connector_type = DRM_MODE_CONNECTOR_DVII;
                }
        }
 
        /* ASUS HD 3600 board lists the DVI port as HDMI */
-       if ((dev->pdev->device == 0x9598) &&
-           (dev->pdev->subsystem_vendor == 0x1043) &&
-           (dev->pdev->subsystem_device == 0x01e4)) {
+       if ((pdev->device == 0x9598) &&
+           (pdev->subsystem_vendor == 0x1043) &&
+           (pdev->subsystem_device == 0x01e4)) {
                if (*connector_type == DRM_MODE_CONNECTOR_HDMIA) {
                        *connector_type = DRM_MODE_CONNECTOR_DVII;
                }
        }
 
        /* ASUS HD 3450 board lists the DVI port as HDMI */
-       if ((dev->pdev->device == 0x95C5) &&
-           (dev->pdev->subsystem_vendor == 0x1043) &&
-           (dev->pdev->subsystem_device == 0x01e2)) {
+       if ((pdev->device == 0x95C5) &&
+           (pdev->subsystem_vendor == 0x1043) &&
+           (pdev->subsystem_device == 0x01e2)) {
                if (*connector_type == DRM_MODE_CONNECTOR_HDMIA) {
                        *connector_type = DRM_MODE_CONNECTOR_DVII;
                }
@@ -411,9 +412,9 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
         * with different crtcs which isn't possible on the hardware
         * side and leaves no crtcs for LVDS or VGA.
         */
-       if (((dev->pdev->device == 0x95c4) || (dev->pdev->device == 0x9591)) &&
-           (dev->pdev->subsystem_vendor == 0x1025) &&
-           (dev->pdev->subsystem_device == 0x013c)) {
+       if (((pdev->device == 0x95c4) || (pdev->device == 0x9591)) &&
+           (pdev->subsystem_vendor == 0x1025) &&
+           (pdev->subsystem_device == 0x013c)) {
                if ((*connector_type == DRM_MODE_CONNECTOR_DVII) &&
                    (supported_device == ATOM_DEVICE_DFP1_SUPPORT)) {
                        /* actually it's a DVI-D port not DVI-I */
@@ -425,9 +426,9 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
        /* XFX Pine Group device rv730 reports no VGA DDC lines
         * even though they are wired up to record 0x93
         */
-       if ((dev->pdev->device == 0x9498) &&
-           (dev->pdev->subsystem_vendor == 0x1682) &&
-           (dev->pdev->subsystem_device == 0x2452) &&
+       if ((pdev->device == 0x9498) &&
+           (pdev->subsystem_vendor == 0x1682) &&
+           (pdev->subsystem_device == 0x2452) &&
            (i2c_bus->valid == false) &&
            !(supported_device & (ATOM_DEVICE_TV_SUPPORT | ATOM_DEVICE_CV_SUPPORT))) {
                struct radeon_device *rdev = dev->dev_private;
@@ -435,11 +436,11 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
        }
 
        /* Fujitsu D3003-S2 board lists DVI-I as DVI-D and VGA */
-       if (((dev->pdev->device == 0x9802) ||
-            (dev->pdev->device == 0x9805) ||
-            (dev->pdev->device == 0x9806)) &&
-           (dev->pdev->subsystem_vendor == 0x1734) &&
-           (dev->pdev->subsystem_device == 0x11bd)) {
+       if (((pdev->device == 0x9802) ||
+            (pdev->device == 0x9805) ||
+            (pdev->device == 0x9806)) &&
+           (pdev->subsystem_vendor == 0x1734) &&
+           (pdev->subsystem_device == 0x11bd)) {
                if (*connector_type == DRM_MODE_CONNECTOR_VGA) {
                        *connector_type = DRM_MODE_CONNECTOR_DVII;
                        *line_mux = 0x3103;
index bb29cf0..500796d 100644 (file)
@@ -528,7 +528,7 @@ static bool legacy_read_disabled_bios(struct radeon_device *rdev)
        crtc_ext_cntl = RREG32(RADEON_CRTC_EXT_CNTL);
        fp2_gen_cntl = 0;
 
-       if (rdev->ddev->pdev->device == PCI_DEVICE_ID_ATI_RADEON_QY) {
+       if (rdev->pdev->device == PCI_DEVICE_ID_ATI_RADEON_QY) {
                fp2_gen_cntl = RREG32(RADEON_FP2_GEN_CNTL);
        }
 
@@ -565,7 +565,7 @@ static bool legacy_read_disabled_bios(struct radeon_device *rdev)
                (RADEON_CRTC_SYNC_TRISTAT |
                 RADEON_CRTC_DISPLAY_DIS)));
 
-       if (rdev->ddev->pdev->device == PCI_DEVICE_ID_ATI_RADEON_QY) {
+       if (rdev->pdev->device == PCI_DEVICE_ID_ATI_RADEON_QY) {
                WREG32(RADEON_FP2_GEN_CNTL, (fp2_gen_cntl & ~RADEON_FP2_ON));
        }
 
@@ -583,7 +583,7 @@ static bool legacy_read_disabled_bios(struct radeon_device *rdev)
                WREG32(RADEON_CRTC2_GEN_CNTL, crtc2_gen_cntl);
        }
        WREG32(RADEON_CRTC_EXT_CNTL, crtc_ext_cntl);
-       if (rdev->ddev->pdev->device == PCI_DEVICE_ID_ATI_RADEON_QY) {
+       if (rdev->pdev->device == PCI_DEVICE_ID_ATI_RADEON_QY) {
                WREG32(RADEON_FP2_GEN_CNTL, fp2_gen_cntl);
        }
        return r;
index ff21350..783a6b8 100644 (file)
@@ -894,13 +894,13 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct
 
        /* quirks */
        /* Radeon 7000 (RV100) */
-       if (((dev->pdev->device == 0x5159) &&
-           (dev->pdev->subsystem_vendor == 0x174B) &&
-           (dev->pdev->subsystem_device == 0x7c28)) ||
+       if (((rdev->pdev->device == 0x5159) &&
+           (rdev->pdev->subsystem_vendor == 0x174B) &&
+           (rdev->pdev->subsystem_device == 0x7c28)) ||
        /* Radeon 9100 (R200) */
-          ((dev->pdev->device == 0x514D) &&
-           (dev->pdev->subsystem_vendor == 0x174B) &&
-           (dev->pdev->subsystem_device == 0x7149))) {
+          ((rdev->pdev->device == 0x514D) &&
+           (rdev->pdev->subsystem_vendor == 0x174B) &&
+           (rdev->pdev->subsystem_device == 0x7149))) {
                /* vbios value is bad, use the default */
                found = 0;
        }
@@ -2221,20 +2221,21 @@ static bool radeon_apply_legacy_quirks(struct drm_device *dev,
                                       struct radeon_i2c_bus_rec *ddc_i2c,
                                       struct radeon_hpd *hpd)
 {
+       struct radeon_device *rdev = dev->dev_private;
 
        /* Certain IBM chipset RN50s have a BIOS reporting two VGAs,
           one with VGA DDC and one with CRT2 DDC. - kill the CRT2 DDC one */
-       if (dev->pdev->device == 0x515e &&
-           dev->pdev->subsystem_vendor == 0x1014) {
+       if (rdev->pdev->device == 0x515e &&
+           rdev->pdev->subsystem_vendor == 0x1014) {
                if (*legacy_connector == CONNECTOR_CRT_LEGACY &&
                    ddc_i2c->mask_clk_reg == RADEON_GPIO_CRT2_DDC)
                        return false;
        }
 
        /* X300 card with extra non-existent DVI port */
-       if (dev->pdev->device == 0x5B60 &&
-           dev->pdev->subsystem_vendor == 0x17af &&
-           dev->pdev->subsystem_device == 0x201e && bios_index == 2) {
+       if (rdev->pdev->device == 0x5B60 &&
+           rdev->pdev->subsystem_vendor == 0x17af &&
+           rdev->pdev->subsystem_device == 0x201e && bios_index == 2) {
                if (*legacy_connector == CONNECTOR_DVI_I_LEGACY)
                        return false;
        }
@@ -2244,22 +2245,24 @@ static bool radeon_apply_legacy_quirks(struct drm_device *dev,
 
 static bool radeon_apply_legacy_tv_quirks(struct drm_device *dev)
 {
+       struct radeon_device *rdev = dev->dev_private;
+
        /* Acer 5102 has non-existent TV port */
-       if (dev->pdev->device == 0x5975 &&
-           dev->pdev->subsystem_vendor == 0x1025 &&
-           dev->pdev->subsystem_device == 0x009f)
+       if (rdev->pdev->device == 0x5975 &&
+           rdev->pdev->subsystem_vendor == 0x1025 &&
+           rdev->pdev->subsystem_device == 0x009f)
                return false;
 
        /* HP dc5750 has non-existent TV port */
-       if (dev->pdev->device == 0x5974 &&
-           dev->pdev->subsystem_vendor == 0x103c &&
-           dev->pdev->subsystem_device == 0x280a)
+       if (rdev->pdev->device == 0x5974 &&
+           rdev->pdev->subsystem_vendor == 0x103c &&
+           rdev->pdev->subsystem_device == 0x280a)
                return false;
 
        /* MSI S270 has non-existent TV port */
-       if (dev->pdev->device == 0x5955 &&
-           dev->pdev->subsystem_vendor == 0x1462 &&
-           dev->pdev->subsystem_device == 0x0131)
+       if (rdev->pdev->device == 0x5955 &&
+           rdev->pdev->subsystem_vendor == 0x1462 &&
+           rdev->pdev->subsystem_device == 0x0131)
                return false;
 
        return true;
@@ -2413,9 +2416,9 @@ bool radeon_get_legacy_connector_info_from_bios(struct drm_device *dev)
                                /* RV100 board with external TDMS bit mis-set.
                                 * Actually uses internal TMDS, clear the bit.
                                 */
-                               if (dev->pdev->device == 0x5159 &&
-                                   dev->pdev->subsystem_vendor == 0x1014 &&
-                                   dev->pdev->subsystem_device == 0x029A) {
+                               if (rdev->pdev->device == 0x5159 &&
+                                   rdev->pdev->subsystem_vendor == 0x1014 &&
+                                   rdev->pdev->subsystem_device == 0x029A) {
                                        tmp &= ~(1 << 4);
                                }
                                if ((tmp >> 4) & 0x1) {
@@ -2707,9 +2710,9 @@ void radeon_combios_get_power_modes(struct radeon_device *rdev)
                /* boards with a thermal chip, but no overdrive table */
 
                /* Asus 9600xt has an f75375 on the monid bus */
-               if ((dev->pdev->device == 0x4152) &&
-                   (dev->pdev->subsystem_vendor == 0x1043) &&
-                   (dev->pdev->subsystem_device == 0xc002)) {
+               if ((rdev->pdev->device == 0x4152) &&
+                   (rdev->pdev->subsystem_vendor == 0x1043) &&
+                   (rdev->pdev->subsystem_device == 0xc002)) {
                        i2c_bus = combios_setup_i2c_bus(rdev, DDC_MONID, 0, 0);
                        rdev->pm.i2c_bus = radeon_i2c_lookup(rdev, &i2c_bus);
                        if (rdev->pm.i2c_bus) {
index 5445ef9..35e937d 100644 (file)
@@ -130,8 +130,7 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
                 * IGP chips to avoid image corruptions
                 */
                if (p->ring == R600_RING_TYPE_UVD_INDEX &&
-                   (i <= 0 || pci_find_capability(p->rdev->ddev->pdev,
-                                                  PCI_CAP_ID_AGP) ||
+                   (i <= 0 || pci_find_capability(p->rdev->pdev, PCI_CAP_ID_AGP) ||
                     p->rdev->family == CHIP_RS780 ||
                     p->rdev->family == CHIP_RS880)) {
 
index ebccaa5..2cbf14f 100644 (file)
@@ -1562,6 +1562,7 @@ int radeon_suspend_kms(struct drm_device *dev, bool suspend,
                       bool fbcon, bool freeze)
 {
        struct radeon_device *rdev;
+       struct pci_dev *pdev;
        struct drm_crtc *crtc;
        struct drm_connector *connector;
        int i, r;
@@ -1571,6 +1572,7 @@ int radeon_suspend_kms(struct drm_device *dev, bool suspend,
        }
 
        rdev = dev->dev_private;
+       pdev = to_pci_dev(dev->dev);
 
        if (dev->switch_power_state == DRM_SWITCH_POWER_OFF)
                return 0;
@@ -1636,14 +1638,14 @@ int radeon_suspend_kms(struct drm_device *dev, bool suspend,
 
        radeon_agp_suspend(rdev);
 
-       pci_save_state(dev->pdev);
+       pci_save_state(pdev);
        if (freeze && rdev->family >= CHIP_CEDAR && !(rdev->flags & RADEON_IS_IGP)) {
                rdev->asic->asic_reset(rdev, true);
-               pci_restore_state(dev->pdev);
+               pci_restore_state(pdev);
        } else if (suspend) {
                /* Shut down the device */
-               pci_disable_device(dev->pdev);
-               pci_set_power_state(dev->pdev, PCI_D3hot);
+               pci_disable_device(pdev);
+               pci_set_power_state(pdev, PCI_D3hot);
        }
 
        if (fbcon) {
@@ -1665,6 +1667,7 @@ int radeon_resume_kms(struct drm_device *dev, bool resume, bool fbcon)
 {
        struct drm_connector *connector;
        struct radeon_device *rdev = dev->dev_private;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct drm_crtc *crtc;
        int r;
 
@@ -1675,9 +1678,9 @@ int radeon_resume_kms(struct drm_device *dev, bool resume, bool fbcon)
                console_lock();
        }
        if (resume) {
-               pci_set_power_state(dev->pdev, PCI_D0);
-               pci_restore_state(dev->pdev);
-               if (pci_enable_device(dev->pdev)) {
+               pci_set_power_state(pdev, PCI_D0);
+               pci_restore_state(pdev);
+               if (pci_enable_device(pdev)) {
                        if (fbcon)
                                console_unlock();
                        return -1;
index 3a6feda..652af7a 100644 (file)
@@ -1317,7 +1317,7 @@ radeon_user_framebuffer_create(struct drm_device *dev,
 
        obj = drm_gem_object_lookup(file_priv, mode_cmd->handles[0]);
        if (obj ==  NULL) {
-               dev_err(&dev->pdev->dev, "No GEM object associated to handle 0x%08X, "
+               dev_err(dev->dev, "No GEM object associated to handle 0x%08X, "
                        "can't create framebuffer\n", mode_cmd->handles[0]);
                return ERR_PTR(-ENOENT);
        }
index e45d734..8193a2e 100644 (file)
@@ -342,14 +342,13 @@ static int radeon_pci_probe(struct pci_dev *pdev,
        if (ret)
                goto err_free;
 
-       dev->pdev = pdev;
 #ifdef __alpha__
        dev->hose = pdev->sysdata;
 #endif
 
        pci_set_drvdata(pdev, dev);
 
-       if (pci_find_capability(dev->pdev, PCI_CAP_ID_AGP))
+       if (pci_find_capability(pdev, PCI_CAP_ID_AGP))
                dev->agp = drm_agp_init(dev);
        if (dev->agp) {
                dev->agp->agp_mtrr = arch_phys_wc_add(
index fc42126..0b206b0 100644 (file)
@@ -290,7 +290,7 @@ static int radeonfb_create(struct drm_fb_helper *helper,
        DRM_INFO("fb depth is %d\n", fb->format->depth);
        DRM_INFO("   pitch is %d\n", fb->pitches[0]);
 
-       vga_switcheroo_client_fb_set(rdev->ddev->pdev, info);
+       vga_switcheroo_client_fb_set(rdev->pdev, info);
        return 0;
 
 out:
index b6b21d2..9418269 100644 (file)
@@ -651,7 +651,7 @@ int radeon_gem_va_ioctl(struct drm_device *dev, void *data,
        }
 
        if (args->offset < RADEON_VA_RESERVED_SIZE) {
-               dev_err(&dev->pdev->dev,
+               dev_err(dev->dev,
                        "offset 0x%lX is in reserved area 0x%X\n",
                        (unsigned long)args->offset,
                        RADEON_VA_RESERVED_SIZE);
@@ -665,7 +665,7 @@ int radeon_gem_va_ioctl(struct drm_device *dev, void *data,
         */
        invalid_flags = RADEON_VM_PAGE_VALID | RADEON_VM_PAGE_SYSTEM;
        if ((args->flags & invalid_flags)) {
-               dev_err(&dev->pdev->dev, "invalid flags 0x%08X vs 0x%08X\n",
+               dev_err(dev->dev, "invalid flags 0x%08X vs 0x%08X\n",
                        args->flags, invalid_flags);
                args->operation = RADEON_VA_RESULT_ERROR;
                return -EINVAL;
@@ -676,7 +676,7 @@ int radeon_gem_va_ioctl(struct drm_device *dev, void *data,
        case RADEON_VA_UNMAP:
                break;
        default:
-               dev_err(&dev->pdev->dev, "unsupported operation %d\n",
+               dev_err(dev->dev, "unsupported operation %d\n",
                        args->operation);
                args->operation = RADEON_VA_RESULT_ERROR;
                return -EINVAL;
index e543d99..314d066 100644 (file)
@@ -919,7 +919,7 @@ struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
        i2c->rec = *rec;
        i2c->adapter.owner = THIS_MODULE;
        i2c->adapter.class = I2C_CLASS_DDC;
-       i2c->adapter.dev.parent = &dev->pdev->dev;
+       i2c->adapter.dev.parent = dev->dev;
        i2c->dev = dev;
        i2c_set_adapdata(&i2c->adapter, i2c);
        mutex_init(&i2c->mutex);
index b8b7f62..84d0b1a 100644 (file)
@@ -314,7 +314,7 @@ int radeon_irq_kms_init(struct radeon_device *rdev)
        INIT_WORK(&rdev->audio_work, r600_audio_update_hdmi);
 
        rdev->irq.installed = true;
-       r = drm_irq_install(rdev->ddev, rdev->ddev->pdev->irq);
+       r = drm_irq_install(rdev->ddev, rdev->pdev->irq);
        if (r) {
                rdev->irq.installed = false;
                flush_delayed_work(&rdev->hotplug_work);
index 50cee48..7c360d3 100644 (file)
@@ -76,7 +76,7 @@ void radeon_driver_unload_kms(struct drm_device *dev)
        }
 
        radeon_acpi_fini(rdev);
-       
+
        radeon_modeset_fini(rdev);
        radeon_device_fini(rdev);
 
@@ -105,6 +105,7 @@ done_free:
  */
 int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
 {
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
        struct radeon_device *rdev;
        int r, acpi_status;
 
@@ -115,9 +116,9 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
        dev->dev_private = (void *)rdev;
 
        /* update BUS flag */
-       if (pci_find_capability(dev->pdev, PCI_CAP_ID_AGP)) {
+       if (pci_find_capability(pdev, PCI_CAP_ID_AGP)) {
                flags |= RADEON_IS_AGP;
-       } else if (pci_is_pcie(dev->pdev)) {
+       } else if (pci_is_pcie(pdev)) {
                flags |= RADEON_IS_PCIE;
        } else {
                flags |= RADEON_IS_PCI;
@@ -126,7 +127,7 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
        if ((radeon_runtime_pm != 0) &&
            radeon_has_atpx() &&
            ((flags & RADEON_IS_IGP) == 0) &&
-           !pci_is_thunderbolt_attached(dev->pdev))
+           !pci_is_thunderbolt_attached(pdev))
                flags |= RADEON_IS_PX;
 
        /* radeon_device_init should report only fatal error
@@ -135,9 +136,9 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
         * properly initialize the GPU MC controller and permit
         * VRAM allocation
         */
-       r = radeon_device_init(rdev, dev, dev->pdev, flags);
+       r = radeon_device_init(rdev, dev, pdev, flags);
        if (r) {
-               dev_err(&dev->pdev->dev, "Fatal error during GPU init\n");
+               dev_err(dev->dev, "Fatal error during GPU init\n");
                goto out;
        }
 
@@ -147,7 +148,7 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
         */
        r = radeon_modeset_init(rdev);
        if (r)
-               dev_err(&dev->pdev->dev, "Fatal error during modeset init\n");
+               dev_err(dev->dev, "Fatal error during modeset init\n");
 
        /* Call ACPI methods: require modeset init
         * but failure is not fatal
@@ -155,8 +156,7 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
        if (!r) {
                acpi_status = radeon_acpi_init(rdev);
                if (acpi_status)
-               dev_dbg(&dev->pdev->dev,
-                               "Error during ACPI methods call\n");
+               dev_dbg(dev->dev, "Error during ACPI methods call\n");
        }
 
        if (radeon_is_px(dev)) {
@@ -239,7 +239,7 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
 
        switch (info->request) {
        case RADEON_INFO_DEVICE_ID:
-               *value = dev->pdev->device;
+               *value = to_pci_dev(dev->dev)->device;
                break;
        case RADEON_INFO_NUM_GB_PIPES:
                *value = rdev->num_gb_pipes;
index e64fd0c..7fdb77d 100644 (file)
@@ -974,9 +974,9 @@ static void radeon_legacy_tmds_ext_mode_set(struct drm_encoder *encoder,
 
                /* XXX: these are oem specific */
                if (ASIC_IS_R300(rdev)) {
-                       if ((dev->pdev->device == 0x4850) &&
-                           (dev->pdev->subsystem_vendor == 0x1028) &&
-                           (dev->pdev->subsystem_device == 0x2001)) /* Dell Inspiron 8600 */
+                       if ((rdev->pdev->device == 0x4850) &&
+                           (rdev->pdev->subsystem_vendor == 0x1028) &&
+                           (rdev->pdev->subsystem_device == 0x2001)) /* Dell Inspiron 8600 */
                                fp2_gen_cntl |= R300_FP2_DVO_CLOCK_MODE_SINGLE;
                        else
                                fp2_gen_cntl |= RADEON_FP2_PAD_FLOP_EN | R300_FP2_DVO_CLOCK_MODE_SINGLE;
index 1739007..24ad124 100644 (file)
@@ -223,16 +223,15 @@ static void rs780_preset_starting_fbdiv(struct radeon_device *rdev)
 static void rs780_voltage_scaling_init(struct radeon_device *rdev)
 {
        struct igp_power_info *pi = rs780_get_pi(rdev);
-       struct drm_device *dev = rdev->ddev;
        u32 fv_throt_pwm_fb_div_range[3];
        u32 fv_throt_pwm_range[4];
 
-       if (dev->pdev->device == 0x9614) {
+       if (rdev->pdev->device == 0x9614) {
                fv_throt_pwm_fb_div_range[0] = RS780D_FVTHROTPWMFBDIVRANGEREG0_DFLT;
                fv_throt_pwm_fb_div_range[1] = RS780D_FVTHROTPWMFBDIVRANGEREG1_DFLT;
                fv_throt_pwm_fb_div_range[2] = RS780D_FVTHROTPWMFBDIVRANGEREG2_DFLT;
-       } else if ((dev->pdev->device == 0x9714) ||
-                  (dev->pdev->device == 0x9715)) {
+       } else if ((rdev->pdev->device == 0x9714) ||
+                  (rdev->pdev->device == 0x9715)) {
                fv_throt_pwm_fb_div_range[0] = RS880D_FVTHROTPWMFBDIVRANGEREG0_DFLT;
                fv_throt_pwm_fb_div_range[1] = RS880D_FVTHROTPWMFBDIVRANGEREG1_DFLT;
                fv_throt_pwm_fb_div_range[2] = RS880D_FVTHROTPWMFBDIVRANGEREG2_DFLT;
index 561c49d..a043e60 100644 (file)
@@ -602,7 +602,6 @@ static int cirrus_pci_probe(struct pci_dev *pdev,
 
        drm_mode_config_reset(dev);
 
-       dev->pdev = pdev;
        pci_set_drvdata(pdev, dev);
        ret = drm_dev_register(dev, 0);
        if (ret)
index 31e8b3d..b65f4b1 100644 (file)
@@ -138,8 +138,10 @@ void ttm_bo_move_to_lru_tail(struct ttm_buffer_object *bo,
 
        dma_resv_assert_held(bo->base.resv);
 
-       if (bo->pin_count)
+       if (bo->pin_count) {
+               ttm_bo_del_from_lru(bo);
                return;
+       }
 
        man = ttm_manager_type(bdev, mem->mem_type);
        list_move_tail(&bo->lru, &man->lru[bo->priority]);
index 42d401f..99e22be 100644 (file)
@@ -232,8 +232,8 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
                return ret;
 
        mmu_debug = V3D_READ(V3D_MMU_DEBUG_INFO);
-       dev->coherent_dma_mask =
-               DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH));
+       dma_set_mask_and_coherent(dev,
+               DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH)));
        v3d->va_width = 30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_VA_WIDTH);
 
        ident1 = V3D_READ(V3D_HUB_IDENT1);
index c886864..e714d53 100644 (file)
@@ -178,10 +178,7 @@ v3d_hub_irq(int irq, void *arg)
                };
                const char *client = "?";
 
-               V3D_WRITE(V3D_MMU_CTL,
-                         V3D_READ(V3D_MMU_CTL) & (V3D_MMU_CTL_CAP_EXCEEDED |
-                                                  V3D_MMU_CTL_PT_INVALID |
-                                                  V3D_MMU_CTL_WRITE_VIOLATION));
+               V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL));
 
                if (v3d->ver >= 41) {
                        axi_id = axi_id >> 5;
@@ -217,7 +214,7 @@ v3d_irq_init(struct v3d_dev *v3d)
                V3D_CORE_WRITE(core, V3D_CTL_INT_CLR, V3D_CORE_IRQS);
        V3D_WRITE(V3D_HUB_INT_CLR, V3D_HUB_IRQS);
 
-       irq1 = platform_get_irq(v3d_to_pdev(v3d), 1);
+       irq1 = platform_get_irq_optional(v3d_to_pdev(v3d), 1);
        if (irq1 == -EPROBE_DEFER)
                return irq1;
        if (irq1 > 0) {
index f3eac72..e534896 100644 (file)
@@ -51,7 +51,6 @@ static int vbox_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (IS_ERR(vbox))
                return PTR_ERR(vbox);
 
-       vbox->ddev.pdev = pdev;
        pci_set_drvdata(pdev, vbox);
        mutex_init(&vbox->hw_mutex);
 
@@ -109,15 +108,16 @@ static void vbox_pci_remove(struct pci_dev *pdev)
 static int vbox_pm_suspend(struct device *dev)
 {
        struct vbox_private *vbox = dev_get_drvdata(dev);
+       struct pci_dev *pdev = to_pci_dev(dev);
        int error;
 
        error = drm_mode_config_helper_suspend(&vbox->ddev);
        if (error)
                return error;
 
-       pci_save_state(vbox->ddev.pdev);
-       pci_disable_device(vbox->ddev.pdev);
-       pci_set_power_state(vbox->ddev.pdev, PCI_D3hot);
+       pci_save_state(pdev);
+       pci_disable_device(pdev);
+       pci_set_power_state(pdev, PCI_D3hot);
 
        return 0;
 }
@@ -125,8 +125,9 @@ static int vbox_pm_suspend(struct device *dev)
 static int vbox_pm_resume(struct device *dev)
 {
        struct vbox_private *vbox = dev_get_drvdata(dev);
+       struct pci_dev *pdev = to_pci_dev(dev);
 
-       if (pci_enable_device(vbox->ddev.pdev))
+       if (pci_enable_device(pdev))
                return -EIO;
 
        return drm_mode_config_helper_resume(&vbox->ddev);
index 631657f..b3ded68 100644 (file)
@@ -170,10 +170,12 @@ static void vbox_hotplug_worker(struct work_struct *work)
 
 int vbox_irq_init(struct vbox_private *vbox)
 {
+       struct pci_dev *pdev = to_pci_dev(vbox->ddev.dev);
+
        INIT_WORK(&vbox->hotplug_work, vbox_hotplug_worker);
        vbox_update_mode_hints(vbox);
 
-       return drm_irq_install(&vbox->ddev, vbox->ddev.pdev->irq);
+       return drm_irq_install(&vbox->ddev, pdev->irq);
 }
 
 void vbox_irq_fini(struct vbox_private *vbox)
index d68d9ba..f287797 100644 (file)
@@ -8,7 +8,9 @@
  *          Hans de Goede <hdegoede@redhat.com>
  */
 
+#include <linux/pci.h>
 #include <linux/vbox_err.h>
+
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_crtc_helper.h>
 #include <drm/drm_damage_helper.h>
@@ -30,6 +32,7 @@ void vbox_report_caps(struct vbox_private *vbox)
 
 static int vbox_accel_init(struct vbox_private *vbox)
 {
+       struct pci_dev *pdev = to_pci_dev(vbox->ddev.dev);
        struct vbva_buffer *vbva;
        unsigned int i;
 
@@ -41,7 +44,7 @@ static int vbox_accel_init(struct vbox_private *vbox)
        /* Take a command buffer for each screen from the end of usable VRAM. */
        vbox->available_vram_size -= vbox->num_crtcs * VBVA_MIN_BUFFER_SIZE;
 
-       vbox->vbva_buffers = pci_iomap_range(vbox->ddev.pdev, 0,
+       vbox->vbva_buffers = pci_iomap_range(pdev, 0,
                                             vbox->available_vram_size,
                                             vbox->num_crtcs *
                                             VBVA_MIN_BUFFER_SIZE);
@@ -106,6 +109,7 @@ bool vbox_check_supported(u16 id)
 
 int vbox_hw_init(struct vbox_private *vbox)
 {
+       struct pci_dev *pdev = to_pci_dev(vbox->ddev.dev);
        int ret = -ENOMEM;
 
        vbox->full_vram_size = inl(VBE_DISPI_IOPORT_DATA);
@@ -115,7 +119,7 @@ int vbox_hw_init(struct vbox_private *vbox)
 
        /* Map guest-heap at end of vram */
        vbox->guest_heap =
-           pci_iomap_range(vbox->ddev.pdev, 0, GUEST_HEAP_OFFSET(vbox),
+           pci_iomap_range(pdev, 0, GUEST_HEAP_OFFSET(vbox),
                            GUEST_HEAP_SIZE);
        if (!vbox->guest_heap)
                return -ENOMEM;
index f5a0667..0066a3c 100644 (file)
@@ -15,8 +15,9 @@ int vbox_mm_init(struct vbox_private *vbox)
        struct drm_vram_mm *vmm;
        int ret;
        struct drm_device *dev = &vbox->ddev;
+       struct pci_dev *pdev = to_pci_dev(dev->dev);
 
-       vmm = drm_vram_helper_alloc_mm(dev, pci_resource_start(dev->pdev, 0),
+       vmm = drm_vram_helper_alloc_mm(dev, pci_resource_start(pdev, 0),
                                       vbox->available_vram_size);
        if (IS_ERR(vmm)) {
                ret = PTR_ERR(vmm);
@@ -24,8 +25,8 @@ int vbox_mm_init(struct vbox_private *vbox)
                return ret;
        }
 
-       vbox->fb_mtrr = arch_phys_wc_add(pci_resource_start(dev->pdev, 0),
-                                        pci_resource_len(dev->pdev, 0));
+       vbox->fb_mtrr = arch_phys_wc_add(pci_resource_start(pdev, 0),
+                                        pci_resource_len(pdev, 0));
        return 0;
 }
 
index 27f13bd..a21dc3a 100644 (file)
@@ -54,7 +54,6 @@ static int virtio_gpu_pci_quirk(struct drm_device *dev, struct virtio_device *vd
        DRM_INFO("pci: %s detected at %s\n",
                 vga ? "virtio-vga" : "virtio-gpu-pci",
                 pname);
-       dev->pdev = pdev;
        if (vga)
                drm_fb_helper_remove_conflicting_pci_framebuffers(pdev,
                                                                  "virtiodrmfb");
index 9a9fe10..83a8d34 100644 (file)
@@ -1230,7 +1230,7 @@ int vmw_cmdbuf_set_pool_size(struct vmw_cmdbuf_man *man,
 
        /* 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;
@@ -1313,7 +1313,7 @@ struct vmw_cmdbuf_man *vmw_cmdbuf_man_create(struct vmw_private *dev_priv)
        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) {
@@ -1322,7 +1322,7 @@ struct vmw_cmdbuf_man *vmw_cmdbuf_man_create(struct vmw_private *dev_priv)
        }
 
        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) {
@@ -1387,7 +1387,7 @@ void vmw_cmdbuf_remove_pool(struct vmw_cmdbuf_man *man)
                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);
        }
 }
index 0008be0..1f3d675 100644 (file)
@@ -651,6 +651,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
        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)) {
@@ -658,7 +659,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
                return -ENOMEM;
        }
 
-       pci_set_master(dev->pdev);
+       pci_set_master(pdev);
 
        dev_priv->dev = dev;
        dev_priv->vmw_chipset = chipset;
@@ -687,9 +688,9 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long 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;
 
@@ -839,7 +840,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
 
        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) {
                /**
@@ -848,7 +849,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
 
                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;
@@ -856,7 +857,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
        }
 
        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;
@@ -1002,9 +1003,9 @@ out_no_fman:
                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:
@@ -1022,6 +1023,7 @@ out_err0:
 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);
@@ -1053,9 +1055,9 @@ static void vmw_driver_unload(struct drm_device *dev)
        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);
@@ -1408,7 +1410,7 @@ static int vmw_pm_freeze(struct device *kdev)
 
        vmw_fence_fifo_down(dev_priv->fman);
        __vmw_svga_disable(dev_priv);
-       
+
        vmw_release_device_late(dev_priv);
        return 0;
 }
@@ -1519,7 +1521,6 @@ static int vmw_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                goto err_pci_disable_device;
        }
 
-       dev->pdev = pdev;
        pci_set_drvdata(pdev, dev);
 
        ret = vmw_driver_load(dev, ent->driver_data);
index 4d60201..a244b6c 100644 (file)
@@ -638,7 +638,7 @@ static const struct fb_ops vmw_fb_ops = {
 
 int vmw_fb_init(struct vmw_private *vmw_priv)
 {
-       struct device *device = &vmw_priv->dev->pdev->dev;
+       struct device *device = vmw_priv->dev->dev;
        struct vmw_fb_par *par;
        struct fb_info *info;
        unsigned fb_width, fb_height;