1. 09 5月, 2012 4 次提交
    • A
      OMAPDSS: APPLY: Remove display dependency from overlay and manager checks · 228b2134
      Archit Taneja 提交于
      In order to check the validity of overlay and manager info, there was a need to
      use the omap_dss_device struct to get the panel resolution. The manager's
      private data in APPLY now contains the manager timings. Hence, we don't need to
      rely on the display resolution any more.
      
      Pass the manager's timings in private data to dss_mgr_check(). Remove the need
      to pass omap_dss_device structs in the functions which check for the validity
      of overlay and manager parameters.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      228b2134
    • A
      OMAPDSS: MANAGER: Create a function to check manager timings · b917fa39
      Archit Taneja 提交于
      Create a function dss_mgr_check_timings() which wraps around the function
      dispc_mgr_timings_ok(). This is mainly a clean up to hide dispc functions
      from interface drivers.
      
      dss_mgr_check_timings() is added in the function dss_mgr_check(), it currently
      takes the timings maintained in the omap_dss_device struct. This would be later
      replaced by the timings stored in the manager's private data.
      
      Make dss_mgr_check_timings() and dispc_mgr_timings_ok() take a const
      omap_video_timings pointer since these functions just check the timings.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      b917fa39
    • A
      OMAPDSS: APPLY: Add manager timings as extra_info in private data · 45324a26
      Archit Taneja 提交于
      DISPC manager size and DISPC manager blanking parameters(for LCD managers)
      follow the shadow register programming model. Currently, they are programmed
      directly by the interface drivers.
      
      To configure manager timings using APPLY, there is a need to introduce extra
      info flags for managers, similar to what is done for overlays. This is needed
      because timings aren't a part of overlay_manager_info struct configured by a
      user of DSS, they are configured internally by the interface or panel drivers.
      
      Add dirty and shadow_dirty extra_info flags for managers, update these flags
      at the appropriate places. Rewrite the function extra_info_update_ongoing()
      slightly as checking for manager's extra_info flags can simplify the code a bit.
      
      Create function dss_mgr_set_timings() which applies the new manager timings to
      extra_info.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      45324a26
    • A
      OMAPDSS: DISPC: Remove Fake VSYNC support · 408d9dbb
      Archit Taneja 提交于
      Fake VSYNC support is a hack and has some bugs in it. It isn't used by any user
      of DSS. Remove Fake VSYNC support. For DSI command mode and RFBI panels, a user
      of DSS should wait for the completion of a frame by using the panel driver's
      sync op.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      408d9dbb
  2. 03 5月, 2012 1 次提交
  3. 23 4月, 2012 5 次提交
    • A
      OMAPDSS: DISPC: Clean up manager timing/size functions · 8f366162
      Archit Taneja 提交于
      Clean up the DISPC manager timings related function by:
      
      - Create a common function to set size for LCD and TV.
      - Create a common function to check timings for LCD and TV.
      - Add dss params to get the range of manager size.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      8f366162
    • A
      OMAPDSS: DISPC: Use a common function to set manager timings · c51d921a
      Archit Taneja 提交于
      Currently, a LCD manager's timings is set by dispc_mgr_set_lcd_timings() and TV
      manager's timings is set by dispc_set_digit_size(). Use a common function called
      dispc_mgr_set_timings() which sets timings for both type of managers.
      
      We finally want the interface drivers to use an overlay manager function to
      configure it's timings, having a common DISPC function would make things
      cleaner.
      
      For LCD managers, dispc_mgr_set_timings() sets LCD size and blanking values, for
      TV manager, it sets only the TV size since blanking values don't exist for TV.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      c51d921a
    • A
      OMAPDSS: DISPC/RFBI: Use dispc_mgr_set_lcd_timings() for setting lcd size · e5c09e06
      Archit Taneja 提交于
      The RFBI driver uses dispc_mgr_set_lcd_size() to set the width and height of
      the LCD manager. Replace this to use dispc_mgr_set_lcd_timings(), pass dummy
      blanking parameters like done in the DSI driver.
      
      This prevents the need to export dispc_mgr_set_lcd_size(), and use a common
      function to set lcd timings.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      e5c09e06
    • T
      OMAPDSS: DSI: remove option to use pck for DSI PLL clkin · b6e695ab
      Tomi Valkeinen 提交于
      For some OMAP versions the TRM says that the pixel clock from DISPC can
      be used as an input clock for DSI PLL, instead of the default, which is
      sysclk.  For some OMAP versions the bits affecting this are marked as
      reserved.  This feature has never been tested, so it's unknown if the HW
      even works, and has never been used.
      
      To clean things up, this patch removes the functionality. This should
      not affect any board.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      b6e695ab
    • T
      OMAPDSS: Ensure OPP100 when DSS is operational · a8081d31
      Tomi Valkeinen 提交于
      Most of the DSS clocks have restrictions on their frequency based on the
      OPP in use. For example, maximum frequency for a clock may be 180MHz in
      OPP100, but 90MHz in OPP50. This means that when a high enough pixel
      clock or function clock is required, we need to use OPP100.
      
      However, there's currently no way in the PM framework to make that kind
      of request. The closest we get is to ask for very high bus throughput
      from the PM framework, which should effectively force OPP100.
      
      This patch is a simple version for handling the problem. Instead of
      asking for OPP100 only when needed, this patch asks for OPP100 whenever
      DSS is active. This obviously is not an optimal solution for cases with
      small displays where OPP50 would work just fine. However, a proper
      solution is a complex one, and this patch is a short term solution for
      the problem.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      a8081d31
  4. 25 1月, 2012 1 次提交
  5. 13 1月, 2012 1 次提交
  6. 02 1月, 2012 2 次提交
  7. 02 12月, 2011 19 次提交
  8. 03 10月, 2011 1 次提交
    • A
      OMAPDSS/OMAP_VOUT: Fix incorrect OMAP3-alpha compatibility setting · 11354dd5
      Archit Taneja 提交于
      On OMAP3, in order to enable alpha blending for LCD and TV managers, we needed
      to set LCDALPHABLENDERENABLE/TVALPHABLENDERENABLE bits in DISPC_CONFIG. On
      OMAP4, alpha blending is always enabled by default, if the above bits are set,
      we switch to an OMAP3 compatibility mode where the zorder values in the pipeline
      attribute registers are ignored and a fixed priority is configured.
      
      Rename the manager_info member "alpha_enabled" to "partial_alpha_enabled" for
      more clarity. Introduce two dss_features FEAT_ALPHA_FIXED_ZORDER and
      FEAT_ALPHA_FREE_ZORDER which represent OMAP3-alpha compatibility mode and OMAP4
      alpha mode respectively. Introduce an overlay cap for ZORDER. The DSS2 user is
      expected to check for the ZORDER cap, if an overlay doesn't have this cap, the
      user is expected to set the parameter partial_alpha_enabled. If the overlay has
      ZORDER cap, the DSS2 user can assume that alpha blending is already enabled.
      
      Don't support OMAP3 compatibility mode for now. Trying to read/write to
      alpha_blending_enabled sysfs attribute issues a warning for OMAP4 and does not
      set the LCDALPHABLENDERENABLE/TVALPHABLENDERENABLE bits.
      
      Change alpha_enabled to partial_alpha_enabled in the omap_vout driver. Use
      overlay cap "OMAP_DSS_OVL_CAP_GLOBAL_ALPHA" to check if overlay supports alpha
      blending or not. Replace this with checks for VIDEO1 pipeline.
      
      Cc: linux-media@vger.kernel.org
      Cc: Lajos Molnar <molnar@ti.com>
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Acked-by: NVaibhav Hiremath <hvaibhav@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      11354dd5
  9. 30 9月, 2011 6 次提交