1. 06 9月, 2012 2 次提交
    • D
      drm/i915: rip out crtc prepare/commit indirection · eae307a5
      Daniel Vetter 提交于
      Just impendance matching with the the crtc helper stuff.
      
      ... and somehow the design of this all ended up in this commit here,
      too ;-)
      
      The big plan is that this new set of crtc display_funcs take full
      responsibility of modeset operations for the entire display output
      pipeline (by calling down into object-specific callbacks and
      functions). The platform-specific callbacks simply know best what the
      proper order is.
      
      This has the drawback that we can't do minimal change-overs any more
      if a modeset just disables one encoder in a cloned configuration
      (because we will only expose a disable/enable action that takes
      down/sets up the entire crtc including all encoders). Imo that's the
      only sane way to do it though:
      - The use-case for this is pretty minimal, even when presenting (at
        least sane people) should use a dual-screen output so that you can
        see your notes on your panel. Clone mode is imo BS.
      - With all the clone mode constrains, shared resources, and special
        ordering requirements (which differ even on the same platform
        sometimes for different outputs) there's no way we'd get this right
        for all cases. Especially since this is a under-used feature.
      - And to top it off: On haswell even dp link re-training requires us
        to take down the entire display pipe - otherwise the chip dies.
      
      So the only sane way is to do a full modeset on every crtc where the
      output config changes in any way.
      
      To support global modeset (i.e. set the configuration for all crtcs at
      once) we'd then add one more function to allocate global and shared
      objects in the best ways (e.g. fdi links, pch plls, ...). The crtc
      functions would then simply use the pre-allocated stuff (and shouldn't
      be able to fail, ever). We could even do all the object pinning in
      there (and maybe try to defragment the global gtt if we fail)!
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      eae307a5
    • D
      drm/i915: add crtc->enable/disable vfuncs insted of dpms · 76e5a89c
      Daniel Vetter 提交于
      Because that's what we're essentially calling. This is the first step
      in untangling the crtc_helper induced dpms handling mess we have - at
      the crtc level we only have 2 states and the magic is just in
      selecting which one (and atm there isn't even much magic, but on
      recent platforms where not even the crt output has more than 2 states
      we could do better).
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      76e5a89c
  2. 17 8月, 2012 9 次提交
  3. 12 8月, 2012 1 次提交
    • D
      drm/i915: ignore eDP bpc settings from vbt · 4344b813
      Daniel Vetter 提交于
      This has originally been introduced to not oversubscribe the dp links
      in
      
      commit 885a5fb5
      Author: Zhenyu Wang <zhenyuw@linux.intel.com>
      Date:   Tue Jan 12 05:38:31 2010 +0800
      
          drm/i915: fix pixel color depth setting on eDP
      
      Since then we've fixed up the dp link bandwidth calculation code and
      should now automatically fall back to 6bpc dithering. So this is
      unnecessary.
      
      Furthermore it seems to break the new MacbookPro with retina display,
      hence let's just rip this out.
      Reported-by: NBenoit Gschwind <gschwind@gnu-log.net>
      Cc: Benoit Gschwind <gschwind@gnu-log.net>
      Cc: Francois Rigaut <frigaut@gmail.com>
      Cc: Greg KH <gregkh@linuxfoundation.org>
      Cc: stable@vger.kernel.org
      Tested-by: NBenoit Gschwind <gschwind@gnu-log.net>
      Tested-by: Bernhard Froemel <froemel at vmars tuwien.ac.at>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      
      --
      
      Testing feedback highgly welcome, and thanks for Benoit for finding
      out that the bpc computations are busted.
      -Daniel
      4344b813
  4. 11 8月, 2012 1 次提交
  5. 10 8月, 2012 1 次提交
  6. 27 7月, 2012 1 次提交
  7. 26 7月, 2012 7 次提交
    • D
      drm/i915: rip out sanitize_pm again · acbe9475
      Daniel Vetter 提交于
      We believe to have squashed all issues around the gen6+ rps interrupt
      generation and why the gpu sometimes got stuck. With that cleared up,
      there's no user left for the sanitize_pm infrastructure, so let's just
      rip it out.
      
      Note that 'intel_reg_write 0xa014 0x13070000' is the w/a if we find
      ourselves stuck again.
      Acked-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      acbe9475
    • A
      vlv: it might be wise if we initialised the flag value... · af447bd3
      Alan Cox 提交于
      Otherwise our initial behaviour is "randomly save a bogus PLL
      choice" as far as I can see.
      Signed-off-by: NAlan Cox <alan@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      af447bd3
    • C
      drm/i915: Avoid concurrent access when marking the device as idle/busy · f047e395
      Chris Wilson 提交于
      As suggested by Daniel, rip out the independent timers for device and
      crtc busyness and integrate the manual powermanagement of the display
      engine into the GEM core and its request tracking. The benefits are that
      the code is a lot smaller, fewer moving parts and should fit more neatly
      into the overall activity tracking of the driver.
      
      v2: Complete overhaul and removal of the racy timers and workers.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f047e395
    • T
      drm/i915: Support for ns2501-DVO · 7434a255
      Thomas Richter 提交于
      This patch adds support for the ns2501 DVO, found in some older Fujitsu/Siemens Labtops.
      It is in the state of "works for me".
      Includes now proper DPMS support. Includes switching between resolutions -
      from 640x480 to 1024x768.
      Currently assumes that the native display resolution is 1024x768.
      
      The ns2501 seems to be rather critical - if the output PLL is not
      running, the chip doesn't seem to be clocked and then doesn't react
      on i2c messages. Thus, a quick'n-dirty trick ensures that the DVO
      is active before submitting any i2c messages to it. This is
      probably to be reviewed.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=17902Signed-off-by: NThomas Richter <thor@math.tu-berlin.de>
      [danvet: fixup whitespace fail.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      7434a255
    • P
      drm/i915: add port field to struct intel_dp and use it · ab9d7c30
      Paulo Zanoni 提交于
      This will be needed for Haswell, but already has its uses here.
      
      This patch started as a small patch written patch by Shobhit Kumar,
      but it has changed so much that none of its original lines remain.
      
      Credits-to: Shobhit Kumar <shobhit.kumar@intel.com>
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ab9d7c30
    • D
      drm/i915: add port parameter to intel_hdmi_init · 08d644ad
      Daniel Vetter 提交于
      Instead of having a giant if cascade to figure this out according to
      the passed-in register. We could do quite a bit more cleaning up and
      all by using the port at more places, but I think this should be part
      of a bigger rework to introduce a struct intel_digital_port which
      would keep track of all these things. I guess this will be part of
      some haswell-DP-induced refactoring.
      
      For now this rips out the big cascade, which is what annoyed me so
      much.
      
      v2: Add port variable name back for the func decl (I've tried to trick
      myself below the 80 char limit).
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      08d644ad
    • 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
  8. 25 7月, 2012 1 次提交
  9. 20 7月, 2012 2 次提交
  10. 05 7月, 2012 7 次提交
  11. 04 7月, 2012 1 次提交
  12. 28 6月, 2012 1 次提交
  13. 26 6月, 2012 2 次提交
  14. 20 6月, 2012 2 次提交
  15. 18 6月, 2012 1 次提交
    • E
      drm/i915: properly wait for SBI status · 39fb50f6
      Eugeni Dodonov 提交于
      Somehow this went unnoticed in the past reviews, but the condition would
      never timeout properly.
      
      This was initially introduced in the v2 of original SBI enabling patch.
      Highly embarrassing.
      
      Note that we now actually time out for the read, which resulted in gcc
      complaining that we can now return unitialized garbage if that
      happens. There's not much we can do here because there's not much
      point in thread -EIO all the way down through these functions. Hence
      simply shut up the compiler.
      Reported-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NEugeni Dodonov <eugeni.dodonov@intel.com>
      [danvet: Added note and squashed uninitialized value shut-up into this
      patch.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      39fb50f6
  16. 16 6月, 2012 1 次提交