1. 03 3月, 2016 1 次提交
    • T
      drm/omap: HDMI: change enable/disable to avoid sync-losts · 4e4b53ce
      Tomi Valkeinen 提交于
      We occasionally see DISPC sync-lost errors when enabling and disabling
      HDMI. Sometimes we get only a few, which get handled (ignored) by the
      driver, but sometimes there's a flood of the errors which doesn't seem
      to stop.
      
      The HW team has root caused this to the order in which HDMI and DISPC
      are enabled/disabled. Currently we enable HDMI first, and then DISPC,
      and vice versa when disabling. HW team's suggestion is to do it the
      other way around.
      
      This patch changes the order, but this has two side effects as the pixel
      clock is produced by HDMI, and the clock is not running when we
      enable/disable DISPC:
      
      * When enabling DISPC first, we don't get vertical sync events
      * When disabling DISPC last, we don't get FRAMEDONE event
      
      At the moment we use both of those to verify that DISPC has been
      enabled/disabled properly. Thus this patch also needs to change the
      omapdrm and omapdss which handle the DISPC side.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      4e4b53ce
  2. 11 12月, 2015 1 次提交
    • V
      drm: Pass 'name' to drm_crtc_init_with_planes() · f9882876
      Ville Syrjälä 提交于
      Done with coccinelle for the most part. However, it thinks '...' is
      part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder
      in its place and got rid of it with sed afterwards.
      
      I didn't convert drm_crtc_init() since passing the varargs through
      would mean either cpp macros or va_list, and I figured we don't
      care about these legacy functions enough to warrant the extra pain.
      
      @@
      identifier dev, crtc, primary, cursor, funcs;
      @@
       int drm_crtc_init_with_planes(struct drm_device *dev,
                                     struct drm_crtc *crtc,
                                     struct drm_plane *primary, struct drm_plane *cursor,
                                     const struct drm_crtc_funcs *funcs
      +                              ,const char *name, int DOTDOTDOT
                                     )
      { ... }
      
      @@
      identifier dev, crtc, primary, cursor, funcs;
      @@
       int drm_crtc_init_with_planes(struct drm_device *dev,
                                     struct drm_crtc *crtc,
                                     struct drm_plane *primary, struct drm_plane *cursor,
                                     const struct drm_crtc_funcs *funcs
      +                              ,const char *name, int DOTDOTDOT
                                     );
      
      @@
      expression E1, E2, E3, E4, E5;
      @@
       drm_crtc_init_with_planes(E1, E2, E3, E4, E5
      +                          ,NULL
                                 )
      
      v2: Split crtc and plane changes apart
          Pass NULL for no-name instead of ""
          Leave drm_crtc_init() alone
      v3: Add ', or NULL...' to @name kernel doc (Jani)
          Annotate the function with __printf() attribute (Jani)
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1449670771-2751-1-git-send-email-ville.syrjala@linux.intel.com
      f9882876
  3. 19 10月, 2015 1 次提交
  4. 06 8月, 2015 1 次提交
  5. 13 6月, 2015 33 次提交
  6. 24 3月, 2015 3 次提交
    • T
      drm/omap: keep ref to old_fb · 223bfd69
      Tomi Valkeinen 提交于
      We store the fb being page-flipped to 'old_fb' field, but we don't
      increase the ref count of the fb when doing that. While I am not
      sure if it can cause problem in practice, it's still safer to keep a ref
      when storing a pointer to a fb.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      223bfd69
    • T
      drm/omap: only ignore DIGIT SYNC LOST for TV output · ef422283
      Tomi Valkeinen 提交于
      We need to ignore DIGIT SYNC LOST error when enabling/disabling TV
      output. The code does that, but it ignores the DIGI SYNC LOST when
      enabling any output. Normally this does no harm, but it could make us
      miss DIGIT SYNC LOST on some rare occasions.
      
      Fix the code to only ignore DIGIT SYNC LOST when enabling/disabling TV.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      ef422283
    • T
      drm/omap: fix race with error_irq · a36af73f
      Tomi Valkeinen 提交于
      omapdrm tries to avoid error floods by unregistering the error irq when
      an error happens, and then registering the error irq again later.
      However, the code is racy, as it sometimes tries to unregister the error
      irq when it's already unregistered, leading to WARN().
      
      Also, the code only registers the error irq again when something is done
      on that particular output, i.e. if only TV is used to flip the buffers,
      and LCD is showing a same buffer, an error on LCD will cause the LCD
      error irq to be unregistered and never registered again.
      
      To fix this, let's keep the error irqs always enabled and trust the
      DRM_ERROR_RATELIMITED to limit the flood.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      a36af73f