1. 27 7月, 2013 1 次提交
  2. 24 7月, 2013 1 次提交
  3. 18 7月, 2013 7 次提交
  4. 09 7月, 2013 1 次提交
  5. 02 7月, 2013 1 次提交
    • J
      drm/i915: get mode clock when reading the pipe config v9 · f1f644dc
      Jesse Barnes 提交于
      We need this for comparing modes between configuration changes.
      
      The tricky part is to allow us to reuse the new get_clock stuff to
      recover the lvds clock on gen2/3 when neither the vbt has an lvds mode
      nor the panel a (useful) EDID.
      
      v2: try harder to calulate non-simple pixel clocks (Daniel)
          call get_clock after getting the encoder config, needed for pixel multiply
          (Jesse)
      v3: drop get_clock now that the pixel_multiply has been moved into
          get_pipe_config
      v4: re-add get_clock; we need to get the pixel multiplier in the
          encoder, so need to calculate the clock value after the encoder's
          get_config is called
      v5: drop hsw clock_get, still needs to be written
      v6: add fuzzy clock check (Daniel)
      v7: wrap fuzzy clock check under !IS_HASWELL
          use port_clock field rather than a new CPU eDP clock field in crtc_config
      v8: remove stale pixel_multiplier sets (Daniel)
          multiply by pixel_multiplier in 9xx clock get too (Daniel)
      v9: make sure we set pixel_multiplier before calling clock_get from mode_get
          for LVDS (Daniel)
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      [danvet: Add some explanation to the commit message about why we have
      to jump through a few hoops. Also remove the rebase-fail hunk from
      intel_sdvo.c]
      [danvet: Squash in the fixup from Jesse to also call ->get_clock in
      the modeset state checker.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f1f644dc
  6. 01 7月, 2013 2 次提交
  7. 28 6月, 2013 6 次提交
  8. 07 6月, 2013 1 次提交
  9. 04 6月, 2013 2 次提交
    • D
      drm/i915: store adjusted dotclock in adjusted_mode->clock · ff9a6750
      Daniel Vetter 提交于
      ... not the port clock. This allows us to kill the funny semantics
      around pixel_target_clock.
      
      Since the dpll code still needs the real port clock, add a new
      port_clock field to the pipe configuration. Handling the default case
      for that one is a bit tricky, since encoders might not consistently
      overwrite it when retrying the crtc/encoder bw arbitrage step in the
      compute config stage. Hence we need to always clear port_clock and
      update it again if the encoder hasn't put in something more specific.
      This can't be done in one step since the encoder might want to adjust
      the mode first.
      
      I was a bit on the fence whether I should subsume the pixel multiplier
      handling into the port_clock, too. But then I decided against this
      since it's on an abstract level still the dotclock of the adjusted
      mode, and only our hw makes it a bit special due to the separate pixel
      mulitplier setting (which requires that the dpll runs at the
      non-multiplied dotclock).
      
      So after this patch the adjusted_mode accurately describes the mode we
      feed into the port, after the panel fitter and pixel multiplier (or
      line doubling, if we ever bother with that) have done their job.
      Since the fdi link is between the pfit and the pixel multiplier steps
      we need to be careful with calculating the fdi link config.
      
      v2: Fix up ilk cpu pll handling.
      
      v3: Introduce an fdi_dotclock variable in ironlake_fdi_compute_config
      to make it clearer that we transmit the adjusted_mode without the
      pixel multiplier taken into account. The old code multiplied the the
      available link bw with the pixel multiplier, which results in the same
      fdi configuration, but is much more confusing.
      
      v4: Rebase on top of Imre's is_cpu_edp removal.
      
      v5: Rebase on top of Paulo's haswell watermark fixes, which introduce
      a new place which looked at the pixel_clock and so needed conversion.
      
      v6: Split out prep patches as requested by Paulo Zanoni. Also rebase
      on top of the fdi dotclock handling fix in the fdi lanes/bw
      computation code.
      
      Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> (v3)
      Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> (v6)
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ff9a6750
    • D
      drm/i915: refactor cpu eDP PLL handling a bit · 7c62a164
      Daniel Vetter 提交于
      This prepares a bit for the next big patch, where we switch the
      semantics of the different clocks in the pipe config around.
      
      Since I've broken cpu eDP PLL handling in the first version I've
      figured some refactoring is in order.
      
      Split out on request from Paulo Zanoni.
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      7c62a164
  10. 01 6月, 2013 4 次提交
  11. 24 5月, 2013 2 次提交
  12. 23 5月, 2013 1 次提交
  13. 22 5月, 2013 1 次提交
  14. 21 5月, 2013 2 次提交
    • P
      drm/i915: make intel_ddi_get_cdclk_freq return values in KHz · b2b877ff
      Paulo Zanoni 提交于
      With this, that 338 can finally become the correct 337500.
      
      Due to the change we need to adjust the intel_dp_aux_ch function to
      set the correct value, so adjust the division and also use
      DIV_ROUND_CLOSEST instead of the old "round down" behavior because the
      spec says the value "should be programmed to get as close as possible
      to the ideal rate of 2MHz".
      
      Quoting Paulo's follow-up to a question from Chris Wilson to explain
      what exactly will change:
      
      I use the 337500 value on the next patch, when setting the
      ips_linetime value. The correct frequency is 337500, not 338000.
      
      ips_linetime = DIV_ROUND_CLOSEST(mode->htotal * 1000 * 8,
      intel_ddi_get_cdclk_freq);
      For a mode with htotal of 2640 [0] we'll have: (i) (2640 * 1000 * 8) /
      338000 = 62.48, resulting in 62 and (ii) (2640 * 1000 * 8) / 337500 =
      62.57 resulting in 63.
      
      For the case inside intel_dp.c:
      Previously we were using 338. So with the old formula we were writing
      338/2 = 169 to the register. And 337500 / 169 = 1997.04 (we use 337500
      here because it's the real clock value). With the new value of
      337500/2000 we'll have 168.75, which is 168 on the round-down case and
      169 on the round-closest case. If we write 168 to the register, 337500
      / 168 = 2008.92, and 2008.92 is more distant from 2000 than 1997.04.
      So with this patch we're changing the formula but still writing the
      same correct value to the DP AUX register.
      
      [0]: That's 1920x1080@50Hz on my DP monitor.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      [danvet: Pimp the commit message with Paulo's follow-up.]
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      b2b877ff
    • J
      drm/i915: add encoder get_config function v5 · 045ac3b5
      Jesse Barnes 提交于
      We can use this for fetching encoder specific pipe_config state, like
      mode flags, adjusted clock, etc.
      
      Just used for mode flags atm, so we can check the pipe config state at
      mode set time.
      
      v2: get_config when checking hw state too
      v3: fix DVO and LVDS mode flags (Ville)
          get SDVO DTD for flag fetch (Ville)
      v4: use input timings (Ville)
          correct command used (Ville)
          remove gen4 check (Ville)
      v5: get DDI flag config too
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> (v4)
      Tested-by: Paulo Zanoni <przanoni@gmail.com> (the new hsw ddi stuff)
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      045ac3b5
  15. 11 5月, 2013 5 次提交
  16. 04 5月, 2013 2 次提交
    • I
      drm/i915: hsw: fix link training for eDP on port-A · 3ab9c637
      Imre Deak 提交于
      According to BSpec the link training sequence for eDP on HSW port-A
      should be as follows:
      
      1. link training: clock recovery
      2. link training: equalization
      3. link training: set idle transmission mode
      4. display pipe enable
      5. link training: disable (set normal mode)
      
      Contrary to this at the moment we don't do step 3. and we do step 5.
      before step 4. Fix this by setting idle transmission mode for eDP at
      the end of intel_dp_complete_link_train and adding a new
      intel_dp_stop_link_training function to disable link training. With
      these changes we'll end up with the following functions corresponding
      to the above steps:
      
      intel_dp_start_link_train    -> step 1.
      intel_dp_complete_link_train -> step 2., step 3.
      intel_dp_stop_link_train     -> step 5.
      
      For port-A we'll call intel_dp_stop_link_train only after enabling the
      pipe, for everything else we'll call it right after
      intel_dp_complete_link_train to preserve the current behavior.
      
      Tested on HSW/HSW-ULT.
      
      In v2:
      - Due to a HW issue we must set idle transmission mode for port-A too
        before enabling the pipe. Thanks for Arthur Runyan for explaining
        this.
      - Update the patch subject to make it clear that it's an eDP fix, DP is
        not affected.
      
      v3:
      - rename intel_dp_link_train() to intel_dp_set_link_train(), use 'val'
        instead 'l' as var name. (Paulo)
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Tested-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3ab9c637
    • D
      Revert "drm/i915: revert eDP bpp clamping code changes" · 657445fe
      Daniel Vetter 提交于
      This reverts commit 57c21963.
      
      It's an ugly hack for a Haswell SDV platform where the vbt doesn't
      seem to fully agree with the panel. Since it seems to cause issues on
      real eDP platform let's just kill this hack again.
      Reported-and-tested-by: NJosh Boyer <jwboyer@gmail.com>
      References: https://lkml.org/lkml/2013/5/3/467
      Cc: Paulo Zanoni <przanoni@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      657445fe
  17. 03 5月, 2013 1 次提交