Merge branch 'upstream' into bugfix-video
authorLen Brown <len.brown@intel.com>
Mon, 4 Jun 2012 04:35:19 +0000 (00:35 -0400)
committerLen Brown <len.brown@intel.com>
Mon, 4 Jun 2012 04:35:19 +0000 (00:35 -0400)
Update bugfix-video branch to 2.5-rc1
so I don't have to again resolve the
conflict in these patches vs. upstream.

Conflicts:
drivers/gpu/drm/gma500/psb_drv.c

text conflict: add comment vs delete neighboring line

keep just this:
/* igd_opregion_init(&dev_priv->opregion_dev); */
/* acpi_video_register(); */

Signed-off-by: Len Brown <len.brown@intel.com>
1  2 
drivers/gpu/drm/gma500/psb_drv.c

@@@ -79,6 -79,14 +79,14 @@@ static DEFINE_PCI_DEVICE_TABLE(pciidlis
        { 0x8086, 0x0be5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long) &cdv_chip_ops},
        { 0x8086, 0x0be6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long) &cdv_chip_ops},
        { 0x8086, 0x0be7, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long) &cdv_chip_ops},
+       { 0x8086, 0x0be8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long) &cdv_chip_ops},
+       { 0x8086, 0x0be9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long) &cdv_chip_ops},
+       { 0x8086, 0x0bea, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long) &cdv_chip_ops},
+       { 0x8086, 0x0beb, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long) &cdv_chip_ops},
+       { 0x8086, 0x0bec, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long) &cdv_chip_ops},
+       { 0x8086, 0x0bed, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long) &cdv_chip_ops},
+       { 0x8086, 0x0bee, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long) &cdv_chip_ops},
+       { 0x8086, 0x0bef, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long) &cdv_chip_ops},
  #endif
        { 0, }
  };
@@@ -144,10 -152,6 +152,6 @@@ static void psb_lastclose(struct drm_de
        return;
  }
  
- static void psb_do_takedown(struct drm_device *dev)
- {
- }
  static int psb_do_init(struct drm_device *dev)
  {
        struct drm_psb_private *dev_priv = dev->dev_private;
        dev_priv->gatt_free_offset = pg->mmu_gatt_start +
            (stolen_gtt << PAGE_SHIFT) * 1024;
  
-       if (1 || drm_debug) {
-               uint32_t core_id = PSB_RSGX32(PSB_CR_CORE_ID);
-               uint32_t core_rev = PSB_RSGX32(PSB_CR_CORE_REVISION);
-               DRM_INFO("SGX core id = 0x%08x\n", core_id);
-               DRM_INFO("SGX core rev major = 0x%02x, minor = 0x%02x\n",
-                        (core_rev & _PSB_CC_REVISION_MAJOR_MASK) >>
-                        _PSB_CC_REVISION_MAJOR_SHIFT,
-                        (core_rev & _PSB_CC_REVISION_MINOR_MASK) >>
-                        _PSB_CC_REVISION_MINOR_SHIFT);
-               DRM_INFO
-                   ("SGX core rev maintenance = 0x%02x, designer = 0x%02x\n",
-                    (core_rev & _PSB_CC_REVISION_MAINTENANCE_MASK) >>
-                    _PSB_CC_REVISION_MAINTENANCE_SHIFT,
-                    (core_rev & _PSB_CC_REVISION_DESIGNER_MASK) >>
-                    _PSB_CC_REVISION_DESIGNER_SHIFT);
-       }
        spin_lock_init(&dev_priv->irqmask_lock);
        spin_lock_init(&dev_priv->lock_2d);
  
        PSB_WSGX32(pg->gatt_start, PSB_CR_BIF_TWOD_REQ_BASE);
        return 0;
  out_err:
-       psb_do_takedown(dev);
        return ret;
  }
  
@@@ -214,18 -199,16 +199,16 @@@ static int psb_driver_unload(struct drm
  
        /* Kill vblank etc here */
  
-       gma_backlight_exit(dev);
-       psb_modeset_cleanup(dev);
  
        if (dev_priv) {
-               psb_lid_timer_takedown(dev_priv);
-               gma_intel_opregion_exit(dev);
+               if (dev_priv->backlight_device)
+                       gma_backlight_exit(dev);
+               psb_modeset_cleanup(dev);
  
                if (dev_priv->ops->chip_teardown)
                        dev_priv->ops->chip_teardown(dev);
-               psb_do_takedown(dev);
  
+               psb_intel_opregion_fini(dev);
  
                if (dev_priv->pf_pd) {
                        psb_mmu_free_pagedir(dev_priv->pf_pd);
                }
                psb_gtt_takedown(dev);
                if (dev_priv->scratch_page) {
+                       set_pages_wb(dev_priv->scratch_page, 1);
                        __free_page(dev_priv->scratch_page);
                        dev_priv->scratch_page = NULL;
                }
                        dev_priv->sgx_reg = NULL;
                }
  
+               /* Destroy VBT data */
+               psb_intel_destroy_bios(dev);
                kfree(dev_priv);
                dev->dev_private = NULL;
-               /*destroy VBT data*/
-               psb_intel_destroy_bios(dev);
        }
        gma_power_uninit(dev);
        return 0;
  }
  
@@@ -290,11 -272,6 +272,6 @@@ static int psb_driver_load(struct drm_d
  
        pci_set_master(dev->pdev);
  
-       if (!IS_PSB(dev)) {
-               if (pci_enable_msi(dev->pdev))
-                       dev_warn(dev->dev, "Enabling MSI failed!\n");
-       }
        dev_priv->num_pipe = dev_priv->ops->pipes;
  
        resource_start = pci_resource_start(dev->pdev, PSB_MMIO_RESOURCE);
        if (!dev_priv->sgx_reg)
                goto out_err;
  
+       psb_intel_opregion_setup(dev);
        ret = dev_priv->ops->chip_setup(dev);
        if (ret)
                goto out_err;
        PSB_WSGX32(0x20000000, PSB_CR_PDS_EXEC_BASE);
        PSB_WSGX32(0x30000000, PSB_CR_BIF_3D_REQ_BASE);
  
 -      acpi_video_register();
 +/*    igd_opregion_init(&dev_priv->opregion_dev); */
 +/*    acpi_video_register(); */
-       if (dev_priv->lid_state)
-               psb_lid_timer_init(dev_priv);
  
        ret = drm_vblank_init(dev, dev_priv->num_pipe);
        if (ret)
        PSB_WVDC32(0x00000000, PSB_INT_ENABLE_R);
        PSB_WVDC32(0xFFFFFFFF, PSB_INT_MASK_R);
        spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
-       if (IS_PSB(dev) && drm_core_check_feature(dev, DRIVER_MODESET))
-               drm_irq_install(dev);
+       drm_irq_install(dev);
  
        dev->vblank_disable_allowed = 1;
  
@@@ -619,7 -595,7 +596,7 @@@ static const struct dev_pm_ops psb_pm_o
        .runtime_idle = psb_runtime_idle,
  };
  
- static struct vm_operations_struct psb_gem_vm_ops = {
+ static const struct vm_operations_struct psb_gem_vm_ops = {
        .fault = psb_gem_fault,
        .open = drm_gem_vm_open,
        .close = drm_gem_vm_close,