1. 16 Jun, 2015 6 commits
    • Laurent Pinchart's avatar
      drm: rcar-du: Convert rcar_du_encoders_init_one() return value to 0/<0 · 898a2f38
      Laurent Pinchart authored
      The function returns 1 on success, and either 0 or a negative error code
      on failure. As the 0 and negative values don't need to be differentiated
      by the caller, convert it to the usual scheme of returning 0 on success
      and a negative error code on failure.
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      898a2f38
    • Laurent Pinchart's avatar
      drm: rcar-du: Clarify error message when encoder initialization fails · 64549cdf
      Laurent Pinchart authored
      A failure to initialize an encoder currently prints an error message in
      the kernel log without mentioning which encoder failed to initialize. To
      help debugging initialization issues print the encoder DT node name.
      
      This requires moving the error message to the rcar_du_encoders_init_one
      function and refactoring it slightly.
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      64549cdf
    • Laurent Pinchart's avatar
      drm: rcar-du: Fix crash with groups that have less than 9 planes · d6aed574
      Laurent Pinchart authored
      Commit 917de180 ("drm: rcar-du: Implement universal plane support")
      made the number of planes per group dynamic, but didn't update all loops
      over the planes array, resulting in out-of-bound accesses on DU
      instances that have an odd number of CRTCs (such as the R8A7790). Fix
      it.
      
      Fixes: 917de180 ("drm: rcar-du: Implement universal plane support")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      d6aed574
    • Laurent Pinchart's avatar
      drm: rcar-du: Disable all planes when stopping the CRTC · 911316fe
      Laurent Pinchart authored
      The DSnPR plane configuration registers are updated on vblank, and no
      vblank will occur once the CRTC is stopped. We thus can't only disable
      planes right before starting the CRTC as it would start scanning out
      immediately from old frame buffers until the next vblank.
      
      Fix the problem by disabling all planes when stopping the CRTC and wait
      for the change to take effect. This increases the CRTC stop delay,
      especially when multiple CRTCs are stopped in one operation as we now
      wait for one vblank per CRTC. Whether this can be improved needs to be
      researched.
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      911316fe
    • Laurent Pinchart's avatar
      drm: rcar-du: Print the error value when DRM/KMS init fails · 6e0c6e18
      Laurent Pinchart authored
      This helps debugging probe failures.
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      6e0c6e18
    • Dave Airlie's avatar
      Merge tag 'omapdrm-4.2-atomic' of... · 284b2884
      Dave Airlie authored
      Merge tag 'omapdrm-4.2-atomic' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux into drm-next
      
      omapdrm atomic modesetting support
      
      Atomic modesetting support for omapdrm.
      
      " we've had issues with omapdrm for years,
      which we've not been able to fix properly (like warnings/crashes when unloading
      modules, page-flips tearing, race issues with fbs). All those problems seem to
      be gone after this rewrite of omapdrm for atomic modesetting, and the resulting
      code is much cleaner and more maintainable."
      
      * tag 'omapdrm-4.2-atomic' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (43 commits)
        drm: omapdrm: new vblank and event handling
        drm: omapdrm: merge omap_crtc_flush and omap_crtc_atomic_flush
        drm: omapdrm: add lock for fb pinning
        drm: omapdrm: if omap_plane_atomic_update fails, disable plane
        drm: omapdrm: inline omap_plane_setup into update/disable
        drm: omapdrm: omap_plane_setup() cannot fail, use WARN
        drm: omapdrm: Don't setup planes manually from CRTC .enable()/.disable()
        drm: omapdrm: Don't flush CRTC when enabling or disabling it
        drm: omapdrm: Move encoder setup to encoder operations
        drm: omapdrm: Simplify DSS power management
        drm: omapdrm: Remove nested PM get/sync when configuring encoders
        drm: omapdrm: Support unlinking page flip events prematurely
        drm: omapdrm: omap_crtc_flush() isn't called with modeset locked
        drm: omapdrm: Don't get/put dispc in omap_crtc_flush()
        drm: omapdrm: Make the omap_crtc_flush function static
        drm: omapdrm: Remove omap_plane enabled field
        drm: omapdrm: Remove omap_crtc enabled field
        drm: omapdrm: Move crtc info out of the crtc structure
        drm: omapdrm: Move plane info and win out of the plane structure
        drm: omapdrm: Switch crtc and plane set_property to atomic helpers
        ...
      284b2884
  2. 12 Jun, 2015 34 commits