1. 16 5月, 2014 2 次提交
  2. 05 5月, 2014 1 次提交
    • D
      drm/i915/sdvo: Remove ->mode_set callback · 192d47a6
      Daniel Vetter 提交于
      SDVO is used by both crtcs using the i9xx_ and the ironlake_
      functions. For both cases there is nothing between the
      encoder->mode_set and the encoder->pre_enable calls that touches the
      hardware.
      
      The vlv_ functions are different since they enable the pll before the
      ->pre_enable hook. But SDVO isn't supported on vlv platforms, so this
      doesn't matter.
      
      We've also already clean up all the sdvo state computation logic, all
      relevant parts are already in the ->compute_config hook.  So we can
      just get rid of the ->mode_set hook by converting it to a ->pre_enable
      hook.
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      192d47a6
  3. 16 4月, 2014 1 次提交
  4. 21 3月, 2014 1 次提交
  5. 11 3月, 2014 1 次提交
    • V
      drm/i915: Make encoder cloning more flexible · bc079e8b
      Ville Syrjälä 提交于
      Currently we allow encoders to indicate whether they can be part of a
      cloned set with just one flag. That's not flexible enough to describe
      the actual hardware capabilities. Instead make it a bitmask of encoder
      types with which the current encoder can be cloned.
      
      For now we set the bitmask to allow DVO+DVO and DVO+VGA, which should
      match what the old boolean flag allowed. We will add some more cloning
      options in the future.
      
      Note that this patch also removes the encoder.possible_clones setting
      from encoder setup code - we compute this dynamically.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      [danvet: Add Ville's explanation why removing the encoder
      possible_clones is save.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      bc079e8b
  6. 14 2月, 2014 3 次提交
  7. 10 12月, 2013 1 次提交
  8. 28 11月, 2013 2 次提交
  9. 01 10月, 2013 4 次提交
  10. 17 9月, 2013 1 次提交
    • V
      drm/i915: Fix port_clock and adjusted_mode.clock readout all over · 18442d08
      Ville Syrjälä 提交于
      Now that adjusted_mode.clock no longer contains the pixel_multiplier, we
      can kill the get_clock() callback and instead do the clock readout
      in get_pipe_config().
      
      Also i9xx_crtc_clock_get() can now extract the frequency of the PCH
      DPLL, so use it to populate port_clock accurately for PCH encoders.
      For DP in port A the encoder is still responsible for filling in
      port_clock. The FDI adjusted_mode.clock extraction is kept in place
      for some extra sanity checking, but we no longer need to pretend it's
      also the port_clock.
      
      In the encoder get_config() functions fill out adjusted_mode.clock
      based on port_clock and other details such as the DP M/N values,
      HDMI 12bpc and SDVO pixel_multiplier. For PCH encoders we will then
      do an extra sanity check to make sure the dotclock we derived from
      the FDI configuratiuon matches the one we derive from port_clock.
      
      DVO doesn't exist on PCH platforms, so it doesn't need to anything
      but assign adjusted_mode.clock=port_clock. And DDI is HSW only, so
      none of the changes apply there.
      
      v2: Use hdmi_reg color format to detect 12bpc HDMI case
      v3: Set adjusted_mode.clock for LVDS too
      v4: Rename ironlake_crtc_clock_get to ironlake_pch_clock_get,
          eliminate the useless link_freq variable.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      18442d08
  11. 13 9月, 2013 1 次提交
  12. 12 9月, 2013 1 次提交
    • D
      drm/i915/sdvo: Robustify the dtd<->drm_mode conversions · 1c4a814e
      Daniel Vetter 提交于
      We've failed to properly clear out the flags when converting a dtd to
      a drm mode. For more paranoia just memset the entire structure (and
      drop the now redundant clears).
      
      Also since
      
      commit 135c81b8
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sun Jul 21 21:37:09 2013 +0200
      
          drm/i915: clean up crtc timings computation
      
      we don't update the crtc timings any more properly, so do that again.
      
      v2: Remove more redundant clearing, spotted by Ville.
      
      v3: Actually make it compile. Oops.
      
      v4: Use a temporary structure to fill in the mode and copy it over
      with drm_mode_copy. This will ensure we don't clobber the mode list or
      id. Suggested by Ville.
      
      Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reported-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      [danvet: Use the = {}; structure clearing instead of memset as
      suggested by Ville.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      1c4a814e
  13. 10 9月, 2013 1 次提交
  14. 06 9月, 2013 1 次提交
  15. 04 9月, 2013 1 次提交
  16. 22 8月, 2013 1 次提交
  17. 08 8月, 2013 1 次提交
  18. 05 8月, 2013 1 次提交
  19. 24 7月, 2013 1 次提交
  20. 12 7月, 2013 1 次提交
  21. 01 7月, 2013 1 次提交
  22. 12 6月, 2013 1 次提交
  23. 11 6月, 2013 2 次提交
  24. 10 6月, 2013 4 次提交
  25. 07 6月, 2013 1 次提交
    • D
      drm/i915: pipe config quirk infrastructure plus sdvo mode.flags fix · bb760063
      Daniel Vetter 提交于
      For various reasons the hw state readout might not be able to
      faithfully match the hw state:
      - broken hw (like the case which motivated this patch here where the
        sdvo encoder does not implemented mandatory functionality
        correctly).
      - platforms which are not supported fully with the pipe config
        infrastructure
      - if our code doesn't support a given hw configuration natively, e.g.
        special restrictions on the per-pipe panel fitters when they're used
        in high-quality scaling modes.
      
      In all these cases both fastboot and the hw state cross checker need
      to be aware of these cases and act accordingly. To be able to do this
      add a new quirk flag to the pipe config structure.
      
      The specific case at hand is an sdvo encoder which doesn't implement
      the get_timings function, so adjusted_mode flags will be wrong. The
      strange thing though is that the encoder _does_ work, even though it
      doesn't implement any of the timings functions (so neither get nor
      set, neither for input nor output timings).
      
      Not that non-compliant sdvo encoder are any surprise at all ...
      
      v2:
      - Don't read random garbage from the dtd if the get_timings call
        failed (suggested by Chris).
      - Still check the interlaced flag, that's read out from someplace
        else. We want maximal paranoia, after all.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      bb760063
  26. 06 6月, 2013 2 次提交
    • D
      drm/i915: hw state readout support for pixel_multiplier · 6c49f241
      Daniel Vetter 提交于
      Incomplete since ilk+ support needs proper pch dpll tracking first.
      SDVO get_config parts based on a patch from Jesse Barnes, but fixed up
      to actually work.
      
      v2: Make sure that we call encoder->get_config _after_ we
      get_pipe_config to be consistent in both setup_hw_state and the
      modeset state checker. Otherwise the clever trick with handling the
      pixel mutliplier on i915G/GM where the encoder overrides the default
      value of 1 from the crtc get_pipe_config function doesn't work.
      Spotted by Imre Deak.
      
      v3: Actually cross-check the pixel mutliplier (but not on pch split
      platforms for now). Now actually also tested on a i915G with a sdvo
      encoder plugged in.
      
      Cc: Imre Deak <imre.deak@intel.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6c49f241
    • D
      drm/i915: set default value for config->pixel_multiplier · ef1b460d
      Daniel Vetter 提交于
      This way we can simplify the code quite a bit.
      
      Also add a WARN in the sdvo code to complain about a bogus value
      and kill the readout code in intel_ddi.c that Jesse sneaked in.
      HW state readout for the pixel multiplier will work a bit differently
      in the end.
      
      v2: Rebase on top of the fdi pixel mutliplier handling fix.
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ef1b460d
  27. 04 6月, 2013 1 次提交
  28. 01 6月, 2013 1 次提交