1. 17 12月, 2010 4 次提交
    • C
      drm/i915/sdvo: Border and stall select became test bits in gen5 · 6714afb1
      Chris Wilson 提交于
      This is even more important as those bits will be moved in future.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      6714afb1
    • M
      drm/i915: Add Guess-o-matic for pageflip timestamping. · 49b14a5c
      Mario Kleiner 提交于
      This patch changes the strategy for pageflip completion
      timestamping. It detects if the pageflip completion
      routine gets executed before or after drm_handle_vblank,
      and thereby decides if the returned vblank count and
      timestamp must be incremented by 1 frame(duration) or
      not. It compares the current system time at invocation
      against the current vblank timestamp. If the difference
      is more than 0.9 video refresh interval durations then
      it assumes the vblank timestamp and count are outdated
      and need to be incremented and does so. Otherwise it
      assumes a delayed pageflip irq and doesn't correct
      the timestamp and count.
      
      Advantage of this patch: Pageflip timestamping becomes
      more robust against implementation errors and is
      maintenance free for future GPU's.
      
      Disadvantage: A few dozen (hundred?) nsecs extra
      time spent in pageflip irq handler for each flip,
      compared to hard-coded per-gpu settings?
      Signed-off-by: NMario Kleiner <mario.kleiner@tuebingen.mpg.de>
      Acked-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      49b14a5c
    • M
      drm/i915: Add support for precise vblank timestamping (v2) · 0af7e4df
      Mario Kleiner 提交于
      v2: Change IS_IRONLAKE to IS_GEN5 to adapt to 2.6.37
      
      This patch adds new functions for use by the drm core:
      
      .get_vblank_timestamp() provides a precise timestamp
      for the end of the most recent (or current) vblank
      interval of a given crtc, as needed for the DRI2
      implementation of the OML_sync_control extension.
      It is a thin wrapper around the drm function
      drm_calc_vbltimestamp_from_scanoutpos() which does
      almost all the work.
      
      .get_scanout_position() provides the current horizontal
      and vertical video scanout position and "in vblank"
      status of a given crtc, as needed by the drm for use by
      drm_calc_vbltimestamp_from_scanoutpos().
      
      The patch modifies the pageflip completion routine
      to use these precise vblank timestamps as the timestamps
      for pageflip completion events.
      
      This code has been only tested on a HP-Mini Netbook with
      Atom processor and Intel 945GME gpu. The codepath for
      (IS_G4X(dev) || IS_GEN5(dev) || IS_GEN6(dev)) gpu's
      has not been tested so far due to lack of hardware.
      Signed-off-by: NMario Kleiner <mario.kleiner@tuebingen.mpg.de>
      Acked-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      0af7e4df
    • C
      d8c58fab
  2. 16 12月, 2010 6 次提交
  3. 15 12月, 2010 5 次提交
  4. 14 12月, 2010 4 次提交
  5. 10 12月, 2010 10 次提交
  6. 09 12月, 2010 2 次提交
    • C
      drm/i915/ringbuffer: Handle wrapping of the autoreported HEAD · 8c0a6bfe
      Chris Wilson 提交于
      If the tail advances beyond the autoreport HEAD value, then we need to
      fallback to an uncached read of the HEAD register in order to ascertain
      the correct amount of remaining space in the ringbuffer.
      Reported-by: NFang, Xun <xunx.fang@intel.com>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32259Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      8c0a6bfe
    • D
      drm/i915/dp: Fix I2C/EDID handling with active DisplayPort to DVI converter · 8316f337
      David Flynn 提交于
      The DisplayPort standard (1.1a) states that:
        The I2C-over-AUX Reply field is valid only when Native AUX CH Reply
        field is AUX_ACK (00). When Native AUX CH Reply field is not 00, then,
        I2C-over-AUX Reply field must be 00 and be ignored.
      
      This fixes broken EDID reading when using an active DisplayPort to
      duallink DVI converter.  If the AUX CH replier chooses to defer the
      transaction, a short read occurs and erroneous data is returned as
      the i2c reply due to a lack of length checking and failure to check
      for AUX ACK.
      
      As a result, broken EDIDs can look like:
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
      00: bc bc bc ff bc bc bc ff bc bc bc ac bc bc bc 45    ???.???.???????E
      10: bc bc bc 10 bc bc bc 34 bc bc bc ee bc bc bc 4c    ???????4???????L
      20: bc bc bc 50 bc bc bc 00 bc bc bc 40 bc bc bc 00    ???P???.???@???.
      30: bc bc bc 01 bc bc bc 01 bc bc bc a0 bc bc bc 40    ???????????????@
      40: bc bc bc 00 bc bc bc 00 bc bc bc 00 bc bc bc 55    ???.???.???.???U
      50: bc bc bc 35 bc bc bc 31 bc bc bc 20 bc bc bc fc    ???5???1??? ????
      60: bc bc bc 4c bc bc bc 34 bc bc bc 46 bc bc bc 00    ???L???4???F???.
      70: bc bc bc 38 bc bc bc 11 bc bc bc 20 bc bc bc 20    ???8??????? ???
      80: bc bc bc ff bc bc bc ff bc bc bc ff bc bc bc ff    ???.???.???.???.
      ...
      
      which can lead to:
      [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
      [drm:drm_edid_block_valid] *ERROR* Raw EDID:
      <3>30 30 30 30 30 30 30 32 38 32 30 32 63 63 31 61  000000028202cc1a
      <3>28 00 02 8c 00 00 00 00 18 00 00 00 00 00 00 00  (...............
      <3>20 4c 61 73 74 20 62 65 61 63 6f 6e 3a 20 33 32   Last beacon: 32
      <3>32 30 6d 73 20 61 67 6f 46 00 05 8c 00 00 00 00  20ms agoF.......
      <3>36 00 00 00 00 00 00 00 00 0c 57 69 2d 46 69 20  6.........Wi-Fi
      <3>52 6f 75 74 65 72 01 08 82 84 8b 96 24 30 48 6c  Router......$0Hl
      <3>03 01 01 06 02 00 00 2a 01 00 2f 01 00 32 04 0c  .......*../..2..
      <3>12 18 60 dd 09 00 10 18 02 00 00 01 00 00 18 00  ..`.............
      Signed-off-by: NDavid Flynn <davidf@rd.bbc.co.uk>
      [ickle: fix up some surrounding checkpatch warnings]
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@kernel.org
      8316f337
  7. 08 12月, 2010 9 次提交