1. 29 10月, 2013 4 次提交
    • D
      drm/i915: Fix the PPT fdi lane bifurcate state handling on ivb · 1fbc0d78
      Daniel Vetter 提交于
      Originally I've thought that this is leftover hw state dirt from the
      BIOS. But after way too much helpless flailing around on my part I've
      noticed that the actual bug is when we change the state of an already
      active pipe.
      
      For example when we change the fdi lines from 2 to 3 without switching
      off outputs in-between we'll never see the crucial on->off transition
      in the ->modeset_global_resources hook the current logic relies on.
      
      Patch version 2 got this right by instead also checking whether the
      pipe is indeed active. But that in turn broke things when pipes have
      been turned off through dpms since the bifurcate enabling is done in
      the ->crtc_mode_set callback.
      
      To address this issues discussed with Ville in the patch review move
      the setting of the bifurcate bit into the ->crtc_enable hook. That way
      we won't wreak havoc with this state when userspace puts all other
      outputs into dpms off state. This also moves us forward with our
      overall goal to unify the modeset and dpms on paths (which we need to
      have to allow runtime pm in the dpms off state).
      
      Unfortunately this requires us to move the bifurcate helpers around a
      bit.
      
      Also update the commit message, I've misanalyzed the bug rather badly.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70507Tested-by: NJan-Michael Brummer <jan.brummer@tabos.org>
      Cc: stable@vger.kernel.org
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      1fbc0d78
    • R
      drm/i915: No LVDS hardware on Intel D410PT and D425KT · 645378d8
      Rob Pearce 提交于
      The Intel D410PT(LW) and D425KT Mini-ITX desktop boards both show up as
      having LVDS but the hardware is not populated. This patch adds them to
      the list of such systems. Patch is against 3.11.4
      
      v2: Patch revised to match the D425KT exactly as the D425KTW does have
      LVDS.  According to Intel's documentation, the D410PTL and D410PLTW
      don't.
      Signed-off-by: NRob Pearce <rob@flitspace.org.uk>
      Cc: stable@vger.kernel.org
      [danvet: Pimp commit message to my liking and add cc: stable.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      645378d8
    • J
      drm/i915/dp: workaround BIOS eDP bpp clamping issue · c6cd2ee2
      Jani Nikula 提交于
      This isn't a real fix to the problem, but rather a stopgap measure while
      trying to find a proper solution.
      
      There are several laptops out there that fail to light up the eDP panel
      in UEFI boot mode. They seem to be mostly IVB machines, including but
      apparently not limited to Dell XPS 13, Asus TX300, Asus UX31A, Asus
      UX32VD, Acer Aspire S7. They seem to work in CSM or legacy boot.
      
      The difference between UEFI and CSM is that the BIOS provides a
      different VBT to the kernel. The UEFI VBT typically specifies 18 bpp and
      1.62 GHz link for eDP, while CSM VBT has 24 bpp and 2.7 GHz link. We end
      up clamping to 18 bpp in UEFI mode, which we can fit in the 1.62 Ghz
      link, and for reasons yet unknown fail to light up the panel.
      
      Dithering from 24 to 18 bpp itself seems to work; if we use 18 bpp with
      2.7 GHz link, the eDP panel lights up. So essentially this is a link
      speed issue, and *not* a bpp clamping issue.
      
      The bug raised its head since
      commit 657445fe
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sat May 4 10:09:18 2013 +0200
      
          Revert "drm/i915: revert eDP bpp clamping code changes"
      
      which started clamping bpp *before* computing the link requirements, and
      thus affecting the required bandwidth. Clamping after the computations
      kept the link at 2.7 GHz.
      
      Even though the BIOS tells us to use 18 bpp through the VBT, it happily
      boots up at 24 bpp and 2.7 GHz itself! Use this information to
      selectively ignore the VBT provided value.
      
      We can't ignore the VBT eDP bpp altogether, as there are other laptops
      that do require the clamping to be used due to EDID reporting higher bpp
      than the panel can support.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59841
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67950Tested-by: NUlf Winkelvos <ulf@winkelvos.de>
      Tested-by: Njkp <jkp@iki.fi>
      CC: stable@vger.kernel.org
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c6cd2ee2
    • V
      drm/i915: Add HSW CRT output readout support · 7195a50b
      Ville Syrjälä 提交于
      Call intel_ddi_get_config() to get the pipe_bpp settings from
      DDI.
      
      The sync polarity settings from DDI are irrelevant for CRT
      output, so override them with data from the ADPA register.
      
      Note: This is already merged in drm-intel-next-queued as
      
      commit 6801c18c
      Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Date:   Tue Sep 24 14:24:05 2013 +0300
      
          drm/i915: Add HSW CRT output readout support
      
      but is required for the following edp bpp bugfix.
      
      v2: Extract intel_crt_get_flags()
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69691Tested-by: NQingshuai Tian <qingshuai.tian@intel.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      7195a50b
  2. 28 10月, 2013 1 次提交
  3. 19 10月, 2013 8 次提交
  4. 18 10月, 2013 3 次提交
  5. 16 10月, 2013 2 次提交
  6. 15 10月, 2013 1 次提交
  7. 11 10月, 2013 2 次提交
  8. 10 10月, 2013 15 次提交
  9. 09 10月, 2013 1 次提交
  10. 08 10月, 2013 1 次提交
  11. 04 10月, 2013 2 次提交
    • C
      drm/i915: Only apply DPMS to the encoder if enabled · c9976dcf
      Chris Wilson 提交于
      The current test for an attached enabled encoder fails if we have
      multiple connectors aliased to the same encoder - both connectors
      believe they own the enabled encoder and so we attempt to both enable
      and disable DPMS on the encoder, leading to hilarity and an OOPs:
      
      [  354.803064] WARNING: CPU: 0 PID: 482 at
      /usr/src/linux/dist/3.11.2/drivers/gpu/drm/i915/intel_display.c:3869 intel_modeset_check_state+0x764/0x770 [i915]()
      [  354.803064] wrong connector dpms state
      [  354.803084] Modules linked in: nfsd auth_rpcgss oid_registry exportfs nfs lockd sunrpc xt_nat iptable_nat nf_nat_ipv4 nf_nat xt_limit xt_LOG xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 ipt_REJECT ipv6 xt_recent xt_conntrack nf_conntrack iptable_filter ip_tables x_tables snd_hda_codec_realtek snd_hda_codec_hdmi x86_pkg_temp_thermal snd_hda_intel coretemp kvm_intel snd_hda_codec i915 kvm snd_hwdep snd_pcm_oss snd_mixer_oss crc32_pclmul snd_pcm crc32c_intel e1000e intel_agp igb ghash_clmulni_intel intel_gtt aesni_intel cfbfillrect aes_x86_64 cfbimgblt lrw cfbcopyarea drm_kms_helper ptp video thermal processor gf128mul snd_page_alloc drm snd_timer glue_helper 8250_pci snd pps_core ablk_helper agpgart cryptd sg soundcore fan i2c_algo_bit sr_mod thermal_sys 8250 i2c_i801 serial_core
      hwmon cdrom i2c_core evdev button
      [  354.803086] CPU: 0 PID: 482 Comm: kworker/0:1 Not tainted 3.11.2 #1
      [  354.803087] Hardware name: Supermicro X10SAE/X10SAE, BIOS 1.00 05/03/2013 [  354.803091] Workqueue: events console_callback
      [  354.803092]  0000000000000009 ffff88023611db48 ffffffff814048ac ffff88023611db90
      [  354.803093]  ffff88023611db80 ffffffff8103d4e3 ffff880230d82800 ffff880230f9b800
      [  354.803094]  ffff880230f99000 ffff880230f99448 ffff8802351c0e00 ffff88023611dbe0
      [  354.803094] Call Trace:
      [  354.803098]  [<ffffffff814048ac>] dump_stack+0x54/0x8d
      [  354.803101]  [<ffffffff8103d4e3>] warn_slowpath_common+0x73/0x90
      [  354.803103]  [<ffffffff8103d547>] warn_slowpath_fmt+0x47/0x50
      [  354.803109]  [<ffffffffa089f1be>] ? intel_ddi_connector_get_hw_state+0x5e/0x110 [i915]
      [  354.803114]  [<ffffffffa0896974>] intel_modeset_check_state+0x764/0x770 [i915]
      [  354.803117]  [<ffffffffa08969bb>] intel_connector_dpms+0x3b/0x60 [i915]
      [  354.803120]  [<ffffffffa037e1d0>] drm_fb_helper_dpms.isra.11+0x120/0x160 [drm_kms_helper]
      [  354.803122]  [<ffffffffa037e24e>] drm_fb_helper_blank+0x3e/0x80 [drm_kms_helper]
      [  354.803123]  [<ffffffff812116c2>] fb_blank+0x52/0xc0
      [  354.803125]  [<ffffffff8121e04b>] fbcon_blank+0x21b/0x2d0
      [  354.803127]  [<ffffffff81062243>] ? update_rq_clock.part.74+0x13/0x30
      [  354.803129]  [<ffffffff81047486>] ? lock_timer_base.isra.30+0x26/0x50
      [  354.803130]  [<ffffffff810472b2>] ? internal_add_timer+0x12/0x40
      [  354.803131]  [<ffffffff81047f48>] ? mod_timer+0xf8/0x1c0
      [  354.803133]  [<ffffffff81266d61>] do_unblank_screen+0xa1/0x1c0
      [  354.803134]  [<ffffffff81268087>] poke_blanked_console+0xc7/0xd0
      [  354.803136]  [<ffffffff812681cf>] console_callback+0x13f/0x160
      [  354.803137]  [<ffffffff81053258>] process_one_work+0x148/0x3d0
      [  354.803138]  [<ffffffff81053f19>] worker_thread+0x119/0x3a0
      [  354.803140]  [<ffffffff81053e00>] ? manage_workers.isra.30+0x2a0/0x2a0
      [  354.803141]  [<ffffffff8105994b>] kthread+0xbb/0xc0
      [  354.803142]  [<ffffffff81059890>] ? kthread_create_on_node+0x120/0x120
      [  354.803144]  [<ffffffff8140b32c>] ret_from_fork+0x7c/0xb0
      [  354.803145]  [<ffffffff81059890>] ? kthread_create_on_node+0x120/0x120
      
      This regression goes back to the big modeset rework and the conversion
      to the new dpms helpers which started with:
      
      commit 5ab432ef
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sat Jun 30 08:59:56 2012 +0200
      
          drm/i915/hdmi: convert to encoder->disable/enable
      
      Fixes: igt/kms_flip/dpms-off-confusion
      Reported-and-tested-by: NWakko Warner <wakko@animx.eu.org>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68030
      Link:  http://lkml.kernel.org/r/20130928185023.GA21672@animx.eu.orgSigned-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@vger.kernel.org
      [danvet: Add regression citation, mention the igt testcase this fixes
      and slap a cc: stable on the patch.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c9976dcf
    • R
      drm/i915: Mask LPSP to get PSR working even with Power Well in use by audio. · 0cc4b699
      Rodrigo Vivi 提交于
      Power Well in use forces constantly PSR to exit.
      On recent Kernel I noticed that PSR Performance Counter was always 0
      indicating that PSR was never really achieved.
      By masking LPSP, PSR can work normally and save power on Haswell.
      
      Two bugs had been raised with PSR flag enabled:
      - "Screen flickers when booted by enabling PSR in the kernel (i915.enable_psr=1) , the system is booting to a gray screen."
      - "When booting the DUT with PSR feature enabled in the kernel (i915.enable_psr=1) , the system is booting to a gray screen."
      
      Both bugs has been fixed by this patch.
      
      v2: proper comment for -fixes
      Tested-by: NSelvaraj, Elavarasan <elavarasanx.selvaraj@intel.com>
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      0cc4b699