1. 11 5月, 2012 5 次提交
  2. 09 5月, 2012 3 次提交
    • A
      OMAPDSS: Apply manager timings instead of direct DISPC writes · 41721163
      Archit Taneja 提交于
      Replace the function dispc_mgr_set_timings() with dss_mgr_set_timings() in the
      interface drivers. The latter function ensures that the timing related DISPC
      registers are configured according to the shadow register programming model.
      
      Remove the call to dispc_mgr_go() in dpi_set_timings() as the manager's go bit
      is set by dss_mgr_set_timings().
      Signed-off-by: NArchit Taneja <archit@ti.com>
      41721163
    • 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
    • T
      OMAPDSS: DSI: implement generic DSI pin config · e4a9e94c
      Tomi Valkeinen 提交于
      In preparation for device tree, this patch changes how the DSI pins are
      configured. The current configuration method is only doable with board
      files and the configuration data is OMAP specific.
      
      This patch moves the configuration data to the panel's platform data,
      and the data can easily be given via DT in the future. The configuration
      data format is also changed to a generic one which should be suitable
      for all platforms.
      
      The new format is an array of pin numbers, where the array items start
      from clock + and -, then data1 + and -, and so on. For example:
      
      {
      	0,	// pin num for clock lane +
      	1,	// pin num for clock lane -
      	2,	// pin num for data1 lane +
      	3,	// pin num for data1 lane -
      	...
      }
      
      The pin numbers are translated by the DSI driver and used to configure
      the hardware appropriately.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NTony Lindgren <tony@atomide.com>
      e4a9e94c
  3. 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
  4. 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
  5. 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
  6. 25 1月, 2012 2 次提交
  7. 13 1月, 2012 1 次提交
  8. 02 1月, 2012 1 次提交
  9. 02 12月, 2011 18 次提交
  10. 01 11月, 2011 1 次提交
  11. 30 9月, 2011 5 次提交
    • 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