1. 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
  2. 14 9月, 2011 1 次提交
  3. 25 7月, 2011 2 次提交
  4. 01 7月, 2011 3 次提交
  5. 23 5月, 2011 4 次提交
  6. 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
  7. 13 5月, 2011 5 次提交
  8. 11 5月, 2011 5 次提交
    • T
      OMAP: DSS2: Taal: Implement ULPS functionality · 1abf7814
      Tomi Valkeinen 提交于
      ULPS is a low power state where the DSI lanes are kept at ground. This
      patch implements ULPS by having a DSI bus inactivity timer which
      triggers the entry to ULPS. ULPS exit will happen automatically when the
      driver needs to do something on the DSI lanes.
      
      The ulps_timeout is configurable from board file or via sysfs.
      Additionally another sysfs file, "ulps", can be used to check the
      current ULPS state, or to manually enter or exit ULPS.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      1abf7814
    • T
      OMAP: DSS2: Taal: Implement configurable ESD interval · 33a410be
      Tomi Valkeinen 提交于
      ESD check in Taal driver is currently on/off feature with hardcoded
      interval. This patch changes it to a configurable interval, which can be
      set from the board file.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      33a410be
    • 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