1. 03 4月, 2015 1 次提交
    • P
      drm/panel: Add display timing support · 2938931f
      Philipp Zabel 提交于
      Many panel data sheets, additionally to typical values, list allowed
      ranges for timings such as hsync/vsync lengths, porches, and the pixel
      clock rate. These can be stored in a struct display_timing, to be used
      by an encoder mode_fixup callback to clamp user provided timing values
      or to validate workarounds for clock source limitations.
      
      This patch adds a new drm_panel_funcs callback that returns the panel's
      available display_timing entries.
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      2938931f
  2. 06 8月, 2014 2 次提交
    • A
      drm/panel: Provide convenience wrapper for .get_modes() · 7bf93c73
      Ajay Kumar 提交于
      Add a convenience wrapper for the struct drm_panel_funcs' .get_modes()
      function so that not every driver needs to check that the panel driver
      implements the function before calling it.
      Signed-off-by: NAjay Kumar <ajaykumar.rs@samsung.com>
      [treding: extract from larger patch, commit message]
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      7bf93c73
    • A
      drm/panel: add .prepare() and .unprepare() functions · 45527d43
      Ajay Kumar 提交于
      Panels often require an initialization sequence that consists of three
      steps: a) powering up the panel, b) starting transmission of video data
      and c) enabling the panel (e.g. turn on backlight). This is usually
      necessary to avoid visual glitches at the beginning of video data
      transmission.
      
      Similarly, the shutdown sequence is typically done in three steps as
      well: a) disable the panel (e.g. turn off backlight), b) cease video
      data transmission and c) power down the panel.
      
      Currently drivers can only implement .enable() and .disable() functions,
      which is not enough to implement the above sequences. This commit adds a
      second pair of functions, .prepare() and .unprepare() to allow more
      fine-grained control over when the above steps are performed.
      Signed-off-by: NAjay Kumar <ajaykumar.rs@samsung.com>
      [treding: rewrite changelog, add kerneldoc]
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      45527d43
  3. 18 12月, 2013 1 次提交
    • T
      drm: Add panel support · aead40ea
      Thierry Reding 提交于
      Add a very simple framework to register and lookup panels. Panel drivers
      can initialize a DRM panel and register it with the framework, allowing
      them to be retrieved and used by display drivers. Currently only support
      for DPMS and obtaining panel modes is provided. However it should be
      sufficient to enable a large number of panels. The framework should also
      be easily extensible to support more sophisticated kinds of panels such
      as DSI.
      
      The framework hasn't been tied into the DRM core, even though it should
      be easily possible to do so if that's what we want. In the current
      implementation, display drivers can simple make use of it to retrieve a
      panel, obtain its modes and control its DPMS mode.
      
      Note that this is currently only tested on systems that boot from a
      device tree. No glue code has been written yet for systems that use
      platform data, but it should be easy to add.
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      aead40ea