Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 5 Sep 2013 17:17:26 +0000 (10:17 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 5 Sep 2013 17:17:26 +0000 (10:17 -0700)
Pull drm tree changes from Dave Airlie:
 "This is the main drm pull request, I have some overlap with sound and
  arm-soc, the sound patch is acked and may conflict based on -next
  reports but should be a trivial fixup, which I'll leave to you!

  Highlights:

   - new drivers:

     MSM driver from Rob Clark

   - non-drm:

     switcheroo and hdmi audio driver support for secondary GPU
     poweroff, so drivers can use runtime PM to poweroff the GPUs.  This
     can save 5 or 6W on some optimus laptops.

   - drm core:

     combined GEM and TTM VMA manager
     per-filp mmap permission tracking
     initial rendernode support (via a runtime enable for now, until we get api stable),
     remove old proc support,
     lots of cleanups of legacy code
     hdmi vendor infoframes and 4k modes
     lots of gem/prime locking and races fixes
     async pageflip scaffolding
     drm bridge objects

   - i915:

     Haswell PC8+ support and eLLC support, HDMI 4K support, initial
     per-process VMA pieces, watermark reworks, convert to generic hdmi
     infoframes, encoder reworking, fastboot support,

   - radeon:

     CIK PM support, remove 3d blit code in favour of DMA engines,
     Berlin GPU support, HDMI audio fixes

   - nouveau:

     secondary GPU power down support for optimus laptops, lots of
     fixes, use MSI, VP3 engine support

   - exynos:

     runtime pm support for g2d, DT support, remove non-DT,

   - tda998x i2c driver:

     lots of fixes for sync issues

   - gma500:

     lots of cleanups

   - rcar:

     add LVDS support, fbdev emulation,

   - tegra:

     just minor fixes"

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (684 commits)
  drm/exynos: Fix build error with exynos_drm_connector.c
  drm/exynos: Remove non-DT support in exynos_drm_fimd
  drm/exynos: Remove non-DT support in exynos_hdmi
  drm/exynos: Remove non-DT support in exynos_drm_g2d
  drm/exynos: Remove non-DT support in exynos_hdmiphy
  drm/exynos: Remove non-DT support in exynos_ddc
  drm/exynos: Make Exynos DRM drivers depend on OF
  drm/exynos: Consider fallback option to allocation fail
  drm/exynos: fimd: move platform data parsing to separate function
  drm/exynos: fimd: get signal polarities from device tree
  drm/exynos: fimd: replace struct fb_videomode with videomode
  drm/exynos: check a pixel format to a particular window layer
  drm/exynos: fix fimd pixel format setting
  drm/exynos: Add NULL pointer check
  drm/exynos: Remove redundant error messages
  drm/exynos: Add missing of.h header include
  drm/exynos: Remove redundant NULL check in exynos_drm_buf
  drm/exynos: add device tree support for rotator
  drm/exynos: Add missing includes
  drm/exynos: add runtime pm interfaces to g2d driver
  ...

1  2 
drivers/gpu/drm/drm_gem_cma_helper.c
drivers/gpu/drm/tilcdc/tilcdc_slave.c
drivers/staging/imx-drm/imx-drm-core.c
drivers/staging/imx-drm/ipuv3-crtc.c
sound/pci/hda/hda_intel.c

Simple merge
Simple merge
Simple merge
index c6c98298ac397c024d35cf55e5d85f3fe095decc,bf5e58ec1efe140e124f162a89f557424bde2a58..e54ebd5308491a30ff3dd725c39b8b2f1a0169bb
@@@ -2971,10 -2975,12 +2975,16 @@@ static int azx_runtime_suspend(struct d
        struct snd_card *card = dev_get_drvdata(dev);
        struct azx *chip = card->private_data;
  
+       if (chip->disabled)
+               return 0;
+       if (!(chip->driver_caps & AZX_DCAPS_PM_RUNTIME))
+               return 0;
 +      /* enable controller wake up event */
 +      azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) |
 +                STATESTS_INT_MASK);
 +
        azx_stop_chip(chip);
        azx_enter_link_reset(chip);
        azx_clear_irq_pending(chip);
@@@ -2987,31 -2993,17 +2997,37 @@@ static int azx_runtime_resume(struct de
  {
        struct snd_card *card = dev_get_drvdata(dev);
        struct azx *chip = card->private_data;
 +      struct hda_bus *bus;
 +      struct hda_codec *codec;
 +      int status;
  
+       if (chip->disabled)
+               return 0;
+       if (!(chip->driver_caps & AZX_DCAPS_PM_RUNTIME))
+               return 0;
        if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL)
                hda_display_power(true);
 +
 +      /* Read STATESTS before controller reset */
 +      status = azx_readw(chip, STATESTS);
 +
        azx_init_pci(chip);
        azx_init_chip(chip, 1);
 +
 +      bus = chip->bus;
 +      if (status && bus) {
 +              list_for_each_entry(codec, &bus->codec_list, list)
 +                      if (status & (1 << codec->addr))
 +                              queue_delayed_work(codec->bus->workq,
 +                                                 &codec->jackpoll_work, codec->jackpoll_interval);
 +      }
 +
 +      /* disable controller Wake Up event*/
 +      azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) &
 +                      ~STATESTS_INT_MASK);
 +
        return 0;
  }