1. 26 6月, 2012 1 次提交
  2. 14 6月, 2012 1 次提交
  3. 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
  4. 05 6月, 2012 2 次提交
  5. 31 5月, 2012 1 次提交
    • P
      drm/i915: add set_infoframes to struct intel_hdmi · 687f4d06
      Paulo Zanoni 提交于
      We need a function that is able to fully 'set' the state of the DIP
      registers to a known state.
      
      Currently, we have the write_infoframe function that is called twice:
      once for AVI and once for SPD. The problem is that write_infoframe
      tries to keep the state of the DIP register as it is, changing only
      the minimum necessary bits. The second problem is that
      write_infoframe does twice (once for each time it is called) some
      work that should be done only once (like waiting for vblank and
      setting the port). If we add even more DIPs, it will do even more
      repeated work.
      
      This patch only adds the infrastructure keeping the code behavior the
      same as before.
      
      v2: add static keywords
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      687f4d06
  6. 20 5月, 2012 7 次提交
    • D
      drm/i915: fixup infoframe support for sdvo · 81014b9d
      Daniel Vetter 提交于
      At least the worst offenders:
      - SDVO specifies that the encoder should compute the ecc. Testing also
        shows that we must not send the ecc field, so copy the dip_infoframe
        struct to a temporay place and avoid the ecc field. This way the avi
        infoframe is exactly 17 bytes long, which agrees with what the spec
        mandates as a minimal storage capacity (with the ecc field it would
        be 18 bytes).
      - Only 17 when sending the avi infoframe. The SDVO spec explicitly
        says that sending more data than what the device announces results
        in undefined behaviour.
      - Add __attribute__((packed)) to the avi and spd infoframes, for
        otherwise they're wrongly aligned. Noticed because the avi infoframe
        ended up being 18 bytes large instead of 17. We haven't noticed this
        yet because we don't use the uint16_t fields yet (which are the only
        ones that would be wrongly aligned).
      
      This regression has been introduce by
      
      3c17fe4b is the first bad commit
      commit 3c17fe4b
      Author: David Härdeman <david@hardeman.nu>
      Date:   Fri Sep 24 21:44:32 2010 +0200
      
          i915: enable AVI infoframe for intel_hdmi.c [v4]
      
      Patch tested on my g33 with a sdvo hdmi adaptor.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=25732
      Tested-by: Peter Ross <pross@xvid.org> (G35 SDVO-HDMI)
      Reviewed-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      81014b9d
    • E
      drm/i915: prepare HDMI link for Haswell · 72662e10
      Eugeni Dodonov 提交于
      On Haswell, we need to properly train the DDI buffers prior to enabling
      HDMI, and enable the required clocks with correct dividers for the desired
      frequency.
      
      Also, we cannot simple reuse HDMI routines from previous generations of
      GPU, as most of HDMI-specific stuff is being done via the DDI port
      programming instead of HDMI-specific registers.
      
      This commit take advantage of the WR PLL clock table which is in a
      separate (previous) commit to select the right divisors for each mode.
      Signed-off-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      72662e10
    • E
      drm/i915: move HDMI structs to shared location · f5bbfca3
      Eugeni Dodonov 提交于
      Move intel_hdmi data structure and support functions to a shared location,
      to allow their usage from intel_ddi module.
      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>
      f5bbfca3
    • 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
  7. 03 5月, 2012 6 次提交
  8. 19 4月, 2012 3 次提交
  9. 18 4月, 2012 2 次提交
  10. 17 4月, 2012 1 次提交
  11. 16 4月, 2012 1 次提交
  12. 29 3月, 2012 2 次提交
  13. 24 3月, 2012 1 次提交
  14. 30 1月, 2012 1 次提交
  15. 06 1月, 2012 1 次提交
  16. 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
  17. 17 12月, 2011 1 次提交
  18. 16 11月, 2011 1 次提交
  19. 21 10月, 2011 3 次提交
  20. 22 9月, 2011 1 次提交