1. 20 5月, 2012 4 次提交
    • E
      drm/i915: detect digital outputs on Haswell · 0e72a5b5
      Eugeni Dodonov 提交于
      Digital port detection on Haswell is indicated by the presence of a bit in
      DDI_BUF_CTL for port A, and by a different register for ports B, C and D.
      So we check for those bits during the initialization time and let the hdmi
      function know about those.
      
      Note that this bit does not indicates whether the output is DP or HDMI.
      However, the DDI buffers can be programmed in a way that is shared between
      DP/HDMI and FDI/HDMI except for PORT E.
      
      So for now, we detect those digital outputs as being HDMI, but proper DP
      support is still pending.
      
      Note that DDI A can only drive eDP, so we do not handle it here for hdmi
      initialization.
      
      v2: simplify Haswell handling logic
      
      v3: use generic function for handling digital outputs.
      Signed-off-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      0e72a5b5
    • E
      drm/i915: program WM_LINETIME on Haswell · 1f8eeabf
      Eugeni Dodonov 提交于
      The line time can be programmed according to the number of horizontal
      pixels vs effective pixel rate ratio.
      
      v2: improve comment as per Chris Wilson suggestion
      
      v3: incorporate latest changes in specs.
      
      v4: move into wm update routine, also mention that the same routine can
      program IPS watermarks. We do not have their enablement code yet, nor
      handle the required clock settings at the moment, so this patch won't
      program those values for now.
      Signed-off-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      1f8eeabf
    • E
      drm/i915: support DDI training in FDI mode · c82e4d26
      Eugeni Dodonov 提交于
      Starting with Haswell, DDI ports can work in FDI mode to support
      connectivity with the outputs located on the PCH.
      
      This commit adds support for such connections in the intel_ddi module, and
      provides Haswell-specific functionality to make it work.
      
      v2: simplify the commit as per Daniel Vetter suggestion.
      Signed-off-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c82e4d26
    • E
      drm/i915: initialize DDI buffer translations · 45244b87
      Eugeni Dodonov 提交于
      DDI is introduced starting with Haswell GPU generation. So to simplify its
      management in the future, we also add intel_ddi.c to hold all the
      DDI-related items.
      
      Buffer translations for DDI links must be initialized prior to enablement.
      For FDI and DP, first 9 pairs of values are used to select the connection
      parameters. HDMI uses the last pair of values and ignores the first 9
      pairs. So we program HDMI values in both cases, which allows HDMI to work
      over both FDI and DP-friendly buffers.
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      45244b87
  2. 03 5月, 2012 6 次提交
  3. 19 4月, 2012 3 次提交
  4. 18 4月, 2012 2 次提交
  5. 17 4月, 2012 1 次提交
  6. 16 4月, 2012 1 次提交
  7. 29 3月, 2012 2 次提交
  8. 24 3月, 2012 1 次提交
  9. 30 1月, 2012 1 次提交
  10. 06 1月, 2012 1 次提交
  11. 04 1月, 2012 3 次提交
    • J
      drm/i915: add color key support v4 · 8ea30864
      Jesse Barnes 提交于
      Add new ioctls for getting and setting the current destination color
      key.  This allows for simple overlay display control by matching a color
      key value in the primary plane before blending the overlay on top.
      
      v2: remove unnecessary mutex acquire/release around reg accesses
      v3: add support for full color key management
      v4: fix copy & paste bug in snb_get_colorkey
          don't bother checking min/max values against docs as the docs are likely
          wrong (how could we handle 10bpc surface formats?)
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      8ea30864
    • J
      drm/i915: track sprite coverage and disable primary plane if possible · 175bd420
      Jesse Barnes 提交于
      To save power when the sprite is full screen, we can disable the primary
      plane on the same pipe.  Track the sprite status and enable/disable the
      primary opportunistically.
      
      v2: remove primary plane enable/disable hooks; they're identical
      Reviewed-by: NDaniel Vetter <daniel@ffwll.ch>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NKeith Packard <keithp@keithp.com>
      175bd420
    • J
      drm/i915: add SNB and IVB video sprite support v6 · b840d907
      Jesse Barnes 提交于
      The video sprites support various video surface formats natively and can
      handle scaling as well.  So add support for them using the new DRM core
      sprite support functions.
      
      v2: use drm specific fourcc header and defines
      v3: address Daniel's comments:
        - don't take struct mutex around register access (only needed for
          regs in the GT power well)
        - don't hold struct mutex across vblank waits
        - fix up update_plane API (pass obj instead of GTT offset)
        - add interlaced defines for sprite regs
        - drop unnecessary 'reg' variables
        - comment double buffered reg flushing
        Also fix w/h confusion when writing the scaling reg.
      v4: more fixes, address more comments from Daniel, and include Hai's fix
        - prevent divide by zero in scaling calculation (Hai Lan)
        - update to Ville's new DRM_FORMAT_* types
        - fix sprite watermark handling (calc based on CRTC size, separate
          from normal display wm)
        - remove private refcounts now that the fb cleanups handles things
      v5: add linear surface support
      v6: remove color key clearing & setting from update_plane
      
      For this version, I tested DPMS since it came up in the last review;
      DPMS off/on works ok when a video player is working under X, but for
      power saving we'll probably want to do something smarter.  I'll leave
      that for a separate patch on top.  Likewise with the refcounting/fb
      layer handling, which are really separate cleanups.
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NKeith Packard <keithp@keithp.com>
      b840d907
  12. 17 12月, 2011 1 次提交
  13. 16 11月, 2011 1 次提交
  14. 21 10月, 2011 3 次提交
  15. 22 9月, 2011 2 次提交
    • S
      drm/i915: Enable SDVO hotplug interrupts for HDMI and DVI · cc68c81a
      Simon Farnsworth 提交于
      I was seeing a nasty 5 frame glitch every 10 seconds, caused by the
      poll for connection on DVI attached by SDVO.
      
      As my SDVO DVI supports hotplug detect interrupts, the fix is to
      enable them, and hook them in to the various bits of driver
      infrastructure so that they work reliably.
      
      Note that this is only tested on single-function DVI-D SDVOs, on two
      platforms (965GME and 945GSE), and has not been checked against a
      specification document.
      
      With lots of help from Adam Jackson <ajax@redhat.com> on IRC.
      Signed-off-by: NSimon Farnsworth <simon.farnsworth@onelan.co.uk>
      Reviewed-by: NKeith Packard <keithp@keithp.com>
      Signed-off-by: NKeith Packard <keithp@keithp.com>
      cc68c81a
    • W
      drm/i915: pass ELD to HDMI/DP audio driver · e0dac65e
      Wu Fengguang 提交于
      Add ELD support for Intel Eaglelake, IbexPeak/Ironlake,
      SandyBridge/CougarPoint and IvyBridge/PantherPoint chips.
      
      ELD (EDID-Like Data) describes to the HDMI/DP audio driver the audio
      capabilities of the plugged monitor. It's built and passed to audio
      driver in 2 steps:
      
      (1) at get_modes time, parse EDID and save ELD to drm_connector.eld[]
      
      (2) at mode_set time, write drm_connector.eld[] to the Transcoder's hw
          ELD buffer and set the ELD_valid bit to inform HDMI/DP audio driver
      
      This patch is tested OK on G45/HDMI, IbexPeak/HDMI and IvyBridge/HDMI+DP.
      Test scheme: plug in the HDMI/DP monitor, and run
      
              cat /proc/asound/card0/eld*
      
      to check if the monitor name, HDMI/DP type, etc. show up correctly.
      
      Minor imperfection: the GEN5_AUD_CNTL_ST/DIP_Port_Select field always
      reads 0 (reserved). Without knowing the port number, I worked it around
      by setting the ELD_valid bit for ALL the three ports. It's tested to not
      be a problem, because the audio driver will find invalid ELD data and
      hence rightfully abort, even when it sees the ELD_valid indicator.
      
      Thanks to Zhenyu and Pierre-Louis for a lot of valuable help and testing.
      
      CC: Zhao Yakui <yakui.zhao@intel.com>
      CC: Wang Zhenyu <zhenyu.z.wang@intel.com>
      CC: Jeremy Bush <contractfrombelow@gmail.com>
      CC: Christopher White <c.white@pulseforce.com>
      CC: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
      CC: Paul Menzel <paulepanter@users.sourceforge.net>
      Signed-off-by: NWu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: NKeith Packard <keithp@keithp.com>
      e0dac65e
  16. 20 9月, 2011 1 次提交
  17. 16 8月, 2011 1 次提交
  18. 04 8月, 2011 2 次提交
  19. 09 7月, 2011 1 次提交
  20. 08 7月, 2011 1 次提交
    • J
      drm/i915: split out Ironlake pipe bpp picking code · 5a354204
      Jesse Barnes 提交于
      Figuring out which pipe bpp to use is a bit painful.  It depends on both
      the encoder and display configuration attached to a pipe.  For instance,
      to drive a 24bpp framebuffer out to an 18bpp panel, we need to use 6bpc
      on the pipe but also enable dithering.  But driving that same
      framebuffer to a DisplayPort output on another pipe means using 8bpc and
      no dithering.
      
      So split out and enhance the code to handle the various cases, returning
      an appropriate pipe bpp as well as whether dithering should be enabled.
      
      Save the resulting pipe bpp in the intel_crtc struct for use by encoders
      in calculating bandwidth requirements (defaults to 24bpp on pre-ILK).
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NKeith Packard <keithp@keithp.com>
      5a354204
  21. 29 6月, 2011 1 次提交
    • J
      drm/i915: load a ring frequency scaling table v3 · 23b2f8bb
      Jesse Barnes 提交于
      The ring frequency scaling table tells the PCU to treat certain GPU
      frequencies as if they were a given CPU frequency for purposes of
      scaling the ring frequency.  Normally the PCU will scale the ring
      frequency based on the CPU P-state, but with the table present, it will
      also take the GPU frequency into account.
      
      The main downside of keeping the ring frequency high while the CPU is
      at a low frequency (or asleep altogether) is increased power
      consumption.  But then if you're keeping your GPU busy, you probably
      want the extra performance.
      
      v2:
        - add units to debug table header (from Eric)
        - use tsc_khz as a fallback if the cpufreq driver doesn't give us a freq
          (from Chris)
      v3:
        - fix comments & debug output
        - remove unneeded force wake get/put
      Reviewed-by: NBen Widawsky <ben@bwidawsk.net>
      Tested-by: NEric Anholt <eric@anholt.net>
      Reviewed-by: NEric Anholt <eric@anholt.net>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NKeith Packard <keithp@keithp.com>
      23b2f8bb
  22. 05 6月, 2011 1 次提交