1. 08 4月, 2019 3 次提交
  2. 16 1月, 2019 2 次提交
    • L
      drm/i915: Pass down rc in intel_encoder->compute_config() · 204474a6
      Lyude Paul 提交于
      Something that I completely missed when implementing the new MST VCPI
      atomic helpers is that with those helpers, there's technically a chance
      of us having to grab additional modeset locks in ->compute_config() and
      furthermore, that means we have the potential to hit a normal modeset
      deadlock. However, because ->compute_config() only returns a bool this
      means we can't return -EDEADLK when we need to drop locks and try again
      which means we end up just failing the atomic check permanently. Whoops.
      
      So, fix this by modifying ->compute_config() to pass down an actual
      error code instead of a bool so that the atomic check can be restarted
      on modeset deadlocks.
      
      Thanks to Ville Syrjälä for pointing this out!
      
      Changes since v1:
      * Add some newlines
      * Return only -EINVAL from hsw_crt_compute_config()
      * Propogate return code from intel_dp_compute_dsc_params()
      * Change all of the intel_dp_compute_link_config*() variants
      * Don't miss if (hdmi_port_clock_valid()) branch in
        intel_hdmi_compute_config()
      
      [Cherry-picked from drm-misc-next to drm-intel-next-queued to fix
       linux-next & drm-tip conflict, while waiting for proper propagation of
       the DP MST series that this commit fixes. In hindsight, a topic branch
       might have been a better approach for it.]
      Signed-off-by: NLyude Paul <lyude@redhat.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Fixes: eceae147 ("drm/dp_mst: Start tracking per-port VCPI allocations")
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109320Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190115200800.3121-1-lyude@redhat.com
      (cherry picked from commit 96550555)
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Acked-by: NDaniel Vetter <daniel@ffwll.ch>
      204474a6
    • L
      drm/i915: Pass down rc in intel_encoder->compute_config() · 96550555
      Lyude Paul 提交于
      Something that I completely missed when implementing the new MST VCPI
      atomic helpers is that with those helpers, there's technically a chance
      of us having to grab additional modeset locks in ->compute_config() and
      furthermore, that means we have the potential to hit a normal modeset
      deadlock. However, because ->compute_config() only returns a bool this
      means we can't return -EDEADLK when we need to drop locks and try again
      which means we end up just failing the atomic check permanently. Whoops.
      
      So, fix this by modifying ->compute_config() to pass down an actual
      error code instead of a bool so that the atomic check can be restarted
      on modeset deadlocks.
      
      Thanks to Ville Syrjälä for pointing this out!
      
      Changes since v1:
      * Add some newlines
      * Return only -EINVAL from hsw_crt_compute_config()
      * Propogate return code from intel_dp_compute_dsc_params()
      * Change all of the intel_dp_compute_link_config*() variants
      * Don't miss if (hdmi_port_clock_valid()) branch in
        intel_hdmi_compute_config()
      Signed-off-by: NLyude Paul <lyude@redhat.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Fixes: eceae147 ("drm/dp_mst: Start tracking per-port VCPI allocations")
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109320Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190115200800.3121-1-lyude@redhat.com
      96550555
  3. 09 1月, 2019 1 次提交
  4. 15 10月, 2018 1 次提交
  5. 10 10月, 2018 1 次提交
  6. 19 6月, 2018 1 次提交
  7. 18 6月, 2018 1 次提交
  8. 14 6月, 2018 1 次提交
  9. 31 5月, 2018 1 次提交
    • J
      Revert "drm/i915/edp: Allow alternate fixed mode for eDP if available." · 368b554d
      Jani Nikula 提交于
      This reverts commit dc911f5b.
      
      Per the report, no matter what display mode you select with xrandr, the
      i915 driver will always select the alternate fixed mode. For the
      reporter this means that the display will always run at 40Hz which is
      quite annoying. This may be due to the mode comparison.
      
      But there are some other potential issues. The choice of alt_fixed_mode
      seems dubious. It's the first non-preferred mode, but there are no
      guarantees that the only difference would be refresh rate. Similarly,
      there may be more than one preferred mode in the probed modes list, and
      the commit changes the preferred mode selection to choose the last one
      on the list instead of the first.
      
      (Note that the probed modes list is the raw, unfiltered, unsorted list
      of modes from drm_add_edid_modes(), not the pretty result after a
      drm_helper_probe_single_connector_modes() call.)
      
      Finally, we already have eerily similar code in place to find the
      downclock mode for DRRS that seems like could be reused here.
      
      Back to the drawing board.
      
      Note: This is a hand-crafted revert due to conflicts. If it fails to
      backport, please just try reverting the original commit directly.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105469Reported-by: NRune Petersen <rune@megahurts.dk>
      Reported-by: NMark Spencer <n7u4722r35@ynzlx.anonbox.net>
      Fixes: dc911f5b ("drm/i915/edp: Allow alternate fixed mode for eDP if available.")
      Cc: Clint Taylor <clinton.a.taylor@intel.com>
      Cc: David Weinehall <david.weinehall@linux.intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Cc: Jani Nikula <jani.nikula@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Jim Bride <jim.bride@linux.intel.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: intel-gfx@lists.freedesktop.org
      Cc: <stable@vger.kernel.org> # v4.14+
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Reviewed-by: NDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180516080110.22770-1-jani.nikula@intel.com
      (cherry picked from commit d93fa1b4)
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      368b554d
  10. 22 5月, 2018 1 次提交
    • J
      Revert "drm/i915/edp: Allow alternate fixed mode for eDP if available." · d93fa1b4
      Jani Nikula 提交于
      This reverts commit dc911f5b.
      
      Per the report, no matter what display mode you select with xrandr, the
      i915 driver will always select the alternate fixed mode. For the
      reporter this means that the display will always run at 40Hz which is
      quite annoying. This may be due to the mode comparison.
      
      But there are some other potential issues. The choice of alt_fixed_mode
      seems dubious. It's the first non-preferred mode, but there are no
      guarantees that the only difference would be refresh rate. Similarly,
      there may be more than one preferred mode in the probed modes list, and
      the commit changes the preferred mode selection to choose the last one
      on the list instead of the first.
      
      (Note that the probed modes list is the raw, unfiltered, unsorted list
      of modes from drm_add_edid_modes(), not the pretty result after a
      drm_helper_probe_single_connector_modes() call.)
      
      Finally, we already have eerily similar code in place to find the
      downclock mode for DRRS that seems like could be reused here.
      
      Back to the drawing board.
      
      Note: This is a hand-crafted revert due to conflicts. If it fails to
      backport, please just try reverting the original commit directly.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105469Reported-by: NRune Petersen <rune@megahurts.dk>
      Reported-by: NMark Spencer <n7u4722r35@ynzlx.anonbox.net>
      Fixes: dc911f5b ("drm/i915/edp: Allow alternate fixed mode for eDP if available.")
      Cc: Clint Taylor <clinton.a.taylor@intel.com>
      Cc: David Weinehall <david.weinehall@linux.intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Cc: Jani Nikula <jani.nikula@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Jim Bride <jim.bride@linux.intel.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: intel-gfx@lists.freedesktop.org
      Cc: <stable@vger.kernel.org> # v4.14+
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Reviewed-by: NDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180516080110.22770-1-jani.nikula@intel.com
      d93fa1b4
  11. 18 5月, 2018 1 次提交
  12. 14 2月, 2018 1 次提交
  13. 30 1月, 2018 1 次提交
  14. 31 10月, 2017 1 次提交
  15. 12 10月, 2017 1 次提交
  16. 22 8月, 2017 1 次提交
  17. 16 8月, 2017 1 次提交
  18. 08 8月, 2017 2 次提交
    • D
      drm: Nuke drm_atomic_helper_connector_dpms · 7d902c05
      Daniel Vetter 提交于
      It's dead code, the core handles all this directly now.
      
      The only special case is nouveau and tda988x which used one function
      for both legacy modeset code and -nv50 atomic world instead of 2
      vtables. But amounts to exactly the same.
      
      v2: Rebase over the panel/brideg refactorings in stm/ltdc.
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      Cc: Archit Taneja <architt@codeaurora.org>
      Cc: Andrzej Hajda <a.hajda@samsung.com>
      Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
      Cc: Peter Senna Tschudin <peter.senna@collabora.com>
      Cc: Martin Donnelly <martin.donnelly@ge.com>
      Cc: Martyn Welch <martyn.welch@collabora.co.uk>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Inki Dae <inki.dae@samsung.com>
      Cc: Joonyoung Shim <jy0922.shim@samsung.com>
      Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: Kukjin Kim <kgene@kernel.org>
      Cc: Krzysztof Kozlowski <krzk@kernel.org>
      Cc: Stefan Agner <stefan@agner.ch>
      Cc: Alison Wang <alison.wang@freescale.com>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Philipp Zabel <p.zabel@pengutronix.de>
      Cc: CK Hu <ck.hu@mediatek.com>
      Cc: Matthias Brugger <matthias.bgg@gmail.com>
      Cc: Neil Armstrong <narmstrong@baylibre.com>
      Cc: Carlo Caione <carlo@caione.org>
      Cc: Kevin Hilman <khilman@baylibre.com>
      Cc: Marek Vasut <marex@denx.de>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Eric Anholt <eric@anholt.net>
      Cc: Mark Yao <mark.yao@rock-chips.com>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
      Cc: Vincent Abriou <vincent.abriou@st.com>
      Cc: Yannick Fertre <yannick.fertre@st.com>
      Cc: Philippe Cornu <philippe.cornu@st.com>
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: Chen-Yu Tsai <wens@csie.org>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Jonathan Hunter <jonathanh@nvidia.com>
      Cc: Jyri Sarha <jsarha@ti.com>
      Cc: Gerd Hoffmann <kraxel@redhat.com>
      Cc: Shawn Guo <shawnguo@kernel.org>
      Cc: John Stultz <john.stultz@linaro.org>
      Cc: Lars-Peter Clausen <lars@metafoo.de>
      Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Cc: Jeffy Chen <jeffy.chen@rock-chips.com>
      Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
      Cc: Yakir Yang <kuankuan.y@gmail.com>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Cc: Jose Abreu <Jose.Abreu@synopsys.com>
      Cc: Romain Perier <romain.perier@collabora.com>
      Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
      Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
      Cc: Alexey Brodkin <abrodkin@synopsys.com>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: Rongrong Zou <zourongrong@gmail.com>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Hai Li <hali@codeaurora.org>
      Cc: "Noralf Trønnes" <noralf@tronnes.org>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-samsung-soc@vger.kernel.org
      Cc: intel-gfx@lists.freedesktop.org
      Cc: linux-mediatek@lists.infradead.org
      Cc: linux-amlogic@lists.infradead.org
      Cc: nouveau@lists.freedesktop.org
      Cc: linux-renesas-soc@vger.kernel.org
      Cc: linux-rockchip@lists.infradead.org
      Cc: linux-tegra@vger.kernel.org
      Cc: virtualization@lists.linux-foundation.org
      Cc: zain wang <wzz@rock-chips.com>
      Cc: Baoyou Xie <baoyou.xie@linaro.org>
      Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20170725080122.20548-8-daniel.vetter@ffwll.chAcked-by: NNeil Armstrong <narmstrong@baylibre.com>
      Reviewed-by: NNeil Armstrong <narmstrong@baylibre.com>
      Acked-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Acked-by: NArchit Taneja <architt@codeaurora.org>
      Tested-by: Philippe Cornu <philippe.cornu@st.com> (on stm)
      Reviewed-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Acked-by: NShawn Guo <shawnguo@kernel.org>
      Acked-by: NShawn Guo <shawnguo@kernel.org>
      Acked-by: NNoralf Trønnes <noralf@tronnes.org>
      Acked-by: NVincent Abriou <vincent.abriou@st.com>
      7d902c05
    • D
      drm: Nuke drm_atomic_helper_connector_set_property · 482b0e3c
      Daniel Vetter 提交于
      It's dead code, the core handles all this directly now. This also
      allows us to unexport drm_atomic_helper_connector_set_property.
      
      The only special case is nouveau which used one function for both
      pre-nv50 legacy modeset code and post-nv50 atomic world instead of 2
      vtables. But amounts to exactly the same.
      
      What is rather strange here is how few drivers set this up, I suspect
      the earlier patch to handle properties in the core did end up fixing a
      pile of possible issues.
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
      Cc: Vincent Abriou <vincent.abriou@st.com>
      Cc: Eric Anholt <eric@anholt.net>
      Cc: intel-gfx@lists.freedesktop.org
      Cc: nouveau@lists.freedesktop.org
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20170725080122.20548-7-daniel.vetter@ffwll.chAcked-by: NVincent Abriou <vincent.abriou@st.com>
      482b0e3c
  19. 12 4月, 2017 1 次提交
  20. 27 2月, 2017 1 次提交
  21. 25 11月, 2016 1 次提交
  22. 01 11月, 2016 2 次提交
  23. 22 9月, 2016 2 次提交
  24. 29 8月, 2016 1 次提交
    • C
      drm/i915/dvo: Remove dangling call to drm_encoder_cleanup() · 8a07fed4
      Chris Wilson 提交于
      If we hit the error path, we have never called drm_encoder_init() and so
      have nothing to cleanup. Doing so hits a null dereference:
      
      [   10.066261] BUG: unable to handle kernel NULL pointer dereference at 00000104
      [   10.066273] IP: [<c16054b4>] mutex_lock+0xa/0x15
      [   10.066287] *pde = 00000000
      [   10.066295] Oops: 0002 [#1]
      [   10.066302] Modules linked in: i915(+) video i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm iTCO_wdt iTCO_vendor_support ppdev evdev snd_intel8x0 snd_ac97_codec ac97_bus psmouse snd_pcm snd_timer snd pcspkr uhci_hcd ehci_pci soundcore sr_mod ehci_hcd serio_raw i2c_i801 usbcore i2c_smbus cdrom lpc_ich mfd_core rng_core e100 mii floppy parport_pc parport acpi_cpufreq button processor usb_common eeprom lm85 hwmon_vid autofs4
      [   10.066378] CPU: 0 PID: 132 Comm: systemd-udevd Not tainted 4.8.0-rc3-00013-gef0e1ea8 #34
      [   10.066389] Hardware name: MicroLink                               /D865GLC                        , BIOS BF86510A.86A.0077.P25.0508040031 08/04/2005
      [   10.066401] task: f62db800 task.stack: f5970000
      [   10.066409] EIP: 0060:[<c16054b4>] EFLAGS: 00010286 CPU: 0
      [   10.066417] EIP is at mutex_lock+0xa/0x15
      [   10.066424] EAX: 00000104 EBX: 00000104 ECX: 00000000 EDX: 80000000
      [   10.066432] ESI: 00000000 EDI: 00000104 EBP: f5be8000 ESP: f5971b58
      [   10.066439]  DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
      [   10.066446] CR0: 80050033 CR2: 00000104 CR3: 35945000 CR4: 000006d0
      [   10.066453] Stack:
      [   10.066459]  f503d740 f824dddf 00000000 f61170c0 f61170c0 f82371ae f850f40e 00000001
      [   10.066476]  f61170c0 f5971bcc f5be8000 f9c2d401 00000001 f8236fcc 00000001 00000000
      [   10.066491]  f5144014 f5be8104 00000008 f9c5267c 00000007 f61170c0 f5144400 f9c4ff00
      [   10.066507] Call Trace:
      [   10.066526]  [<f824dddf>] ? drm_modeset_lock_all+0x27/0xb3 [drm]
      [   10.066545]  [<f82371ae>] ? drm_encoder_cleanup+0x1a/0x132 [drm]
      [   10.066559]  [<f850f40e>] ? drm_atomic_helper_connector_reset+0x3f/0x5c [drm_kms_helper]
      [   10.066644]  [<f9c2d401>] ? intel_dvo_init+0x569/0x788 [i915]
      [   10.066663]  [<f8236fcc>] ? drm_encoder_init+0x43/0x20b [drm]
      [   10.066734]  [<f9bf1fce>] ? intel_modeset_init+0x1436/0x17dd [i915]
      [   10.066791]  [<f9b37636>] ? i915_driver_load+0x85a/0x15d3 [i915]
      [   10.066846]  [<f9b3603d>] ? i915_driver_open+0x5/0x5 [i915]
      [   10.066857]  [<c14af4d0>] ? firmware_map_add_entry.part.2+0xc/0xc
      [   10.066868]  [<c1343daf>] ? pci_device_probe+0x8e/0x11c
      [   10.066878]  [<c140cec8>] ? driver_probe_device+0x1db/0x62e
      [   10.066888]  [<c120c010>] ? kernfs_new_node+0x29/0x9c
      [   10.066897]  [<c13438e0>] ? pci_match_device+0xd9/0x161
      [   10.066905]  [<c120c48b>] ? kernfs_create_dir_ns+0x42/0x88
      [   10.066914]  [<c140d401>] ? __driver_attach+0xe6/0x11b
      [   10.066924]  [<c1303b13>] ? kobject_add_internal+0x1bb/0x44f
      [   10.066933]  [<c140d31b>] ? driver_probe_device+0x62e/0x62e
      [   10.066941]  [<c140a2d2>] ? bus_for_each_dev+0x46/0x7f
      [   10.066950]  [<c140c502>] ? driver_attach+0x1a/0x34
      [   10.066958]  [<c140d31b>] ? driver_probe_device+0x62e/0x62e
      [   10.066966]  [<c140b758>] ? bus_add_driver+0x217/0x32a
      [   10.066975]  [<f8403000>] ? 0xf8403000
      [   10.066982]  [<c140de27>] ? driver_register+0x5f/0x108
      [   10.066991]  [<c1000493>] ? do_one_initcall+0x49/0x1f6
      [   10.067000]  [<c1082299>] ? pick_next_task_fair+0x14b/0x2a3
      [   10.067008]  [<c1603c8d>] ? __schedule+0x15c/0x4fe
      [   10.067016]  [<c1604104>] ? preempt_schedule_common+0x19/0x3c
      [   10.067027]  [<c11051de>] ? do_init_module+0x17/0x230
      [   10.067035]  [<c1604139>] ? _cond_resched+0x12/0x1a
      [   10.067044]  [<c116f9aa>] ? kmem_cache_alloc+0x8f/0x11f
      [   10.067052]  [<c11051de>] ? do_init_module+0x17/0x230
      [   10.067060]  [<c11703dd>] ? kfree+0x137/0x203
      [   10.067068]  [<c110523d>] ? do_init_module+0x76/0x230
      [   10.067078]  [<c10cadf3>] ? load_module+0x2a39/0x333f
      [   10.067087]  [<c10cb8b2>] ? SyS_finit_module+0x96/0xd5
      [   10.067096]  [<c1132231>] ? vm_mmap_pgoff+0x79/0xa0
      [   10.067105]  [<c1001e96>] ? do_fast_syscall_32+0xb5/0x1b0
      [   10.067114]  [<c16086a6>] ? sysenter_past_esp+0x47/0x75
      [   10.067121] Code: c8 f7 76 c1 e8 8e cc d2 ff e9 45 fe ff ff 66 90 66 90 66 90 66 90 90 ff 00 7f 05 e8 4e 0c 00 00 c3 53 89 c3 e8 75 ec ff ff 89 d8 <ff> 08 79 05 e8 fa 0a 00 00 5b c3 53 89 c3 85 c0 74 1b 8b 03 83
      [   10.067180] EIP: [<c16054b4>] mutex_lock+0xa/0x15 SS:ESP 0068:f5971b58
      [   10.067190] CR2: 0000000000000104
      [   10.067222] ---[ end trace 049f1f09da45a856 ]---
      Reported-by: NMeelis Roos <mroos@linux.ee>
      Fixes: 580d8ed5 ("drm/i915: Give encoders useful names")
      Reviewed-by: NDavid Weinehall <david.weinehall@linux.intel.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: drm-intel-fixes@lists.freedesktop.org
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20160823092558.14931-1-chris@chris-wilson.co.uk
      (cherry picked from commit 8f76aa0e)
      8a07fed4
  25. 24 8月, 2016 1 次提交
    • C
      drm/i915/dvo: Remove dangling call to drm_encoder_cleanup() · 8f76aa0e
      Chris Wilson 提交于
      If we hit the error path, we have never called drm_encoder_init() and so
      have nothing to cleanup. Doing so hits a null dereference:
      
      [   10.066261] BUG: unable to handle kernel NULL pointer dereference at 00000104
      [   10.066273] IP: [<c16054b4>] mutex_lock+0xa/0x15
      [   10.066287] *pde = 00000000
      [   10.066295] Oops: 0002 [#1]
      [   10.066302] Modules linked in: i915(+) video i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm iTCO_wdt iTCO_vendor_support ppdev evdev snd_intel8x0 snd_ac97_codec ac97_bus psmouse snd_pcm snd_timer snd pcspkr uhci_hcd ehci_pci soundcore sr_mod ehci_hcd serio_raw i2c_i801 usbcore i2c_smbus cdrom lpc_ich mfd_core rng_core e100 mii floppy parport_pc parport acpi_cpufreq button processor usb_common eeprom lm85 hwmon_vid autofs4
      [   10.066378] CPU: 0 PID: 132 Comm: systemd-udevd Not tainted 4.8.0-rc3-00013-gef0e1ea8 #34
      [   10.066389] Hardware name: MicroLink                               /D865GLC                        , BIOS BF86510A.86A.0077.P25.0508040031 08/04/2005
      [   10.066401] task: f62db800 task.stack: f5970000
      [   10.066409] EIP: 0060:[<c16054b4>] EFLAGS: 00010286 CPU: 0
      [   10.066417] EIP is at mutex_lock+0xa/0x15
      [   10.066424] EAX: 00000104 EBX: 00000104 ECX: 00000000 EDX: 80000000
      [   10.066432] ESI: 00000000 EDI: 00000104 EBP: f5be8000 ESP: f5971b58
      [   10.066439]  DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
      [   10.066446] CR0: 80050033 CR2: 00000104 CR3: 35945000 CR4: 000006d0
      [   10.066453] Stack:
      [   10.066459]  f503d740 f824dddf 00000000 f61170c0 f61170c0 f82371ae f850f40e 00000001
      [   10.066476]  f61170c0 f5971bcc f5be8000 f9c2d401 00000001 f8236fcc 00000001 00000000
      [   10.066491]  f5144014 f5be8104 00000008 f9c5267c 00000007 f61170c0 f5144400 f9c4ff00
      [   10.066507] Call Trace:
      [   10.066526]  [<f824dddf>] ? drm_modeset_lock_all+0x27/0xb3 [drm]
      [   10.066545]  [<f82371ae>] ? drm_encoder_cleanup+0x1a/0x132 [drm]
      [   10.066559]  [<f850f40e>] ? drm_atomic_helper_connector_reset+0x3f/0x5c [drm_kms_helper]
      [   10.066644]  [<f9c2d401>] ? intel_dvo_init+0x569/0x788 [i915]
      [   10.066663]  [<f8236fcc>] ? drm_encoder_init+0x43/0x20b [drm]
      [   10.066734]  [<f9bf1fce>] ? intel_modeset_init+0x1436/0x17dd [i915]
      [   10.066791]  [<f9b37636>] ? i915_driver_load+0x85a/0x15d3 [i915]
      [   10.066846]  [<f9b3603d>] ? i915_driver_open+0x5/0x5 [i915]
      [   10.066857]  [<c14af4d0>] ? firmware_map_add_entry.part.2+0xc/0xc
      [   10.066868]  [<c1343daf>] ? pci_device_probe+0x8e/0x11c
      [   10.066878]  [<c140cec8>] ? driver_probe_device+0x1db/0x62e
      [   10.066888]  [<c120c010>] ? kernfs_new_node+0x29/0x9c
      [   10.066897]  [<c13438e0>] ? pci_match_device+0xd9/0x161
      [   10.066905]  [<c120c48b>] ? kernfs_create_dir_ns+0x42/0x88
      [   10.066914]  [<c140d401>] ? __driver_attach+0xe6/0x11b
      [   10.066924]  [<c1303b13>] ? kobject_add_internal+0x1bb/0x44f
      [   10.066933]  [<c140d31b>] ? driver_probe_device+0x62e/0x62e
      [   10.066941]  [<c140a2d2>] ? bus_for_each_dev+0x46/0x7f
      [   10.066950]  [<c140c502>] ? driver_attach+0x1a/0x34
      [   10.066958]  [<c140d31b>] ? driver_probe_device+0x62e/0x62e
      [   10.066966]  [<c140b758>] ? bus_add_driver+0x217/0x32a
      [   10.066975]  [<f8403000>] ? 0xf8403000
      [   10.066982]  [<c140de27>] ? driver_register+0x5f/0x108
      [   10.066991]  [<c1000493>] ? do_one_initcall+0x49/0x1f6
      [   10.067000]  [<c1082299>] ? pick_next_task_fair+0x14b/0x2a3
      [   10.067008]  [<c1603c8d>] ? __schedule+0x15c/0x4fe
      [   10.067016]  [<c1604104>] ? preempt_schedule_common+0x19/0x3c
      [   10.067027]  [<c11051de>] ? do_init_module+0x17/0x230
      [   10.067035]  [<c1604139>] ? _cond_resched+0x12/0x1a
      [   10.067044]  [<c116f9aa>] ? kmem_cache_alloc+0x8f/0x11f
      [   10.067052]  [<c11051de>] ? do_init_module+0x17/0x230
      [   10.067060]  [<c11703dd>] ? kfree+0x137/0x203
      [   10.067068]  [<c110523d>] ? do_init_module+0x76/0x230
      [   10.067078]  [<c10cadf3>] ? load_module+0x2a39/0x333f
      [   10.067087]  [<c10cb8b2>] ? SyS_finit_module+0x96/0xd5
      [   10.067096]  [<c1132231>] ? vm_mmap_pgoff+0x79/0xa0
      [   10.067105]  [<c1001e96>] ? do_fast_syscall_32+0xb5/0x1b0
      [   10.067114]  [<c16086a6>] ? sysenter_past_esp+0x47/0x75
      [   10.067121] Code: c8 f7 76 c1 e8 8e cc d2 ff e9 45 fe ff ff 66 90 66 90 66 90 66 90 90 ff 00 7f 05 e8 4e 0c 00 00 c3 53 89 c3 e8 75 ec ff ff 89 d8 <ff> 08 79 05 e8 fa 0a 00 00 5b c3 53 89 c3 85 c0 74 1b 8b 03 83
      [   10.067180] EIP: [<c16054b4>] mutex_lock+0xa/0x15 SS:ESP 0068:f5971b58
      [   10.067190] CR2: 0000000000000104
      [   10.067222] ---[ end trace 049f1f09da45a856 ]---
      Reported-by: NMeelis Roos <mroos@linux.ee>
      Fixes: 580d8ed5 ("drm/i915: Give encoders useful names")
      Reviewed-by: NDavid Weinehall <david.weinehall@linux.intel.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: drm-intel-fixes@lists.freedesktop.org
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20160823092558.14931-1-chris@chris-wilson.co.uk
      8f76aa0e
  26. 23 8月, 2016 3 次提交
  27. 04 7月, 2016 1 次提交
  28. 24 6月, 2016 2 次提交
  29. 19 6月, 2016 1 次提交
  30. 11 6月, 2016 1 次提交
  31. 30 5月, 2016 1 次提交