Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 12 Jun 2014 18:32:30 +0000 (11:32 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 12 Jun 2014 18:32:30 +0000 (11:32 -0700)
Pull drm updates from Dave Airlie:
 "This is the main drm merge window pull request, changes all over the
  place, mostly normal levels of churn.

  Highlights:

  Core drm:
     More cleanups, fix race on connector/encoder naming, docs updates,
     object locking rework in prep for atomic modeset

  i915:
     mipi DSI support, valleyview power fixes, cursor size fixes,
     execlist refactoring, vblank improvements, userptr support, OOM
     handling improvements

  radeon:
     GPUVM tuning and large page size support, gart fixes, deep color
     HDMI support, HDMI audio cleanups

  nouveau:
     - displayport rework should fix lots of issues
     - initial gk20a support
     - gk110b support
     - gk208 fixes

  exynos:
     probe order fixes, HDMI changes, IPP consolidation

  msm:
     debugfs updates, misc fixes

  ast:
     ast2400 support, sync with UMS driver

  tegra:
     cleanups, hdmi + hw cursor for Tegra 124.

  panel:
     fixes existing panels add some new ones.

  ipuv3:
     moved from staging to drivers/gpu"

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (761 commits)
  drm/nouveau/disp/dp: fix tmds passthrough on dp connector
  drm/nouveau/dp: probe dpcd to determine connectedness
  drm/nv50-: trigger update after all connectors disabled
  drm/nv50-: prepare for attaching a SOR to multiple heads
  drm/gf119-/disp: fix debug output on update failure
  drm/nouveau/disp/dp: make use of postcursor when its available
  drm/g94-/disp/dp: take max pullup value across all lanes
  drm/nouveau/bios/dp: parse lane postcursor data
  drm/nouveau/dp: fix support for dpms
  drm/nouveau: register a drm_dp_aux channel for each dp connector
  drm/g94-/disp: add method to power-off dp lanes
  drm/nouveau/disp/dp: maintain link in response to hpd signal
  drm/g94-/disp: bash and wait for something after changing lane power regs
  drm/nouveau/disp/dp: split link config/power into two steps
  drm/nv50/disp: train PIOR-attached DP from second supervisor
  drm/nouveau/disp/dp: make use of existing output data for link training
  drm/gf119/disp: start removing direct vbios parsing from supervisor
  drm/nv50/disp: start removing direct vbios parsing from supervisor
  drm/nouveau/disp/dp: maintain receiver caps in response to hpd signal
  drm/nouveau/disp/dp: create subclass for dp outputs
  ...

18 files changed:
1  2 
MAINTAINERS
drivers/gpu/drm/drm_irq.c
drivers/gpu/drm/exynos/exynos_drm_ipp.c
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/udl/udl_main.c
drivers/gpu/ipu-v3/ipu-common.c
drivers/gpu/ipu-v3/ipu-dc.c
drivers/gpu/ipu-v3/ipu-di.c
drivers/gpu/ipu-v3/ipu-dmfc.c
drivers/gpu/ipu-v3/ipu-dp.c
drivers/gpu/ipu-v3/ipu-prv.h
drivers/staging/imx-drm/imx-hdmi.c
drivers/staging/imx-drm/ipuv3-crtc.c
drivers/staging/imx-drm/ipuv3-plane.c
drivers/staging/imx-drm/parallel-display.c
include/video/imx-ipu-v3.h
lib/Kconfig.debug
lib/Makefile

diff --cc MAINTAINERS
Simple merge
index ec5c3f4cdd011de07be08bc1b74a955fb4b3fcda,b565372a91f36cd90493720f3a12e484d435548d..0de123afdb346164d278bf801424629e2059b242
@@@ -864,11 -868,47 +868,47 @@@ static void drm_update_vblank_count(str
                vblanktimestamp(dev, crtc, tslot) = t_vblank;
        }
  
 -      smp_mb__before_atomic_inc();
 +      smp_mb__before_atomic();
        atomic_add(diff, &dev->vblank[crtc].count);
 -      smp_mb__after_atomic_inc();
 +      smp_mb__after_atomic();
  }
  
+ /**
+  * drm_vblank_enable - enable the vblank interrupt on a CRTC
+  * @dev: DRM device
+  * @crtc: CRTC in question
+  */
+ static int drm_vblank_enable(struct drm_device *dev, int crtc)
+ {
+       int ret = 0;
+       assert_spin_locked(&dev->vbl_lock);
+       spin_lock(&dev->vblank_time_lock);
+       if (!dev->vblank[crtc].enabled) {
+               /*
+                * Enable vblank irqs under vblank_time_lock protection.
+                * All vblank count & timestamp updates are held off
+                * until we are done reinitializing master counter and
+                * timestamps. Filtercode in drm_handle_vblank() will
+                * prevent double-accounting of same vblank interval.
+                */
+               ret = dev->driver->enable_vblank(dev, crtc);
+               DRM_DEBUG("enabling vblank on crtc %d, ret: %d\n", crtc, ret);
+               if (ret)
+                       atomic_dec(&dev->vblank[crtc].refcount);
+               else {
+                       dev->vblank[crtc].enabled = true;
+                       drm_update_vblank_count(dev, crtc);
+               }
+       }
+       spin_unlock(&dev->vblank_time_lock);
+       return ret;
+ }
  /**
   * drm_vblank_get - get a reference count on vblank events
   * @dev: DRM device
Simple merge
Simple merge
Simple merge
index 784a4a13eac3d0dd0ee8076777d4220542284523,9f1e5efa3acfa97600cecaa0ff19c807311ea680..2326c752d89b2086cb51234ef9b55ccda6bec87b
  #include <linux/types.h>
  #include <linux/errno.h>
  #include <linux/delay.h>
 +#include <linux/interrupt.h>
  #include <linux/io.h>
  
- #include "../imx-drm.h"
- #include "imx-ipu-v3.h"
+ #include <video/imx-ipu-v3.h>
  #include "ipu-prv.h"
  
  #define DC_MAP_CONF_PTR(n)    (0x108 + ((n) & ~0x1) * 2)
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc lib/Makefile
Simple merge