1. 09 5月, 2012 1 次提交
  2. 23 4月, 2012 2 次提交
    • 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
    • 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
  3. 21 2月, 2012 1 次提交
    • T
      OMAPDSS: cleanup probe functions · cd3b3449
      Tomi Valkeinen 提交于
      Now that dss is using devm_ functions for allocation in probe functions,
      small reordering of the allocations allows us to clean up the probe
      functions more.
      
      This patch moves "unmanaged" allocations after the managed ones, and
      uses plain returns instead of gotos where possible. This lets us remove
      a bunch of goto labels, simplifying the probe's error handling.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      cd3b3449
  4. 26 1月, 2012 1 次提交
    • T
      OMAPDSS: use sync versions of pm_runtime_put · 0eaf9f52
      Tomi Valkeinen 提交于
      omapdss doesn't work properly on system suspend. The problem seems to be
      the fact that omapdss uses pm_runtime_put() functions when turning off
      the hardware, and when system suspend is in process only sync versions
      are allowed.
      
      Using non-sync versions normally and sync versions when suspending would
      need rather ugly hacks to convey the information of
      suspending/not-suspending to different functions. Optimally the driver
      wouldn't even need to care about this, and the PM layer would handle
      syncing when suspend is in process.
      
      This patch changes all omapdss's pm_runtime_put calls to
      pm_runtime_put_sync. This fixes the suspend problem, and probably the
      performance penalty of always using sync versions is negligible.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      0eaf9f52
  5. 25 1月, 2012 2 次提交
  6. 13 1月, 2012 1 次提交
  7. 02 1月, 2012 1 次提交
  8. 02 12月, 2011 18 次提交
  9. 01 11月, 2011 1 次提交
  10. 30 9月, 2011 12 次提交
    • 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: DSI: Send zero length packet in dsi_vc_send_null() · 18b7d099
      Archit Taneja 提交于
      dsi_vc_send_null() currently sends a long packet with data type
      MIPI_DSI_NULL_PACKET and packet length 4. Modify it to send a zero
      length long packet. This leads to sending only the long packet header
      and no payload packets and hence the transfer completes faster.
      
      The function can be modified later if there is a need to send null
      packets of a non-zero length.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      18b7d099
    • 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: Clean up stallmode and io pad mode selection · 569969d6
      Archit Taneja 提交于
      Split the function dispc_set_parallel_interface_mode() into 2 separate
      functions called dispc_mgr_set_io_pad_mode() and dispc_mgr_enable_stallmode().
      The current function tries to set 2 different modes(io pad mode and stall mode)
      based on a parameter omap_parallel_interface_mode which loosely corresponds to
      the panel interface type.
      
      This isn't correct because a) these 2 modes are independent to some extent,
      b) we are currently configuring gpout0/gpout1 for DSI panels which is
      unnecessary, c) a DSI Video mode panel won't get configured correctly.
      
      Splitting the functions allows the interface driver to set these modes
      independently and hence allow more flexibility.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      569969d6
    • 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: Split dsi_vc_dcs_read() into 2 functions · b850975c
      Archit Taneja 提交于
      Split dsi_vc_dcs_read() into the functions:
      - dsi_vc_dcs_send_read_request(): This is responsible for sending the short
      packet command with the read request.
      - dsi_vc_dcs_read_rx_fifo(): This parses the DSI RX fifo of the given virtual
      channel, identifies the type of data received, and fills a buffer with the data
      provided by the panel.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      b850975c
    • 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
    • A
      OMAP: DSS2: DSI: Represent L4 and VP as sources of VC instead of modes · d6049144
      Archit Taneja 提交于
      The enum type dsi_vc_mode is a bit misleading as L4 slave port and video port
      are sources to VC rather than the mode of operation. Rename then enum type and
      its members. Merge dsi_vc_config_vp() and dsi_vc_config_l4() into a single
      function called dsi_vc_config_source() which takes dsi_vc_source enum as an
      extra argument.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      d6049144
    • A
      OMAP: DSS2: Use MIPI DSI enums from include/video/mipi_display.h · 7a7c48f9
      Archit Taneja 提交于
      MIPI DSI Transaction types and DCS commands are currently defined as
      macros in dsi.c and panel-taal.c, remove these and replace them with
      enum members defined in include/video/mipi_display.h.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      [tomi.valkeinen@ti.com: reformatted the commit message]
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7a7c48f9
    • T
      OMAP: DSS2: DISPC: rename manager related funcs · 26d9dd0d
      Tomi Valkeinen 提交于
      Rename dispc's manager related functions as follows:
      
      - Remove prepending underscores, which were originally used to inform
        that the clocks needs to be enabled. This meaning is no longer valid.
      - Prepend the functions with dispc_mgr_*
      - Remove "channel" from the name, e.g. dispc_enable_channel ->
        dispc_mgr_enable
      
      The idea is to group manager related functions so that it can be deduced
      from the function name that it writes to manager spesific registers.
      
      All dispc_mgr_* functions have enum omap_channel as the first parameter.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      26d9dd0d