1. 02 12月, 2011 2 次提交
    • T
      OMAPDSS: hide manager's enable/disable() · 7797c6da
      Tomi Valkeinen 提交于
      omap_overlay_manager struct contains enable() and disable() functions.
      However, these are only meant to be used from inside omapdss, and thus
      it's bad to expose the functions.
      
      This patch adds dss_mgr_enable() and dss_mgr_disable() functions to
      apply.c, which handle enabling and disabling the output.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7797c6da
    • T
      OMAPDSS: remove partial update from DSI · 5476e74a
      Tomi Valkeinen 提交于
      Partial update for manual update displays has never worked quite well:
      * The HW has limitations on the update area, and the x and width need to
        be even.
      * Showing a part of a scaled overlay causes artifacts.
      * Makes the management of dispc very complex
      
      Considering the above points and the fact that partial update is not
      used anywhere, this and the following patches remove the partial update
      support. This will greatly simplify the following re-write of the apply
      mechanism to get proper locking and additional features like fifo-merge.
      
      This patch removes the partial update from the dsi.c.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5476e74a
  2. 08 11月, 2011 1 次提交
    • T
      ARM: OMAP: HWMOD: Unify DSS resets for OMAPs · 13662dc5
      Tomi Valkeinen 提交于
      This patch adds a custom DSS reset function used on OMAPs from OMAP2
      forward.
      
      The function doesn't actually do a reset, it only waits for the reset to
      complete. The reason for this is that on OMAP4 there is no possibility
      to do a SW reset, and on OMAP2/3 doing a SW reset for dss_core resets
      all the other DSS modules also, thus breaking the HWMOD model where
      every DSS module is handled independently.
      
      This fixes the problem with DSS reset on OMAP4, caused by the fact that
      because there's no SW reset for dss_core on OMAP4, the HWMOD framework
      doesn't try to reset dss_core and thus the DSS clocks were never enabled
      at the same time. This causes causes the HWMOD reset to fail for
      dss_dispc and dss_rfbi.
      
      The common reset function will also allow us to fix another problem in
      the future: before doing a reset we need to disable DSS outputs, which
      are in some cases enabled by the bootloader, as otherwise DSS HW seems
      to get more or less stuck, requiring a power reset to recover.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      [paul@pwsan.com: modified to build arch/arm/mach-omap2/display.o
       unconditionally to avoid an error when !CONFIG_OMAP2_DSS]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      13662dc5
  3. 03 10月, 2011 3 次提交
    • A
      OMAPDSS: DISPC: zorder support for DSS overlays · 54128701
      Archit Taneja 提交于
      Add zorder support on OMAP4, this feature allows deciding the visibility order
      of the overlays based on the zorder value provided as an overlay info parameter
      or a sysfs attribute of the overlay object.
      
      Use the overlay cap OMAP_DSS_OVL_CAP_ZORDER to determine whether zorder is
      supported for the overlay or not. Use dss feature FEAT_ALPHA_FREE_ZORDER
      if the caps are not available.
      
      Ensure that all overlays that are enabled and connected to the same manager
      have different zorders. Swapping zorders of 2 enabled overlays currently
      requires disabling one of the overlays.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      54128701
    • A
      OMAPDSS: DISPC: VIDEO3 pipeline support · b8c095b4
      Archit Taneja 提交于
      Add support for VIDEO3 pipeline on OMAP4:
      - Add VIDEO3 pipeline information in dss_features and omapdss.h
      - Add VIDEO3 pipeline register coefficients in dispc.h
      - Create a new overlay structure corresponding to VIDEO3.
      - Make changes in dispc.c for VIDEO3
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      b8c095b4
    • 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
  4. 30 9月, 2011 16 次提交
  5. 25 7月, 2011 2 次提交
  6. 01 7月, 2011 3 次提交
  7. 23 5月, 2011 2 次提交
    • A
      OMAP: DSS2: Add support for NV12 format · 0d66cbb5
      Amber Jain 提交于
      Add the support for NV12 color format.
      Configure base address for UV component of NV12 color format.
      Change the way chroma scaling is handled for YUV formats on OMAP4 by enabling
      chroma-resampling for video pipeline and hence using FIR2 register set for
      scaling UV.
      Changes to _dispc_set_scaling(), because of the reason above, are:
      - call _dispc_set_scaling_common() to handle scaling for all color formats
        except for OMAP4 where it only handles scaling for RGB or Y-component
      - call _dispc_set_scaling_uv() for special handling required for UV
        component on OMAP4.
      - dispc_set_scaling_uv() also resets chroma-resampling bit for RGB color modes.
      
      Contains chroma scaling (_dispc_set_scaling_uv) design and implemented by
      Lajos Molnar <molnar@ti.com>
      Signed-off-by: NAmber Jain <amber@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0d66cbb5
    • A
      OMAP: DSS2: Add new color formats for OMAP4 · f20e4220
      Amber Jain 提交于
      Add new color formats supported by OMAP4: NV12, RGBA16, RGBX16,
      ARGB16_1555, XRGB16_1555.
      NV12 color format is defined here, its support in DSS will be added separately.
      Signed-off-by: NAmber Jain <amber@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      f20e4220
  8. 16 5月, 2011 1 次提交
    • A
      OMAP: DSS2: DSI: Get number of DSI data lanes using DSI_GNQ register · 75d7247c
      Archit Taneja 提交于
      On OMAP3, the DSI module has 2 data lanes. On OMAP4, DSI1 has 4 data lanes
      and DSI2 has 2 data lanes. Introduce function dsi_get_num_data_lanes() which
      returns the number of data lanes on the dsi interface, introduce function
      dsi_get_num_data_lanes_dssdev() which returns the number of data lanes used by
      the omap_dss_device connected to the lanes.
      
      Use the DSI_GNQ register on OMAP4 to get the number of data lanes, modify
      dsi.c to use the number of lanes and the extra data lanes on DSI1.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      75d7247c
  9. 13 5月, 2011 5 次提交
  10. 11 5月, 2011 5 次提交
    • T
      OMAP: DSS2: DSI: Add DSI pad muxing support · d1f5857e
      Tomi Valkeinen 提交于
      Add dsi_mux_pads function pointer to omap_dss_board_info, and use the
      function pointer in DSI code to configure the DSI pads either to normal
      DSI operation, or to pull down when in ULPS.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      d1f5857e
    • T
      OMAP: DSS2: DSI: add parameter to enter ulps on disable · 22d6d676
      Tomi Valkeinen 提交于
      Add parameter to omapdss_dsi_display_disable() which the panel driver
      can use to tell if the DSI lanes should be put to ULPS before disabling
      the interface.
      
      This can be used to skip ULPS entry in cases where the panel doesn't
      care about ULPS state, for example when the panel will be reset, or when
      the display interface will be enabled again right after the disable.
      
      This will speed up the operation considerably in cases where entering
      ULPS would fail with timeout, and the panel driver isn't even interested
      in entering ULPS.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      22d6d676
    • T
      OMAP: DSS2: DSI: add option to leave DSI lanes powered on · 2a89dc15
      Tomi Valkeinen 提交于
      The DSI pins are powered by VDDS_DSI. If VDDS_DSI is off, the DSI pins
      are floating even if they are pinmuxed to, say, safe mode and there's a
      pull down/up.
      
      This patch gives the panel drivers an option to leave the VDDS_DSI power
      enabled while the DSS itself is turned off. This can be used to keep the
      DSI lanes in a valid state while DSS is off, if the DSI pins are muxed
      for pull down (not done in this patch).
      
      There will be a slight power consumption increase (~100 uA?) when the
      VDDS_DSI is left on, but because this option is used when the panel is
      left on, the regulator consumption is negligible compared to panel power
      consumption.
      
      When the panel is fully turned off the VDDS_DSI is also turned off.
      
      As an added bonus this will give us faster start up time when starting
      up the DSS and the regulator is already enabled.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      2a89dc15
    • A
      OMAP: DSS2: HDMI: Use dss_device clock configuration for HDMI PLL parameters · 6cb07b25
      Archit Taneja 提交于
      Move some of the configurable HDMI PLL parameters to dssdev.clock struct.
      Cleanup the function hdmi_compute_pll() by using the parameters defined in the
      board file and do some cosmetic modifications.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      6cb07b25
    • A
      OMAP2PLUS: DSS2: Add clock sources to dss device clock configuration · e8881662
      Archit Taneja 提交于
      Add enum dss_clock_source in dssdev.clocks struct so that the clock sources can
      be specified in the board file.
      Replace hard coded clock sources in dsi.c, dpi.c and replace them with the new
      clock source members in dssdev.clocks. Modify the sdp4430_lcd_device struct in
      board-4430sdp.c to specify clock sources for DISPC_FCLK, LCD1_CLK and DSI1_FCLK.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      e8881662