1. 01 7月, 2011 13 次提交
    • T
      OMAP: DSS2: Fix FIFO threshold and burst size for OMAP4 · 5ed8cf5b
      Tomi Valkeinen 提交于
      The DMA FIFO threshold registers and burst size registers have changed
      for OMAP4.  The current code only handles OMAP2/3 case, and so the
      values are a bit off for OMAP4.  A summary of the differences between
      OMAP2/3 and OMAP4:
      
      Burst size:
      OMAP2/3: 4 x 32 bits / 8 x 32 bits / 16 x 32 bits
      OMAP4: 2 x 128 bits / 4 x 128 bits / 8 x 128 bits
      
      Threshold size:
      OMAP2/3: in bytes (8 bit units)
      OMAP4: in 128bit units
      
      This patch fixes the issue by creating two new helper functions in
      dss_features: dss_feat_get_buffer_size_unit() and
      dss_feat_get_burst_size_unit(). These return (in bytes) the unit size
      for threshold registers and unit size for burst size register,
      respectively, and are used to calculate correct values.
      
      For the threshold size the usage is straightforward. However, the burst
      size register has different multipliers for OMAP2/3 and OMAP4. This
      patch solves the problem by defining the multipliers for the burst size
      as 2x, 4x and 8x, which fit fine for the OMAP4 burst size definition
      (i.e. burst size unit for OMAP4 is 128bits), but requires a slight twist
      on OMAP2/3 by defining the burst size unit as 64bit.
      
      As the driver in practice always uses the maximum burst size, and no use
      case currently exists where we would want to use a smaller burst size,
      this patch changes the driver to hardcode the burst size when
      initializing DISPC. This makes the threshold configuration code somewhat
      simpler.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5ed8cf5b
    • T
      OMAP: DSS2: DSI: sync when disabling a display · 15ffa1da
      Tomi Valkeinen 提交于
      When the panel driver calls omapdss_dsi_display_disable() it is possible
      that there are still some unsent packets in the TX fifo.
      
      Add dsi_sync_vc() calls in the beginning of
      omapdss_dsi_display_disable() to make sure the TX fifos are empty.
      
      This allows us to remove the msleep(10) hack from panel-taal.c
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      15ffa1da
    • T
      OMAP: DSS2: Add Color Phase Rotation support · 3c07cae2
      Tomi Valkeinen 提交于
      Add Color Phase Rotation (CPR) support and sysfs files to enable CPR and
      to set the CPR coefficient matrix.
      
      CPR is enabled via manager?/cpr_enable file, and the coefficient matrix
      is set via manager?/cpr_coef file. The values in cpr_coef are in the
      following order:
      
      RR RG RB GR GG GB BR BG BB
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      3c07cae2
    • N
      OMAP: DSS: Minor cleanup in ovl and mgr cache structs · 4df9d104
      Nishant Kamat 提交于
      The overlay_cache_data and manager_cache_data structs include
      the elements of omap_overlay_info and omap_overlay_manager_info
      structs respectively. Include the structs instead of the individual
      elements to reduce code.
      Signed-off-by: NNishant Kamat <nskamat@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      4df9d104
    • T
      OMAP: DSS2: Add new FEAT definitions for features missing from OMAP2 · 332e9d70
      Tomi Valkeinen 提交于
      OMAP2 doesn't have CPR, PRELOAD nor FIR_COEF_V registers. Add new
      feature definitions for those, and check the feature before accessing
      those registers.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      332e9d70
    • T
      OMAP: DSS2: Add FEAT_VENC_REQUIRES_TV_DAC_CLK · 525dae61
      Tomi Valkeinen 提交于
      OMAP3430 requires an 96MHz clock to VENC's DAC, but no other OMAP needs
      it.
      
      Add a new feature, FEAT_VENC_REQUIRES_TV_DAC_CLK, which tells if the
      clock is needed on this platform, and use that feature in venc.c to
      decide if the clock needs enabling.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      525dae61
    • T
      OMAP: DSS2: Reset LANEx_ULPS_SIG2 bits after use · 8ef0e614
      Tomi Valkeinen 提交于
      LANEx_ULPS_SIG2 bits are left on after entering ULPS. This doesn't cause
      any problems currently, as DSI HW is reset when it is enabled. However,
      if the reset is not done, operation fails if the bits are still set.
      
      So reset the bits after entering ULPS to ensure operation even without
      HW reset.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      8ef0e614
    • T
      OMAP: DSS2: Taal: Make driver more fault tolerant · e8945677
      Tomi Valkeinen 提交于
      If ULPS exit fails, and the following reset fails also, Taal driver was
      left in state where it thinks DSI is enabled while it really isn't,
      leading to crash.
      
      This patch checks the return value of taal_panel_reset, and if that
      fails, ulps_enabled is left true, causing the driver to retry ulps exit
      later.
      
      Also the return value of taal_wake_up is checked at taal_disable, and if
      wake up fails, we'll skip the power_off. This could leave the panel into
      a not-quite-valid state, but there's nothing we can do about it in that
      situation.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      e8945677
    • T
      OMAP: DSS2: remove update_mode from omapdss · 8cff88c5
      Tomi Valkeinen 提交于
      Remove the whole update_mode stuff from omapdss driver. If automatic
      update for manual update displays is needed, it's better implemented in
      higher layers.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      8cff88c5
    • T
      OMAP: DSS2: OMAPFB: Implement auto-update mode · 27cc213e
      Tomi Valkeinen 提交于
      Implement auto-update mode for manual-update displays. omapfb driver
      uses a delayed work to update the display with a constant rate.
      
      The update mode can be changed via OMAPFB_SET_UPDATE_MODE ioctl, which
      previously called omapdss but is now handled inside omapfb, and a new
      sysfs file, "update_mode".
      
      The update interval is by default 20 times per second, but can be
      changed via "auto_update_freq" module parameter. There is also a new
      module parameter "auto_update", which will make omapfb start manual
      update displays in auto-update mode.
      
      This auto-update mode can be used for testing if the userspace does not
      support manual update displays properly. However, it is a very
      inefficient solution, and should be considered more as a hack for
      testing than something that could be used as a long term solution.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      27cc213e
    • T
      OMAP: DSS2: OMAPFB: Add struct to store per-display data · 065a40bd
      Tomi Valkeinen 提交于
      Create a new struct omapfb_display_data to contain omapfb's private
      per-display data. Move the bpp override there.
      
      This struct will be used to hold auto/manual update state of a display
      in the following patches.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      065a40bd
    • T
      OMAP: DSS2: DSI: Change dummy macros to inline functions · 4a9a5e39
      Tomi Valkeinen 提交于
      Using empty macros for performance measurement functions when DSS DEBUG
      is not enabled causes an unused variable warning.
      
      Change the empty macros to empty inline functions to remove the
      warning.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      4a9a5e39
    • T
      OMAP: DSS2: remove extra includes from include/video/omapdss.h · 24e6289c
      Tomi Valkeinen 提交于
      omapdss.h included platform_device.h and atomic.h, neither of which is
      needed by omapdss.h. Remove those includes from omapdss.h, and fix the
      affected .c files which did not include platform_device.h even though
      they should.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      24e6289c
  2. 21 6月, 2011 13 次提交
  3. 20 6月, 2011 14 次提交