1. 20 11月, 2012 2 次提交
  2. 12 11月, 2012 3 次提交
    • A
      OMAPDSS: DISPC: Use output width and height to calculate row/pix inc for writeback · 6be0d73e
      Archit Taneja 提交于
      When calculating row and pixel increments for graphics and video pipes, we need
      to consider the dimensions of the input frame to know how to read from the
      buffer. Hence, we need to calculate these parameters from the input to the
      pipeline.
      
      For writeback, the row and pixel increments need to be calculated based on the
      output of the writeback pipeline, i.e, the dimensions of the frame after
      scaling. Ensure that dispc driver uses values of out_width and out_height when
      calling calc_dma/calc_tiler_rotation_offset.
      
      For graphics and video pipes, the original code passed the original height as
      frame_height to calc_dma_rotation_offset, and not the predecimated height. This
      is left as it is for now. We need to figure out why pre decimated height isn't
      needed.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      6be0d73e
    • A
      OMAPDSS: DISPC: Don't allow predecimation for writeback · 1c031441
      Archit Taneja 提交于
      Since writeback writes to a buffer instead of reading from one, predecimation
      doesn't make sense for it. Configure the width and height predecimation limits
      to 1 if the plane is writeback.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      1c031441
    • A
      OMAPDSS: DISPC: Fix calc_scaling_44xx() bugs for writeback pipeline · 5d501085
      Archit Taneja 提交于
      dispc_ovl_calc_scaling_44xx() doesn't work correctly for writeback. There are
      two issues with it:
      
      - the function tries to calculate pixel clock for the input plane using
        dispc_plane_pclk_rate(), calling this with writeback as input plane results in
        a BUG(), this function shouldn't be called for writeback at all. Fix this by
        calculating pixel clock only when we are not in mem to mem mode.
      
      - the maximum input_width is the product of the downscale ratio supported and
        the and the given output_width. This was calculated incorrectly by dividing
        output_width with maxdownscale. Fix this.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5d501085
  3. 07 11月, 2012 1 次提交
  4. 06 11月, 2012 1 次提交
  5. 05 11月, 2012 1 次提交
  6. 29 10月, 2012 7 次提交
  7. 24 10月, 2012 2 次提交
  8. 18 10月, 2012 6 次提交
  9. 17 10月, 2012 3 次提交
  10. 16 10月, 2012 1 次提交
  11. 12 10月, 2012 2 次提交
  12. 26 9月, 2012 11 次提交
    • A
      OMAPDSS: DISPC: Configure color conversion coefficients for writeback · 6e5264b0
      Archit Taneja 提交于
      Writeback pipeline receives RGB data from one of the overlays or one of the
      overlay managers. If the target color mode is YUV422 or NV12, we need to convert
      the RGB pixels to YUV. The scaler in WB then converts it to the target color
      mode.
      
      Hence, the color conversion coefficients that need to be programmed are the ones
      which convert a RGB24 pixel to YUV444. Program these coefficients for writeback
      pipeline.
      
      Rearrange the code a bit to configure different coefficients for overlays and
      writeback.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      6e5264b0
    • A
      OMAPDSS: DISPC: Add manager like functions for writeback · 0b23e5b8
      Archit Taneja 提交于
      Add functions to enable writeback, and set/check state of GO bit. These bits are
      identical in behaviour with the corresponding overlay manager bits. Configure
      them in a similar way to mgr_enable() and mgr_go_* functions. Add a helper to
      get the FRAMEDONE irq corresponding to writeback.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      0b23e5b8
    • A
      OMAPDSS: DISPC: Configure writeback FIFOs · 8bbe09ee
      Archit Taneja 提交于
      Extend the DISPC fifo functions to also configure the writeback FIFO thresholds.
      
      The most optimal configuration for writeback is to push out data to the
      interconnect the moment writeback pushes enough pixels in the FIFO to form a
      burst. This reduces the chance of writeback overflowing it's FIFO.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      8bbe09ee
    • A
      OMAPDSS: DISPC: Configure writeback specific parameters in dispc_wb_setup() · 9e4a0fc7
      Archit Taneja 提交于
      Configure some of the writeback specific parameters in dispc_wb_setup(). The
      writeback parameters configured are:
      
      truncation: This needs to be set if the color depth input to writeback is more
      than the color depth of the color mode we want to store in memory.
      
      writeback mode: This configures whether we want to use writeback in mem to mem
      or capture mode. This information will be directly passed by APPLY later.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      9e4a0fc7
    • A
      OMAPDSS: DISPC: Configure overlay-like parameters in dispc_wb_setup · 749feffa
      Archit Taneja 提交于
      Create struct omap_dss_writeback_info, this is similar to omap_overlay_info,
      the major difference is that there is no parameter which describes the input
      size to writeback, this is because this is always fixed, and decided by the
      connected overlay or overlay manager. One more difference is that screen_width
      is renamed to buf_width, to give the value of stride the writeback buffer has.
      
      Call dispc_ovl_setup_common() through dispc_wb_setup() to configure overlay-like
      parameters. The parameters in dispc_ovl_setup_common() which do not hold for
      writeback are filled passed as zeroes or false, the code takes care of not
      configuring them as they won't possess the needed overlay caps.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      749feffa
    • A
      OMAPDSS: DISPC: Add function to set channel in for writeback · d9ac773c
      Archit Taneja 提交于
      Writeback can take input from either one of the overlays, or one of the overlay
      managers. Add an enum which represents the channel_in for writeback, and maps
      to the register field programming.
      
      Add a function to configure channel in for writeback. This will be used later in
      APPLY.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      d9ac773c
    • A
      OMAPDSS: DISPC: Don't set chroma resampling bit for writeback · 2a5561b1
      Archit Taneja 提交于
      The bit YUVCHROMARESAMPLING isn't there for writeback in DISPC_WB_ATTRIBUTES2.
      It isn't there because we don't upsample chroma like for video pipelines, we
      downsample chroma in writeback to get YUV422 or NV12 formats from the YUV444
      input.
      
      Ignore this bit in dispc_ovl_set_scaling_uv() if the plane is OMAP_DSS_WB.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      2a5561b1
    • A
      OMAPDSS: DISPC: Downscale chroma if plane is writeback · f92afae2
      Archit Taneja 提交于
      When converting YUYV444 content to YUV422 or NV12 formats through writeback
      pipeline, the scaler needs to downscale the chroma plane. Ensure that chroma
      is downscaled when the pipeline is writeback.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      f92afae2
    • A
      OMAPDSS: DISPC: Configure input and output sizes for writeback · 36d87d95
      Archit Taneja 提交于
      Writeback uses the WB_PICTURE_SIZE register to define the size of the content
      written to memory, this is the output of the scaler. It uses the WB_SIZE
      register to define the size of the content coming from the overlay/manager to
      which it is connected, this is the input to the scaler. This naming is different
      as compared to overlays.
      
      Add checks for writeback in dispc_ovl_set_input_size() and
      dispc_ovl_set_output_size() to write to the correct registers.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      36d87d95
    • A
      OMAPDSS: DISPC: Allow both upscaling and downscaling of chroma · 20fbb50b
      Archit Taneja 提交于
      In the function dispc_plane_set_scaling_uv(), create a parameter which tells if
      we want to upscale or downscale the chroma plane.
      
      Downscaling of chroma is required by writeback pipeline for converting the input
      YUV444 color format to YUV422 or NV12.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      20fbb50b
    • A
      OMAPDSS: DIPSC: Relax scaling limitations when in memory to memory mode · 8ba85306
      Archit Taneja 提交于
      The scalers of overlays and writeback do not have any constraints on downscale
      ratio when operating in memory to memory mode.
      
      This is because in memory to memory mode, we aren't connected to a display which
      needs data output at the rate of pixel clock. The scalers can perform as much
      downscaling as needed, the rate at which the scaler outputs is adjusted
      accordingly.
      
      Relax constraints related to downscaling based on whether the input overlays are
      connected to writeback in memory to memory mode. We pass a mem_to_mem boolean
      parameter to dispc_ovl_setup() from APPLY. This is currently set to false, this
      will later be configured to the correct value based on whether the overlay is
      connected to writeback or not. Do the same later for writeback when writeback is
      configured.
      
      In the scaling calculation code, we calculate the minimum amount of core clock we
      need to achieve the required downscaling. If we are in memory to memory mode, we
      set this to a very small value(1 in this case), this value would always be
      lesser than the actual DISPC core clock value, and hence the scaling checks
      would succeed.
      
      We take care that pixel clock isn't calculated for writeback and the overlays
      connected to it when in memory to memory mode. A pixel clock in such cases
      doesn't make sense.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      8ba85306