1. 02 12月, 2011 1 次提交
  2. 18 11月, 2011 1 次提交
    • T
      OMAPDSS: DISPC: skip scaling calculations when not scaling · f95cb5eb
      Tomi Valkeinen 提交于
      Current code calculates scaling factors for video overlays even when the
      overlays are not scaled. Change the code to skip calculations when not
      scaling.
      
      This optimizes the code a bit, but also fixes a problem when configuring
      an overlay for a disabled display: if the display is disabled we don't
      necessarily know the pixel clock used when the display is enabled, and
      in some cases (like HDMI) the pixel clock is set to zero until a proper
      video mode is set later. A wrong pixel clock will mess up the
      scaling calculations, causing an error like:
      
      omapdss DISPC error: failed to set up scaling, required fclk rate = 0
      Hz, current fclk rate = 170666666 Hz
      
      A proper fix would be to check later whether the clocks are enough for the
      scaling, at the point when the overlay or display is actually enabled,
      but this patch removes the problem for now.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      f95cb5eb
  3. 01 11月, 2011 1 次提交
  4. 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
  5. 30 9月, 2011 16 次提交
  6. 20 9月, 2011 1 次提交
    • T
      OMAP: DSS2: remove unneeded fck enable/disables · f3646582
      Tomi Valkeinen 提交于
      Now that the HWMOD fmwk handles the fcks of DSS modules properly, the
      DSS driver no longer needs to explicitely enable/disable the fck.
      
      This patch removes the enables/disables of fck from dispc, dsi and dss.
      The clk_get(fck) is still needed there, as the modules need to know the
      frequency of the clock.
      
      For hdmi and venc this patch also removes the clk_get(fck), as they
      don't need the clock at all.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      f3646582
  7. 14 9月, 2011 6 次提交
  8. 25 7月, 2011 3 次提交
  9. 01 7月, 2011 4 次提交
    • 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: 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
    • 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: 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
  10. 23 5月, 2011 4 次提交
    • A
      OMAP: DSS2: Add support for NV12 format · 0d66cbb5
      Amber Jain 提交于
      Add the support for NV12 color format.
      Configure base address for UV component of NV12 color format.
      Change the way chroma scaling is handled for YUV formats on OMAP4 by enabling
      chroma-resampling for video pipeline and hence using FIR2 register set for
      scaling UV.
      Changes to _dispc_set_scaling(), because of the reason above, are:
      - call _dispc_set_scaling_common() to handle scaling for all color formats
        except for OMAP4 where it only handles scaling for RGB or Y-component
      - call _dispc_set_scaling_uv() for special handling required for UV
        component on OMAP4.
      - dispc_set_scaling_uv() also resets chroma-resampling bit for RGB color modes.
      
      Contains chroma scaling (_dispc_set_scaling_uv) design and implemented by
      Lajos Molnar <molnar@ti.com>
      Signed-off-by: NAmber Jain <amber@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0d66cbb5
    • A
      OMAP: DSS2: Add new registers for NV12 support · ab5ca071
      Amber Jain 提交于
      Add new registers specific to UV color component that are introduced in OMAP4.
      Add simple helper functions to configure the newly added registers.
      These new registers are mainly:
      - UV base address registers used specifically for NV12 color-format
      - FIR registers used for UV-color-component scaling on OMAP4
      - Accumulator registers used for UV-color-component scaling
      Add these new registers to save/restore and DUMPREG functions.
      Also add two new features for OMAP4:
      - FEAT_HANDLE_UV_SEPARATE - this is used on OMAP4 as UV color-component requires
        separate handling.
      - FEAT_ATTR2 - this is used on OMAP4 to configure new ATTRIBUTES2 register.
      Signed-off-by: NAmber Jain <amber@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      ab5ca071
    • A
      OMAP: DSS2: Use for loop where ever possible in SR(), RR() · 5719d35c
      Amber Jain 提交于
      Use for loop instead of individual entries for OVL_FIR_COEF_H, OVL_FIR_COEF_HV,
      OVL_FIR_COEF_V and OVL_CONV_COEF in SR() and  RR().
      Signed-off-by: NAmber Jain <amber@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5719d35c
    • A
      OMAP: DSS2: Ensure non-zero FIR values are configured · ed14a3ce
      Amber Jain 提交于
      FIR values can never be zero as per TRM, and the current code writes zero
      when scaling is not used. It was not causing any problem as scaling was
      disabled when zero was written. Its still safer to not write zero to
      it in any case.
      Now we configure correct FIR values even when scaling is not used (i.e. set FIR
      to 1024 when scaling is not used), but the scaling enable bits are still kept
      off if the scaling is not needed.
      Signed-off-by: NAmber Jain <amber@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      ed14a3ce