1. 25 Jan, 2019 5 commits
  2. 24 Jan, 2019 16 commits
  3. 23 Jan, 2019 9 commits
  4. 22 Jan, 2019 8 commits
  5. 21 Jan, 2019 2 commits
    • Hans de Goede's avatar
      drm/i915/dsi: Enable dithering for 6 bpc panels · 24bf86cc
      Hans de Goede authored
      The display engine has 2 dithering enable bits which both need to be set
      for dithering to happen, 1 in the PIPECONF register which is taken care of
      by i9xx_set_pipeconf() and a second bit at the encoder level.
      
      The dsi code was not setting the encoder level dithering enable bit causing
      dithering to be disabled, this commit fixes this.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20181201113148.23184-2-hdegoede@redhat.com
      24bf86cc
    • Hans de Goede's avatar
      drm/i915/dsi: Fix pipe_bpp for handling for 6 bpc pixel-formats · ca0b04db
      Hans de Goede authored
      There are 3 problems with the dsi code's pipe_bpp handling for 6 bpc
      pixel-formats which this commit addresses:
      
      1) It assumes that the pipe_bpp is the same as the bpp going over the dsi
      lanes. This assumption is not valid for MIPI_DSI_FMT_RGB666, where pipe_bpp
      should be 18 so that we do proper dithering but we actually send 24 bpp
      over the dsi lanes (MIPI_DSI_FMT_RGB666_PACKED sends 18 bpp).
      
      This assumption is enforced by an assert in *_dsi_get_pclk(). This assert
      triggers on the initial hw-state readback on BYT/CHT devices which use
      MIPI_DSI_FMT_RGB666, such as the Prowise PT301 tablet. PIPECONF is set to
      6BPC / 18 bpp by the GOP, while mipi_dsi_pixel_format_to_bpp() returns 24.
      
      This commits switches the calculations in *_dsi_get_pclk() to use the bpp
      from mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format) which
      returns the bpp going over the mipi lanes and drops the assert.
      
      2) On BXT bxt_dsi_get_pipe_config() wrongly overrides the pipe_bpp which
      i9xx_get_pipe_config() reads from PIPECONF with the return value from
      mipi_dsi_pixel_format_to_bpp(). This avoids the assert from 1. but is wrong
      since the pipe is actually running at the value configured in PIPECONF.
      
      This commit drops the override of pipe_bpp from bxt_dsi_get_pipe_config().
      
      3) The dsi encoder's compute_config() never assigns a value to pipe_bpp,
      unlike most other encoders. Falling back on compute_baseline_pipe_bpp()
      which always picks 24. 24 is only correct for MIPI_DSI_FMT_RGB88 for the
      others we should use 18 bpp so that we correctly do 6bpc color dithering.
      
      This commit adds code to intel_dsi_compute_config() to properly set
      pipe_bpp based on intel_dsi->pixel_format.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20181201113148.23184-1-hdegoede@redhat.com
      ca0b04db