1. 17 8月, 2012 1 次提交
  2. 26 7月, 2012 1 次提交
    • D
      drm/i915: simplify possible_clones computation · 66a9278e
      Daniel Vetter 提交于
      Intel hw only has one MUX for encoders, so outputs are either not
      cloneable or all in the same group of cloneable outputs. This neatly
      simplifies the code and allows us to ditch some ugly if cascades in
      the dp and hdmi init code (well, we need these if cascades for other
      stuff still, but that can be taken care of in follow-up patches).
      
      Note that this changes two things:
      - dvo can now be cloned with sdvo, but dvo is gen2 whereas sdvo is
        gen3+, so no problem. Note that the old code had a bug and didn't
        allow cloning crt with dvo (but only the other way round).
      - sdvo-lvds can now be cloned with sdvo-non-tv. Spec says this won't
        work, but the only reason I've found is that you can't use the
        panel-fitter (used for lvds upscaling) with anything else. But we
        don't use the panel fitter for sdvo-lvds. Imo this part of Bspec is
        a) rather confusing b) mostly as a guideline to implementors (i.e.
        explicitly stating what is already implicit from the spec, without
        always going into the details of why). So I think we can ignore this
        - worst case we'll get a bug report from a user with with sdvo-lvds
        and sdvo-tmds and have to add that special case back in.
      
      Because sdvo lvds is a bit special explain in comments why sdvo LVDS
      outputs can be cloned, but native LVDS and eDP can't be cloned - we
      use the panel fitter for the later, but not for sdvo.
      
      Note that this also uncoditionally initializes the panel_vdd work used
      by eDP. Trying to be clever doesn't buy us anything (but strange bugs)
      and this way we can kill the is_edp check.
      
      v2: Incorporate review from Paulo
      - Add in a missing space.
      - Pimp comment message to address his concerns.
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      66a9278e
  3. 20 7月, 2012 1 次提交
  4. 05 7月, 2012 1 次提交
  5. 24 5月, 2012 2 次提交
    • R
      drm/i915: Adding TV Out Missing modes. · 9589919f
      Rodrigo Vivi 提交于
      These 2 modes were removed by mistake during a clean up.
      So, now it is time to add them back. For further info about
      supported mode and standard timing table please check:
      VOL_3_display_registers_updated.pdf at intellinuxgraphics.org.
      
      Note that this regression has been introduce in
      
      commit 55a6713b
      Author: Rodrigo Vivi <rodrigo.vivi@gmail.com>
      Date:   Thu Dec 15 14:47:33 2011 -0200
      
          drm/i915: Removing TV Out modes.
      
      and this commit partially reverts it by re-adding the wrongly removed
      modes.
      Reported-by: NRobert Lowery <rglowery@exemail.com.au>
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      [danvet: Pimped commit message to cite the commit that introduced this
      regression.]
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      9589919f
    • D
      drm/i915: wait for a vblank to pass after tv detect · bf2125e2
      Daniel Vetter 提交于
      Otherwise the hw will get confused and result in a black screen.
      
      This regression has been most likely introduce in
      
      commit 974b9331
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Sun Sep 5 00:44:20 2010 +0100
      
          drm/i915/tv: Poll for DAC state change
      
      That commit replace the first msleep(20) with a busy-loop, but failed
      to keep the 2nd msleep around. Later on we've replaced all these
      msleep(20) by proper vblanks.
      
      For reference also see the commit in xf86-video-intel:
      
      commit 1142be53eb8d2ee8a9b60ace5d49f0ba27332275
      Author: Jesse Barnes <jbarnes@hobbes.lan>
      Date:   Mon Jun 9 08:52:59 2008 -0700
      
          Fix TV programming:  add vblank wait after TV_CTL writes
      
          Fxies FDO bug #14000; we need to wait for vblank after
          writing TV_CTL or following "DPMS on" calls may not actually enable the output.
      
      v2: As suggested by Chris Wilson, add a small comment to ensure that
      no one accidentally removes this vblank wait again - there really
      seems to be no sane explanation for why we need it, but it is
      required.
      
      Launchpad: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/763688Reported-and-Tested-by: NRobert Lowery <rglowery@exemail.com.au>
      Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com>
      Cc: stable@vger.kernel.org
      Acked-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      bf2125e2
  6. 04 5月, 2012 1 次提交
    • D
      drm/i915: rip out unnecessary calls to drm_mode_set_crtcinfo · f7bacf19
      Daniel Vetter 提交于
      Our handling of the crtc timing computation has been nicely
      cargo-culted with calls to drm_mode_set_crtcinfo sprinkled all over
      the place. But with
      
      commit f9bef081
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sun Apr 15 19:53:19 2012 +0200
      
          drm/i915: don't clobber the special upscaling lvds timings
      
      and
      
      commit ca9bfa7e
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sat Jan 28 14:49:20 2012 +0100
      
          drm/i915: fixup interlaced vertical timings confusion, part 1
      
      we now only set the crtc timing fields in the encoder->mode_fixup
      (lvds only) and in crtc->mode_fixup (for everyone else). And since
      
      commit 75c13993
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sat Jan 28 23:48:46 2012 +0100
      
          drm/i915: fixup overlay checks for interlaced modes
      
      the only places we actually need the crtc timings is in the mode_set
      function.
      
      I guess the idea of the drm core is that every time it creates a drm
      mode, it also sets the timings. But afaics it never uses them, safe
      for the precise vblank timestamp code (but that can only run on active
      modes, i.e.  after our mode_fixup functions have been called). The
      problem is that drm core always sets CRTC_INTERLACE_HALVE_V, so the
      timings are pretty much bogus for us anyway (at least with interlaced
      support).
      
      So I guess it's the drivers job that every active modes needs to have
      crtc timings that suits it, and with these patches we should have
      that. drm core doesn't seem to care about modes that just get passed
      around. Hence we can now safely rip out all the remaining calls to
      set_crtcinfo left in the driver and clean up this confusion.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f7bacf19
  7. 03 5月, 2012 1 次提交
  8. 20 4月, 2012 1 次提交
  9. 27 3月, 2012 1 次提交
  10. 11 2月, 2012 1 次提交
    • D
      drm/i915: fixup interlaced vertical timings confusion, part 1 · ca9bfa7e
      Daniel Vetter 提交于
      We have a pretty decent confusion about vertical timings of interlaced
      modes. Peter Ross has written a patch that makes interlace modes work
      on a lot more platforms/output combinations by doubling the vertical
      timings.
      
      The issue with that patch is that core drm _does_ support specifying
      whether we want these vertical timings in fields or frames, we just
      haven't managed to consistently use this facility. The relavant
      function is drm_mode_set_crtcinfo, which fills in the crtc timing
      information.
      
      The first thing to note is that the drm core keeps interlaced modes in
      frames, but displays modelines in fields. So when the crtc modeset
      helper copies over the mode into adjusted_mode it will already contain
      vertical timings in half-frames. The result is that the fixup code in
      intel_crtc_mode_fixup doesn't actually do anything (in most cases at
      least).
      
      Now gen3+ natively supports interlaced modes and wants the vertical
      timings in frames. Which is what sdvo already fixes up, at least under
      some conditions.
      
      There are a few other place that demand vertical timings in fields
      but never actually deal with interlaced modes, so use frame timings
      for consistency, too. These are:
      - lvds panel,
      - dvo encoders - dvo is the only way gen2 could support interlaced
        mode, but currently we don't support any encoders that do.
      - tv out - despite that the tv dac sends out an interlaced signal it
        expects a progressive mode pipe configuration.
      All these encoders enforce progressive modes by resetting
      interlace_allowed.
      
      Hence we always want crtc vertical timings in frames. Enforce this in
      our crtc mode_fixup function and rip out any redudant timing
      computations from the encoders' mode_fixup function.
      
      v2-4: Adjust the vertical timings a bit.
      
      v5: Split out the 'subtract-one for interlaced' fixes.
      
      v6: Clarify issues around tv-out and gen2.
      Reviewed-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Tested-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Tested-by: NChristopher Egert <cme3000@gmail.com>
      Tested-by: NAlfonso Fiore <alfonso.fiore@gmail.com>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ca9bfa7e
  11. 07 1月, 2012 2 次提交
  12. 20 9月, 2011 1 次提交
  13. 14 7月, 2011 2 次提交
  14. 11 5月, 2011 2 次提交
  15. 13 4月, 2011 3 次提交
  16. 11 2月, 2011 1 次提交
  17. 08 2月, 2011 1 次提交
  18. 05 12月, 2010 1 次提交
  19. 23 9月, 2010 1 次提交
  20. 21 9月, 2010 1 次提交
  21. 14 9月, 2010 1 次提交
  22. 13 9月, 2010 1 次提交
  23. 12 9月, 2010 1 次提交
  24. 10 9月, 2010 2 次提交
  25. 08 9月, 2010 4 次提交
  26. 07 9月, 2010 1 次提交
  27. 22 8月, 2010 1 次提交
  28. 10 8月, 2010 1 次提交
  29. 02 8月, 2010 2 次提交