1. 06 11月, 2012 1 次提交
  2. 05 11月, 2012 1 次提交
  3. 29 10月, 2012 7 次提交
  4. 24 10月, 2012 2 次提交
  5. 18 10月, 2012 6 次提交
  6. 17 10月, 2012 3 次提交
  7. 16 10月, 2012 1 次提交
  8. 12 10月, 2012 2 次提交
  9. 26 9月, 2012 17 次提交
    • 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
    • A
      OMAPDSS: DISPC: Don't pass channel out when configuring overlays · 3e8a6ff2
      Archit Taneja 提交于
      dispc_ovl_setup_common() is to be used by both overlays and writeback. We pass
      channel out to figure out what manager the overlay is connected to, to determine
      the pixel clock rate. This is used to decide the scaling limitations for that
      overlay.
      
      writeback doesn't have a channel out, it has a channel in field which tells
      where writeback gets its input from. These are 2 different fields, and this
      prevents us reusing the overlay configuration code for writeback.
      
      To overcome this, we now pass omap_plane to overlay related functions rather
      than passing channel out. We create helper functions which can derive pclk/lclk
      from the omap_plane id.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      3e8a6ff2
    • A
      OMAPDSS: DISPC: Make dispc_ovl_setup call dispc_ovl_setup_common · 84a880fd
      Archit Taneja 提交于
      Add a new static function called dispc_ovl_setup_common(). This function is used by
      dispc_ovl_setup() to configure the overlay registers. This split is done so that
      dispc_wb_setup() can reuse overlay register configuration related code.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      84a880fd
    • A
      OMAPDSS: OVERLAY: Add position and replication as overlay caps · d79db853
      Archit Taneja 提交于
      Add position and replication as overlay caps, and pass overlay caps as an
      argument to the corresponding functions. Adding position and replication to
      overlay caps seems a bit unnecessary, but it allows us to use the
      corresponding functions for writeback too.
      
      These caps will be set for all overlays, but not for writeback. This is done
      so writeback can reuse dispc_ovl_setup() to the maximum.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      d79db853
    • A
      OMAPDSS: DISPC: Pass overlay caps as a parameter to dispc plane functions · 5b54ed3e
      Archit Taneja 提交于
      Currently, the functions below take the omap_plane parameter and derive the
      overlay caps within them. Pass the overlay caps as a parameter to the function
      to allow these to be used by writeback too.
      
      - dispc_ovl_set_zorder()
      - dispc_ovl_set_pre_mult_alpha()
      - dispc_ovl_setup_global_alpha()
      - dispc_ovl_calc_scaling()
      - dispc_ovl_setup()
      
      These functions will be used for writeback later, and the caps will help in
      deciding if they are to be used for writeback or not. This allows reuse of
      overlay caps for writeback.
      
      Using omap_overlay_caps for writeback seems a bit incorrect, but caps is
      something already in use by users of OMAPDSS(omapfb/omap_vout), so we use
      overlay caps for overlay like features of writeback too.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      5b54ed3e
    • A
      OMAPDSS: DISPC: Simplify function names for setting pipeline input and output sizes · 78b687fc
      Archit Taneja 提交于
      The DISPC pipeline register names in the TRM for setting the buffer size and
      the output size are a bit misleading, for example, there are different register
      names for setting the buffer size for VID and GFX pipes. Things get more
      confusing when considering writeback pipeline.
      
      Rename the functions so that they tell whether they are configuring the input
      to the scalar or the output. These will be extended later to support writeback
      registers.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      78b687fc
    • A
      OMAPDSS: DISPC: Constify omap_overlay_info in dispc_ovl_setup() · 8eeb7019
      Archit Taneja 提交于
      The struct omap_overlay_info passed to dispc_ovl_setup() is used to configure
      DISPC registers. It shouldn't modify the overlay_info structure. The pos_y field
      was being changed in dispc_ovl_setup in the case of interlaced displays. Fix
      this and const qualifier to the omap_overlay_info argument.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      8eeb7019