1. 17 2月, 2016 5 次提交
    • I
      drm/i915/ibx: Ensure the HW is powered during PLL HW readout · 12fda387
      Imre Deak 提交于
      The assumption when adding the intel_display_power_is_enabled() checks
      was that if it returns success the power can't be turned off afterwards
      during the HW access, which is guaranteed by modeset locks. This isn't
      always true, so make sure we hold a dedicated reference for the time of
      the access.
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-4-git-send-email-imre.deak@intel.com
      12fda387
    • I
      drm/i915: Ensure the HW is powered during display pipe HW readout · 1729050e
      Imre Deak 提交于
      The assumption when adding the intel_display_power_is_enabled() checks
      was that if it returns success the power can't be turned off afterwards
      during the HW access, which is guaranteed by modeset locks. This isn't
      always true, so make sure we hold a dedicated reference for the time of
      the access.
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Revieved-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1455296121-4742-3-git-send-email-imre.deak@intel.com
      1729050e
    • I
      drm/i915: Add helper to get a display power ref if it was already enabled · 09731280
      Imre Deak 提交于
      We have many places in the code where we check if a given display power
      domain is enabled and if so access registers backed by this power
      domain. We assumed that some modeset lock will prevent the power
      reference from vanishing in the middle of the HW access, but this
      assumption doesn't always hold. In such cases we get either the wakeref
      not held, or an unclaimed register access error message. To fix this in
      a future-proof way that's independent of other locks wrap any such
      access with a get_ref_if_enabled()/put_ref() pair.
      
      Kudos to Ville and Joonas for the ideas of this new interface.
      
      v2:
      - init the power_domains ptr when declaring it everywhere (Joonas)
      v3:
      - don't report the device to be powered if runtime PM is disabled
      
      CC: Mika Kuoppala <mika.kuoppala@intel.com>
      CC: Chris Wilson <chris@chris-wilson.co.uk>
      CC: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      CC: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1455711462-7442-1-git-send-email-imre.deak@intel.com
      09731280
    • C
      drm/i915: Add an optional selection from i915 of CONFIG_MMU_NOTIFIER · 755412e2
      Chris Wilson 提交于
      userptr requires mmu-notifier for full unprivileged support. Most
      systems have mmu-notifier support already enabled as a requirement for
      virtualisation support, but we should make the option for i915 to take
      advantage of mmu-notifiers explicit (and enable by default so that
      regular userspace can take advantage of passing client memory to the
      GPU.)
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1452503961-14837-3-git-send-email-chris@chris-wilson.co.uk
      755412e2
    • M
      drm/i915: Lock mode_config.mutex in intel_display_resume. · ea49c9ac
      Maarten Lankhorst 提交于
      Unfortunately i915 is still not fully atomic, and expects mode_config.mutex
      to be held during modeset until we finally fix it.
      
      This fixes the following WARN when resuming:
      
      [  425.208983] ------------[ cut here ]------------
      [  425.208990] WARNING: CPU: 0 PID: 6828 at drivers/gpu/drm/drm_edid.c:3555 drm_select_eld+0xa5/0xd0()
      [  425.209015] Modules linked in: pl2303 usbserial snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic intel_powerclamp coretemp i915 crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hda_intel snd_hda_codec snd_hwdep lpc_ich snd_hda_core snd_pcm i2c_hid i2c_designware_platform i2c_designware_core r8169 mii sdhci_acpi sdhci mmc_core
      [  425.209018] CPU: 0 PID: 6828 Comm: kworker/u4:5 Tainted: G     U  W       4.5.0-rc4-gfxbench+ #1
      [  425.209020] Hardware name: \xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff \xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff\xffffffff/DN2820FYK, BIOS FYBYT10H.86A.0038.2014.0717.1455 07/17/2014
      [  425.209027] Workqueue: events_unbound async_run_entry_fn
      [  425.209032]  0000000000000000 ffff880072433958 ffffffff813f6b05 0000000000000000
      [  425.209036]  ffffffff81aaef2d ffff880072433990 ffffffff81078291 ffff880036b933d8
      [  425.209039]  ffff88006d528000 ffff88006d52b3d8 ffff88006d52b3d8 ffff88007315b6f8
      [  425.209040] Call Trace:
      [  425.209045]  [<ffffffff813f6b05>] dump_stack+0x67/0x92
      [  425.209049]  [<ffffffff81078291>] warn_slowpath_common+0x81/0xc0
      [  425.209052]  [<ffffffff81078385>] warn_slowpath_null+0x15/0x20
      [  425.209054]  [<ffffffff8151e195>] drm_select_eld+0xa5/0xd0
      [  425.209101]  [<ffffffffa01f34f4>] intel_audio_codec_enable+0x44/0x160 [i915]
      [  425.209135]  [<ffffffffa023eac7>] intel_enable_hdmi_audio+0x87/0x90 [i915]
      [  425.209169]  [<ffffffffa023eb5a>] g4x_enable_hdmi+0x8a/0xa0 [i915]
      [  425.209202]  [<ffffffffa023f41b>] vlv_hdmi_pre_enable+0x1cb/0x240 [i915]
      [  425.209236]  [<ffffffffa020edcf>] valleyview_crtc_enable+0x10f/0x290 [i915]
      [  425.209270]  [<ffffffffa020ba49>] intel_atomic_commit+0x769/0x17a0 [i915]
      [  425.209274]  [<ffffffff81526ad5>] ? drm_atomic_check_only+0x145/0x660
      [  425.209276]  [<ffffffff81527022>] drm_atomic_commit+0x32/0x50
      [  425.209310]  [<ffffffffa0215fa0>] intel_display_resume+0xa0/0x130 [i915]
      [  425.209338]  [<ffffffffa018c1bb>] i915_drm_resume+0xcb/0x160 [i915]
      [  425.209366]  [<ffffffffa018c272>] i915_pm_resume+0x22/0x30 [i915]
      [  425.209370]  [<ffffffff8143d91e>] pci_pm_resume+0x6e/0xe0
      [  425.209373]  [<ffffffff8143d8b0>] ? pci_pm_resume_noirq+0xa0/0xa0
      [  425.209375]  [<ffffffff815409ae>] dpm_run_callback+0x6e/0x280
      [  425.209378]  [<ffffffff815410b2>] device_resume+0x92/0x250
      [  425.209380]  [<ffffffff81541288>] async_resume+0x18/0x40
      [  425.209382]  [<ffffffff8109c7a5>] async_run_entry_fn+0x45/0x140
      [  425.209386]  [<ffffffff81093293>] process_one_work+0x1e3/0x620
      [  425.209388]  [<ffffffff810931f7>] ? process_one_work+0x147/0x620
      [  425.209391]  [<ffffffff81093719>] worker_thread+0x49/0x490
      [  425.209393]  [<ffffffff810936d0>] ? process_one_work+0x620/0x620
      [  425.209396]  [<ffffffff81099e0a>] kthread+0xea/0x100
      [  425.209400]  [<ffffffff81099d20>] ? kthread_create_on_node+0x1f0/0x1f0
      [  425.209404]  [<ffffffff817ba03f>] ret_from_fork+0x3f/0x70
      [  425.209407]  [<ffffffff81099d20>] ? kthread_create_on_node+0x1f0/0x1f0
      [  425.209409] ---[ end trace d1b247107f34a8b2 ]---
      
      Fixes: e2c8b870 ("drm/i915: Use atomic helpers for suspend, v2.")
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1455632862-18557-1-git-send-email-maarten.lankhorst@linux.intel.comReviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ea49c9ac
  2. 16 2月, 2016 11 次提交
  3. 15 2月, 2016 4 次提交
  4. 13 2月, 2016 1 次提交
  5. 12 2月, 2016 1 次提交
  6. 11 2月, 2016 14 次提交
  7. 10 2月, 2016 4 次提交