1. 04 9月, 2013 1 次提交
    • V
      drm/i915: Fix pipe config warnings when dealing with LVDS fixed mode · 4c6df4b4
      Ville Syrjälä 提交于
      intel_fixed_panel_mode() overwrote the adjusted_mode with the fixed mode
      only partially. Notably it forgot to copy over the sync flags. The LVDS code however programmed the hardware with the sync flags from fixed mode, and then later the pipe config comparison obviously failed as we
      filled out the adjusted_mode in get_config from the real registers.
      
      Just call drm_mode_copy() in intel_fixed_panel_mode() to copy over the
      whole thing, and then just use adjusted_mode in the LVDS code to figure
      out which sync settings the hardware needs.
      
      Also constify the fixed_mode argument to intel_fixed_panel_mode().
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      4c6df4b4
  2. 03 9月, 2013 1 次提交
    • I
      drm/i915: fix lvds/dp panel fitter setting · a52690e4
      Imre Deak 提交于
      If need to enable the panel fitter, the crtc timings have to be
      programmed according to the panel's native (fixed) mode. This isn't the
      case atm, since after the encoder changes adjusted_mode to fixed
      mode the crtc_* timing fields of adjusted_mode will stay at their original
      non-native values that the user passed in. This results in a corrupted
      output.
      
      One exception is when we have a second pass of computing encoder configs
      due to bandwidth limitation, since then we'll set adjusted_mode.crtc_*
      fields to the fixed mode values set in the first pass; so in this case
      things will work out.
      
      Fix this by updating the adjusted_mode.crtc_* fields when we set the
      fixed panel mode.
      
      This regression has been introduced in
      
      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
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a52690e4
  3. 07 8月, 2013 2 次提交
  4. 05 8月, 2013 1 次提交
    • D
      drm/i915: clean up crtc timings computation · 135c81b8
      Daniel Vetter 提交于
      In the old days of the crtc helpers we've only had the encoder and
      crtc ->mode_fixup callbacks. So when the lvds connector wanted to
      adjust the crtc timings it had to set a driver-private mode flag to
      tell the crtc mode fixup code to not overwrite them with the generic
      ones.
      
      When converting things to the new infrastructure I've kept the entire
      logic and only moved the flag to pipe_config->timings_set. But this
      logic is pretty tricky and already caused regressions:
      
      commit 21d8a475
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Fri Jul 12 08:07:30 2013 +0200
      
          drm/i915: fix pfit regression for non-autoscaled resolutions
      
      So take advantage of the flexibility our own modeset infrastructure
      affords us and prefill default crtc timings. This allows us to rip out
      ->timings_set. Note that we overwrite things again when retrying the
      pipe config computation due to bandwidth constraints to avoid bogus
      crtc timings if the encoder only does relative adjustments (which is
      how the pfit code works). Only a theoretical concern though since
      platforms where we retry (pch-split platforms) do not need
      adjustements (since only the old gmch pfit needs that). But let's
      better be safe than sorry.
      
      Since we now initialize the crtc timings before calling the
      encoder->compute_config functions the crtc initialization in the gmch
      pfit code is now redudant and so can be removed.
      
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Mika Kuoppala <mika.kuoppala@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      [danvet: Add a paragraph to the commit message to explain why we can
      ditch the crtc timings initialization call from the gmch pfit code, to
      answer a question from Rodrigo's review.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      135c81b8
  5. 20 7月, 2013 1 次提交
  6. 13 7月, 2013 1 次提交
    • D
      drm/i915: fix pfit regression for non-autoscaled resolutions · 21d8a475
      Daniel Vetter 提交于
      I.e. for letter/pillarboxing. For those cases we need to adjust the
      mode a bit, but Jesse gmch pfit refactoring in
      
      commit 2dd24552
      Author: Jesse Barnes <jbarnes@virtuousgeek.org>
      Date:   Thu Apr 25 12:55:01 2013 -0700
      
          drm/i915: factor out GMCH panel fitting code and use for eDP v3
      
      broke that by reordering the computation of the gmch pfit state with
      the block of code that prepared the adjusted mode for it and told the
      modeset core not to overwrite the adjusted mode with default settings.
      
      We might want to switch around the core code to just fill in defaults,
      but this code predates the pipe_config modeset rework. And in the old
      crtc helpers we did not have a suitable spot to do this.
      
      Cc: Mika Kuoppala <mika.kuoppala@intel.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Hans de Bruin <jmdebruin@xmsnet.nl>
      Reported-and-tested-by: NHans de Bruin <jmdebruin@xmsnet.nl>
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      21d8a475
  7. 23 5月, 2013 1 次提交
  8. 30 4月, 2013 2 次提交
  9. 26 4月, 2013 3 次提交
  10. 25 4月, 2013 3 次提交
  11. 18 4月, 2013 1 次提交
  12. 02 4月, 2013 1 次提交
  13. 28 3月, 2013 2 次提交
  14. 24 3月, 2013 1 次提交
  15. 23 3月, 2013 1 次提交
  16. 15 2月, 2013 1 次提交
  17. 05 12月, 2012 1 次提交
  18. 22 11月, 2012 1 次提交
    • D
      drm/i915: resurrect panel lid handling · a726915c
      Daniel Vetter 提交于
      But disabled by default. This essentially reverts
      
      commit bcd5023c
      Author: Dave Airlie <airlied@redhat.com>
      Date:   Mon Mar 14 14:17:55 2011 +1000
      
          drm/i915: disable opregion lid detection for now
      
      but leaves the autodetect mode disabled. There's also the explicit lid
      status option added in
      
      commit fca87409
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Thu Feb 17 13:44:48 2011 +0000
      
          drm/i915: Add a module parameter to ignore lid status
      
      Which overloaded the meaning for the panel_ignore_lid parameter even
      more. To fix up this mess, give the non-negative numbers 0,1 the
      original meaning back and use negative numbers to force a given state.
      So now we have
      
      1  - disable autodetect, return unknown
      0  - enable autodetect
      -1 - force to disconnected/lid closed
      -2 - force to connected/lid open
      
      v2: My C programmer license has been revoked ...
      
      v3: Beautify the code a bit, as suggested by Chris Wilson.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=27622Tested-by: NAndreas Sturmlechner <andreas.sturmlechner@gmail.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a726915c
  19. 12 11月, 2012 1 次提交
  20. 26 10月, 2012 1 次提交
  21. 23 10月, 2012 3 次提交
  22. 04 9月, 2012 1 次提交
  23. 12 8月, 2012 1 次提交
  24. 06 8月, 2012 1 次提交
  25. 20 7月, 2012 1 次提交
    • P
      drm/i915: don't forget the PCH backlight registers · a4f32fc3
      Paulo Zanoni 提交于
      When we enable/disable the CPU backlight registers we can't forget to
      enable/disable the PCH backlight registers. Since we're using the CPU
      registers we should also unset the override bit.
      
      Fixes a regression on the following commit:
        drm/i915: properly enable the blc controller on the right pipe
      
      The commit just deleted the code that sets the PCH registers, so it
      was relying on the values set by the BIOS. I told my BIOS to boot on
      the DVI monitor instead of the LVDS panel, so I noticed the bug.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a4f32fc3
  26. 13 6月, 2012 1 次提交
    • D
      drm/i915: properly enable the blc controller on the right pipe · 24ded204
      Daniel Vetter 提交于
      On gen4+ we have a bitfield to specify from which pipe the backlight
      controller should take it's clock. For PCH split platforms we've
      already set these up, but only at initialization time. And without
      taking into account the 3rd pipe added with ivb.
      
      For gen4, we've completely ignored these. Although we do restrict lvds
      to the 2nd pipe, so this is only a problem on machines where we boot
      up with the lvds on the first pipe.
      
      So restructure the code to enable the backlight on the right pipe at
      modeset time.
      
      v2: For odd reasons panel_enable_backlight gets called twice in a
      modeset, so we can't WARN_ON in there if the backlight controller is
      switched on already.
      
      v3: backlight enable can also be called through dpms on, so the check
      in there is legit. Update the comment to reflect that.
      Tested-By: NKamal Mostafa <kamal@canonical.com>
      Bugzilla: https://bugs.launchpad.net/bugs/954661
      Cc: Carsten Emde <C.Emde@osadl.org>
      Reviewed-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      24ded204
  27. 05 6月, 2012 1 次提交
  28. 22 5月, 2012 1 次提交
  29. 16 4月, 2012 1 次提交
  30. 19 3月, 2012 2 次提交