1. 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
  2. 30 9月, 2011 19 次提交
    • T
      OMAPDSS: remove vaddr from overlay info · 212b0d50
      Tomi Valkeinen 提交于
      overlay_info struct, used to configure overlays, currently includes both
      physical and virtual addresses for the pixels. The vaddr was added to
      support more exotic configurations where CPU would be used to update a
      display, but it is not currently used and there has been no interest in
      the feature. Using CPU to update a screen is also less interesting now
      that OMAP4 has two LCD outputs.
      
      This patch removes the vaddr field, and modifies the users of omapdss
      accordingly. This makes the use of omapdss a bit simpler, as the user
      doesn't need to think if it needs to give the vaddr.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      212b0d50
    • T
      OMAPDSS: Add N800 panel driver · 562a0606
      Tomi Valkeinen 提交于
      This is a driver for N800's display, ported from the old omapfb. This is
      a slightly lighter version of the driver as not all features of the old
      driver can be ported without big changes to DSS2, and also because some
      of the HW features used in the old driver are unclear (e.g. the power
      management part).
      
      That said, the new driver works fine for basic use.
      
      Architecturally the driver is not as neat as it could be. N800's display
      HW consists of a display buffer chip and a panel, and ideally they would
      be represented by separate, independent drivers. This is not currently
      possible, and this driver contains both buffer chip and panel driver.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      562a0606
    • T
      OMAPDSS: Taal: remove external backlight support · bb36dbfd
      Tomi Valkeinen 提交于
      Taal panel driver supports two kinds of backlight control: 1) using DSI
      commands sent to the panel to control the backlight, 2) calling function
      pointers going to the board file to control the backlight.
      
      The second option is a bit hacky, and will no longer be needed when the
      PWM driver supports the backlight features. After that we can use the
      standard PWM backlight driver.
      
      This patch removes the second backlight control mechanism, and adds a
      boolean field, use_dsi_backlight, to nokia_dsi_panel_data which the
      board file can use to inform whether the panel driver should use DSI
      commands to control the backlight.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      bb36dbfd
    • T
      OMAP: DSS2: add panel-dvi driver · ba2eac9e
      Tomi Valkeinen 提交于
      We have currently panel-generic-dpi driver, which is a combined driver
      for dummy panels and also for DVI output.
      
      The aim is to split the panel-generic-dpi into two, one for fixed size
      dummy panels connected via DPI, and the other (this) for variable
      resolution output which supports DDC channel (in practice a DVI framer
      chip connected to DPI output).
      
      Original i2c code by: Ricardo Salveti de Araujo
      <ricardo.salveti@canonical.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      ba2eac9e
    • T
      OMAP: DSS2: add detect() to omap_dss_driver struct · df4769c9
      Tomi Valkeinen 提交于
      detect() can be used to probe if the display is connected.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      df4769c9
    • T
      OMAP: DSS2: add read_edid() to omap_dss_driver struct · 3d5e0ef7
      Tomi Valkeinen 提交于
      read_edid() can be used to get the EDID information from the display.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      3d5e0ef7
    • T
      OMAP: DSS2: DISPC: Add missing IRQ definitions · 7f6f3c4b
      Tomi Valkeinen 提交于
      Add IRQ definitions for missing OMAP4 IRQs: FRAMEDONEWB, FRAMEDONETV,
      WBBUFFEROVERFLOW.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7f6f3c4b
    • T
      OMAP: DSS2: DSI: Add comment about regn · c90a78ec
      Tomi Valkeinen 提交于
      regn divider is one greater than the REGN divider in TRM. Add a comment
      to point this out.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      c90a78ec
    • T
      OMAP: DSS2: HDMI: change regn definition · b44e4582
      Tomi Valkeinen 提交于
      regn divider is currently programmed to the registers without change,
      but when calculating clock frequencies it is used as regn+1.
      
      To make this similar to how DSI handles the dividers this patch changes
      the regn value to be used as such for calculations, but the value
      programmed to registers is regn-1.
      
      This simplifies the clock frequency calculations, makes it similar to
      DSI, and also allows us to use regn value 0 as undefined.
      
      Cc: Mythri P K <mythripk@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      b44e4582
    • A
      OMAP: DSS2: DSI Video mode support · 8af6ff01
      Archit Taneja 提交于
      Add initial support for DSI video mode panels:
      - Add a new structure omap_dss_dsi_videomode_data in the member "panel" in
        omap_dss_device struct. This allows panel driver to configure dsi video_mode
        specific parameters.
      - Configure basic DSI video mode timing parameters: HBP, HFP, HSA, VBP, VFP, VSA,
        TL and VACT.
      - Configure DSI protocol engine registers for video_mode support.
      - Introduce functions dsi_video_mode_enable() and dsi_video_mode_disable() which
        enable/disable video mode for a given virtual channel and a given pixel format
        type.
      
      Things left for later
      - Add functions to check for errors in video mode timings provided by panel.
      - Configure timing registers required  for command mode interleaving.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      8af6ff01
    • A
      OMAP: DSS2: Create an enum for DSI pixel formats · a3b3cc2b
      Archit Taneja 提交于
      Currently, DSI pixel info is only represented by the pixel size in bits using
      the pixel_size parameter in omap_dss_device struct's ctrl member.
      
      This is not sufficient information for DSI video mode usage, as two of the
      supported formats(RGB666 loosely packed, and RGB888) have the same pixel
      container size, but different data_type values for the video mode packet header.
      
      Create enum "omap_dss_dsi_pixel_format" which describes the pixel data format
      the panel is configured for. Create helper function dsi_get_pixel_size() which
      returns the pixel size of the given pixel format.
      
      Modify functions omapdss_default_get_recommended_bpp() and dss_use_replication()
      to use dsi_get_pixel_size().
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      a3b3cc2b
    • A
      OMAP: DSS2: DSI: Introduce generic read functions · b3b89c05
      Archit Taneja 提交于
      Introduce read functions which use generic Processor-to-Peripheral
      transaction types. These are needed by some devices which may not support
      corresponding DCS commands.
      
      Add function dsi_vc_generic_send_read_request() which can send
      a short packet with 0, 1 or 2 bytes of request data and the corresponding
      generic data type.
      
      Rename function dsi_vc_dcs_read_rx_fifo() to dsi_vc_read_rx_fifo() and modify
      it to take the enum "dss_dsi_content_type" as an argument to use either DCS
      or GENERIC Peripheral-to-Processor transaction types while parsing data read
      from the device.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      b3b89c05
    • A
      OMAP: DSS2: DSI: Remove functions dsi_vc_dcs_read_1() and dsi_vc_dcs_read_2() · 5c716a04
      Archit Taneja 提交于
      Remove functions dsi_vc_dcs_read_1() and dsi_vc_dcs_read_2(), these are used
      when the panel is expected to return 1 and 2 bytes respecitvely. This was manily
      used for debugging purposes. These functions should be implemented in the panel
      driver if needed.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5c716a04
    • A
      OMAP: DSS2: DSI: Introduce generic write functions · 6ff8aa31
      Archit Taneja 提交于
      Intoduce enum "dss_dsi_content_type" to differentiate between DCS and generic
      content types.
      
      Introduce short and long packet write functions which use generic
      Processor-to-Peripheral transaction types. These are needed by some devices
      which may not support corresponding DCS commands. Create common write functions
      which allow code reuse between DCS and generic write functions.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      6ff8aa31
    • A
      OMAP: DSS2: Create enum for DSI operation modes · 7e951ee9
      Archit Taneja 提交于
      Create an enum for DSI operation modes, use this to set the capabilities of the
      device in dsi_init_display().
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7e951ee9
    • T
      OMAP: DSS2: Add GLOBAL_ALPHA & PRE_MULT_ALPHA to ovl caps · f6dc8150
      Tomi Valkeinen 提交于
      Add OMAP_DSS_OVL_CAP_GLOBAL_ALPHA and OMAP_DSS_OVL_CAP_PRE_MULT_ALPHA to
      overlay capabilities. Use these instead of FEAT_GLOBAL_ALPHA,
      FEAT_GLOBAL_ALPHA_VID1 and FEAT_PRE_MULT_ALPHA in code.
      
      Remove FEAT_GLOBAL_ALPHA_VID1 and FEAT_PRE_MULT_ALPHA which are no
      longer used. FEAT_GLOBAL_ALPHA is still used to decide if the HW has
      global alpha register.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NArchit Taneja <archit@ti.com>
      f6dc8150
    • T
      OMAP: DSS2: Remove support for non-DISPC overlays · 4a9e78ab
      Tomi Valkeinen 提交于
      Remove support for non-DISPC overlays and overlay managers.
      
      The support to possibly have non-DISPC overlays and managers was made to
      make it possible to use CPU and/or sDMA to update RFBI or DSI command
      mode displays. It is ok to remove the support, because:
      
      - No one has used the feature.
      - Display update without DISPC is very slow, so it is debatable if the
        update would even be usable.
      - Removal cleans up code.
      - If such a feature is needed later, it is better implemented outside
        omapdss driver.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NArchit Taneja <archit@ti.com>
      4a9e78ab
    • T
      OMAP: DSS2: Handle manager change in apply · 8fa8031c
      Tomi Valkeinen 提交于
      Currently when changing the manager of an overlay, set_manager() directly
      calls dispc to set the overlay's destination.
      
      Change this to be more in line with other overlay configurations, and
      this will also remove the need to have dispc clocks enabled when calling
      set_manager().
      
      A new field is added to overlay struct, "manager_changed". This is
      similar to "display_changed" field in manager struct, and is used to
      inform apply that the manager has changed and thus write to the
      registers is needed.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      8fa8031c
    • T
      OMAP: DSS2: DSI: Improve dsi_mux_pads parameters · 5bc416cb
      Tomi Valkeinen 提交于
      dsi_mux_pads() needs to know about the DSI HW module and the DSI lanes
      used. Split the function into two, enable and disable, which take
      necessary arguments, and add empty implementations for both.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5bc416cb
  3. 14 9月, 2011 1 次提交
  4. 24 8月, 2011 1 次提交
  5. 19 8月, 2011 1 次提交
  6. 25 7月, 2011 2 次提交
  7. 01 7月, 2011 3 次提交
  8. 23 5月, 2011 4 次提交
  9. 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
  10. 13 5月, 2011 5 次提交