Star64_linux/drivers/gpu/drm/i915
José Roberto de Souza 17a3b15ac6 drm/i915/icl: Fix crash when getting DPLL of a MST encoder in TC ports
enc_to_dig_port() returns NULL for encoders of type
INTEL_OUTPUT_DP_MST causing the crash bellow:

[ 2832.836101] BUG: unable to handle kernel paging request at 00000000000012b8
[ 2832.843062] PGD 0 P4D 0
[ 2832.845610] Oops: 0000 [#1] SMP
[ 2832.848764] CPU: 2 PID: 3577 Comm: kworker/2:0 Tainted: G        W         4.19.0-rc7+ #491
[ 2832.857106] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake U DDR4 SODIMM PD RVP TLC, BIOS ICLSFWR1.R00.2352.A01.1808281852 08/28/2018
[ 2832.870734] Workqueue: events output_poll_execute
[ 2832.875480] RIP: 0010:icl_get_dpll+0xa4/0x5d0 [i915]
[ 2832.880449] Code: e9 03 f3 48 ab 8b 6e 74 41 8b 8c 24 5c 03 00 00 85 ed 0f 88 3f 02 00 00 83 fd 01 0f 8e ad 01 00 00 83 fd 05 0f 8f 2d 02 00 00 <83> ba b8 12 00 00 02 48 8b 36 0f 84 39 02 00 00 44 8b be ec 89 00
[ 2832.899176] RSP: 0018:ffffc90001b57a78 EFLAGS: 00010293
[ 2832.904404] RAX: 0000000000000000 RBX: ffffc90001b57a94 RCX: 0000000000083d60
[ 2832.911536] RDX: 0000000000000000 RSI: ffff8804a8c0dc00 RDI: ffffc90001b57b18
[ 2832.918668] RBP: 0000000000000003 R08: ffff8804a8c1f990 R09: ffff8804a8c1f990
[ 2832.925797] R10: 0000000000000000 R11: ffff8804a8e99600 R12: ffff8804a7760000
[ 2832.932930] R13: ffff88049e94d000 R14: ffff88049e94d000 R15: 000000000000000e
[ 2832.940063] FS:  0000000000000000(0000) GS:ffff8804b0300000(0000) knlGS:0000000000000000
[ 2832.948147] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2832.953893] CR2: 00000000000012b8 CR3: 0000000004a1d004 CR4: 0000000000760ee0
[ 2832.961027] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 2832.968155] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 2832.975286] PKRU: 55555554
[ 2832.978003] Call Trace:
[ 2832.980496]  haswell_crtc_compute_clock+0x3d/0x68 [i915]
[ 2832.985841]  intel_crtc_atomic_check+0x61/0x340 [i915]
[ 2832.990987]  drm_atomic_helper_check_planes+0x130/0x1c0
[ 2832.996245]  intel_atomic_check+0x4d5/0x10f0 [i915]
[ 2833.001147]  drm_atomic_check_only+0x484/0x690
[ 2833.005629]  drm_atomic_commit+0x13/0x50
[ 2833.009564]  restore_fbdev_mode_atomic+0x1c9/0x1e0
[ 2833.014363]  drm_fb_helper_restore_fbdev_mode_unlocked+0x47/0x90
[ 2833.020368]  drm_fb_helper_set_par+0x29/0x50
[ 2833.024641]  drm_fb_helper_hotplug_event.part.33+0x92/0xb0
[ 2833.030130]  drm_kms_helper_hotplug_event+0x26/0x30
[ 2833.035013]  output_poll_execute+0x192/0x1b0
[ 2833.039293]  process_one_work+0x2a5/0x5f0
[ 2833.043315]  worker_thread+0x2d/0x3d0
[ 2833.046988]  ? rescuer_thread+0x340/0x340
[ 2833.051009]  kthread+0x112/0x130
[ 2833.054247]  ? kthread_create_worker_on_cpu+0x70/0x70
[ 2833.059307]  ret_from_fork+0x3a/0x50
[ 2833.062893] Modules linked in: i915 prime_numbers snd_hda_codec_realtek snd_hda_codec_generic asix snd_usb_audio snd_usbmidi_lib snd_seq_midi snd_seq_midi_event snd_rawmidi cdc_ether usbnet x86_pkg_temp_thermal xhci_pci xhci_hcd ucsi_acpi typec_ucsi typec efivarfs [last unloaded: prime_numbers]
[ 2833.088917] CR2: 00000000000012b8
[ 2833.092241] ---[ end trace 25f9fe3d47af2e75 ]---
[ 2833.096895] RIP: 0010:icl_get_dpll+0xa4/0x5d0 [i915]
[ 2833.101866] Code: e9 03 f3 48 ab 8b 6e 74 41 8b 8c 24 5c 03 00 00 85 ed 0f 88 3f 02 00 00 83 fd 01 0f 8e ad 01 00 00 83 fd 05 0f 8f 2d 02 00 00 <83> ba b8 12 00 00 02 48 8b 36 0f 84 39 02 00 00 44 8b be ec 89 00
[ 2833.120589] RSP: 0018:ffffc90001b57a78 EFLAGS: 00010293
[ 2833.125815] RAX: 0000000000000000 RBX: ffffc90001b57a94 RCX: 0000000000083d60
[ 2833.132946] RDX: 0000000000000000 RSI: ffff8804a8c0dc00 RDI: ffffc90001b57b18
[ 2833.140080] RBP: 0000000000000003 R08: ffff8804a8c1f990 R09: ffff8804a8c1f990
[ 2833.147213] R10: 0000000000000000 R11: ffff8804a8e99600 R12: ffff8804a7760000
[ 2833.154350] R13: ffff88049e94d000 R14: ffff88049e94d000 R15: 000000000000000e
[ 2833.161483] FS:  0000000000000000(0000) GS:ffff8804b0300000(0000) knlGS:0000000000000000
[ 2833.169565] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2833.175313] CR2: 00000000000012b8 CR3: 0000000004a1d004 CR4: 0000000000760ee0
[ 2833.182449] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 2833.189578] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 2833.196712] PKRU: 55555554

MST ports are allocated from struct intel_dp_mst_encoder not from
struct intel_digital_port as regular ports, so to get the TC type it
is necessary check the primary digital port of the mst encoder.

Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181030215750.28213-5-jose.souza@intel.com
2018-10-31 15:25:05 -07:00
..
gvt drm/i915: Compare user's 64b GTT offset even on 32b 2018-10-26 09:20:05 +01:00
selftests drm/i915/selftest: test aligned offsets for 64K 2018-10-31 08:48:46 +00:00
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c
i915_debugfs.c drm/i915/debugfs: Do not print cached information of a disconnected sink 2018-10-31 15:25:01 -07:00
i915_drv.c drm/i915/icl: Enable DC9 as lowest possible state during screen-off 2018-10-30 10:55:10 -07:00
i915_drv.h drm/i915: Kill GEN_FOREVER 2018-10-29 10:44:15 -07:00
i915_gem.c drm/i915: Large page offsets for pread/pwrite 2018-10-15 12:52:03 +01:00
i915_gem.h drm/i915: GEM_WARN_ON considered harmful 2018-10-18 10:10:12 +01:00
i915_gem_batch_pool.c
i915_gem_batch_pool.h
i915_gem_clflush.c drm/i915: Remove unecessary dma_fence_ops 2018-08-17 11:22:15 +02:00
i915_gem_clflush.h
i915_gem_context.c drm/i915: Add ppgtt to GVT GEM context 2018-10-19 12:23:45 +01:00
i915_gem_context.h drm/i915/execlists: Flush the CS events before unpinning 2018-10-03 14:27:16 +01:00
i915_gem_dmabuf.c
i915_gem_evict.c
i915_gem_execbuffer.c drm/i915: Compare user's 64b GTT offset even on 32b 2018-10-26 09:20:05 +01:00
i915_gem_fence_reg.c
i915_gem_fence_reg.h
i915_gem_gtt.c drm/i915/gtt: Revert "Disable read-only support under GVT" 2018-10-31 08:37:45 +00:00
i915_gem_gtt.h drm/i915/gtt: Record the scratch pte 2018-10-30 09:10:20 +00:00
i915_gem_internal.c
i915_gem_object.c
i915_gem_object.h
i915_gem_render_state.c
i915_gem_render_state.h
i915_gem_shrinker.c
i915_gem_stolen.c drm/i915: pass dev_priv to i915_gem_cleanup_stolen 2018-09-20 16:43:17 +01:00
i915_gem_tiling.c
i915_gem_userptr.c mm, oom: distinguish blockable mode for mmu notifiers 2018-08-22 10:52:44 -07:00
i915_gemfs.c
i915_gemfs.h
i915_gpu_error.c drm/i915: Clear the error PTE just once on finish 2018-10-03 11:42:26 +01:00
i915_gpu_error.h drm/i915: Handle incomplete Z_FINISH for compressed error states 2018-10-03 11:39:31 +01:00
i915_ioc32.c
i915_irq.c drm/i915/icl: Disable master intr before reading 2018-10-16 13:11:23 +03:00
i915_memcpy.c
i915_mm.c
i915_oa_bdw.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_bdw.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_bxt.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_bxt.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt2.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt2.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt3.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt3.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_chv.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_chv.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cnl.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cnl.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_glk.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_glk.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_hsw.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_hsw.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_icl.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_icl.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt2.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt2.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt3.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt3.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt2.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt2.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt3.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt3.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt4.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt4.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_params.c drm/i915: Ensure _print_param() builds with Clang 2018-10-17 09:55:21 +03:00
i915_params.h drm/i915: Remove i915.enable_ppgtt override 2018-09-27 12:05:31 +01:00
i915_pci.c drm/i915/icl: Define TRANS_CONF register for DSI 2018-10-22 15:14:47 +03:00
i915_perf.c drm/i915/perf: Fix warning in documentation 2018-10-24 13:57:18 +01:00
i915_pmu.c
i915_pmu.h
i915_pvinfo.h
i915_query.c drm/i915: Convert to BITS_PER_TYPE 2018-09-26 13:32:03 +01:00
i915_query.h
i915_reg.h drm/i915/dsc: Add slice_row_per_frame in DSC PPS programming 2018-10-31 14:05:08 -07:00
i915_request.c drm/i915: Park signaling thread while wrapping the seqno 2018-10-26 12:37:13 +01:00
i915_request.h drm/i915: Priority boost for waiting clients 2018-10-01 20:34:24 +01:00
i915_scheduler.c drm/i915: Priority boost for waiting clients 2018-10-01 20:34:24 +01:00
i915_scheduler.h drm/i915: Priority boost for waiting clients 2018-10-01 20:34:24 +01:00
i915_selftest.h
i915_suspend.c
i915_sw_fence.c drm/i915: Include fence-hint for timeout warning 2018-09-14 14:28:32 +01:00
i915_sw_fence.h
i915_syncmap.c drm/i915: Convert to BITS_PER_TYPE 2018-09-26 13:32:03 +01:00
i915_syncmap.h
i915_sysfs.c
i915_timeline.c
i915_timeline.h
i915_trace.h
i915_trace_points.c
i915_utils.h drm/i915: Convert to BITS_PER_TYPE 2018-09-26 13:32:03 +01:00
i915_vgpu.c
i915_vgpu.h
i915_vma.c drm/i915: GEM_WARN_ON considered harmful 2018-10-18 10:10:12 +01:00
i915_vma.h drm/i915: Fix gtt_view asserts 2018-08-28 18:49:33 +03:00
icl_dsi.c drm/i915/icl: Program HS_TX_TIMEOUT/LP_RX_TIMEOUT/TA_TIMEOUT registers 2018-10-31 13:17:30 +02:00
intel_acpi.c
intel_atomic.c drm/i915: Prefer IS_GEN<n> check with bitmask. 2018-10-29 10:44:11 -07:00
intel_atomic_plane.c drm/i915/gen11: Link nv12 Y and UV planes in the atomic state, v5. 2018-10-24 10:29:28 +02:00
intel_audio.c drm/i915/hdmi: Add HDMI 2.0 audio clock recovery N values 2018-10-26 09:54:16 +03:00
intel_bios.c
intel_bios.h
intel_breadcrumbs.c
intel_cdclk.c drm/i915/glk: Remove 99% limitation. 2018-10-29 10:44:16 -07:00
intel_color.c drm/i915: Add CRTC output format YCBCR 4:4:4 2018-10-15 16:01:50 +03:00
intel_connector.c drm/i915: rename and move intel_get_pipe_from_connector() 2018-10-17 09:36:43 +03:00
intel_crt.c drm/i915: Introduce CRTC output format 2018-10-15 16:01:49 +03:00
intel_csr.c firmware/dmc/icl: Add missing MODULE_FIRMWARE() for Icelake. 2018-10-05 14:36:29 -07:00
intel_ddi.c drm/i915: compute_min_voltage_level sort platforms newer-to-older 2018-10-22 14:40:36 -07:00
intel_device_info.c drm/i915: Prefer IS_GEN<n> check with bitmask. 2018-10-29 10:44:11 -07:00
intel_device_info.h drm/i915/icl: Store available engine masks in INTEL_INFO 2018-10-26 10:14:05 +01:00
intel_display.c drm/i915: Fix error handling for the NV12 fb dimensions check 2018-10-31 23:44:55 +02:00
intel_display.h drm/i915/gen11: Enable 6 sprites on gen11 2018-10-24 10:28:44 +02:00
intel_dp.c drm/i915: Initialize panel_vdd_work only for eDP ports 2018-10-31 15:25:04 -07:00
intel_dp_aux_backlight.c
intel_dp_link_training.c drm/i915/dp: Link train Fallback on eDP only if fallback link BW can fit panel's native mode 2018-10-09 15:46:42 -07:00
intel_dp_mst.c drm/atomic_helper: Stop modesets on unregistered connectors harder 2018-10-17 13:50:14 -04:00
intel_dpio_phy.c drm/i915: Get rid of crtc->config in chv_data_lane_soft_reset 2018-10-05 15:19:08 +02:00
intel_dpll_mgr.c drm/i915/icl: Fix crash when getting DPLL of a MST encoder in TC ports 2018-10-31 15:25:05 -07:00
intel_dpll_mgr.h drm/i915/icl: Refactor icl pll functions 2018-10-16 09:00:58 -07:00
intel_drv.h drm/i915/dp: Add helpers for Compressed BPP and Slice Count for DSC 2018-10-31 14:09:44 -07:00
intel_dsi.c drm/i915/dsi: move connector mode functions to common file 2018-10-31 11:33:29 +02:00
intel_dsi.h drm/i915/icl: Program HS_TX_TIMEOUT/LP_RX_TIMEOUT/TA_TIMEOUT registers 2018-10-31 13:17:30 +02:00
intel_dsi_dcs_backlight.c
intel_dsi_vbt.c drm/i915/icl: Program HS_TX_TIMEOUT/LP_RX_TIMEOUT/TA_TIMEOUT registers 2018-10-31 13:17:30 +02:00
intel_dvo.c drm/i915: Introduce CRTC output format 2018-10-15 16:01:49 +03:00
intel_engine_cs.c drm/i915: Prefer IS_GEN<n> check with bitmask. 2018-10-29 10:44:11 -07:00
intel_fbc.c drm/i915: Prefer IS_GEN<n> check with bitmask. 2018-10-29 10:44:11 -07:00
intel_fbdev.c drm/i915: Use crtc->state in intel_fbdev_init_bios 2018-10-05 15:18:38 +02:00
intel_fifo_underrun.c
intel_frontbuffer.c
intel_frontbuffer.h
intel_gpu_commands.h
intel_guc.c drm/i915/guc: Limit number of scratch registers used for H2G 2018-10-22 12:36:49 +01:00
intel_guc.h drm/i915/guc: init GuC descriptors after GuC load 2018-10-04 07:29:47 +01:00
intel_guc_ads.c
intel_guc_ads.h
intel_guc_ct.c
intel_guc_ct.h
intel_guc_fw.c drm/i915/guc: Propagate the fw xfer timeout 2018-10-23 17:12:22 +01:00
intel_guc_fw.h
intel_guc_fwif.h drm/i915/guc: doorbell checking cleanup 2018-10-23 09:42:25 +01:00
intel_guc_log.c
intel_guc_log.h
intel_guc_reg.h drm/i915/guc: doorbell checking cleanup 2018-10-23 09:42:25 +01:00
intel_guc_submission.c drm/i915/guc: doorbell checking cleanup 2018-10-23 09:42:25 +01:00
intel_guc_submission.h drm/i915/selftests: ring all doorbells in igt_guc_doorbells 2018-08-28 13:41:27 +01:00
intel_gvt.c
intel_gvt.h
intel_hangcheck.c
intel_hdcp.c drm/i915: Reassigning log level for HDCP failures 2018-10-29 16:14:58 +01:00
intel_hdmi.c drm/i915: Move the DDC/AUX failure msgs to debug log 2018-10-24 09:34:08 +02:00
intel_hotplug.c
intel_huc.c drm/i915/huc: Normalize HuC status returned by I915_PARAM_HAS_HUC 2018-10-18 10:20:08 +01:00
intel_huc.h
intel_huc_fw.c
intel_huc_fw.h
intel_i2c.c drm/i915: remove confusing GPIO vs PCH_GPIO 2018-08-16 11:52:08 -07:00
intel_lpe_audio.c
intel_lrc.c drm/i915: GEM_WARN_ON considered harmful 2018-10-18 10:10:12 +01:00
intel_lrc.h
intel_lrc_reg.h
intel_lspcon.c drm/i915: Add YCBCR 4:2:0/4:4:4 support for LSPCON 2018-10-15 16:03:21 +03:00
intel_lvds.c drm/i915: Introduce CRTC output format 2018-10-15 16:01:49 +03:00
intel_mocs.c
intel_mocs.h
intel_opregion.c drm/i915: Stop calling intel_opregion unregister/register in suspend/resume 2018-10-30 11:52:54 +00:00
intel_opregion.h drm/i915: Stop calling intel_opregion unregister/register in suspend/resume 2018-10-30 11:52:54 +00:00
intel_overlay.c drm/i915/overlay: Use the ioctl parameters directly 2018-09-11 15:51:27 +01:00
intel_panel.c drm/i915: Use intel_panel_actually_set_backlight() to disable PWM backlight 2018-10-31 23:44:55 +02:00
intel_pipe_crc.c Merge drm/drm-next into drm-misc-next 2018-08-27 10:00:03 -04:00
intel_pm.c drm/i915: Simplify has_sagv function 2018-10-29 11:57:26 -07:00
intel_psr.c drm/i915: Prefer IS_GEN<n> check with bitmask. 2018-10-29 10:44:11 -07:00
intel_quirks.c drm/i915/quirks: pass dev_priv instead of drm dev to quirk code 2018-10-18 13:40:13 +03:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915: Replace some open-coded i915_coherent_map_type() 2018-10-02 12:53:44 +01:00
intel_ringbuffer.h drm/i915/ringbuffer: change header SPDX identifier to MIT 2018-10-31 11:57:11 +02:00
intel_runtime_pm.c drm/i915/icl: Enable DC9 as lowest possible state during screen-off 2018-10-30 10:55:10 -07:00
intel_sdvo.c drm/i915/sdvo: Utilize intel_panel for fixed_mode 2018-10-23 18:26:15 +03:00
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915: Do not program aux plane offsets on gen11+ 2018-10-29 12:43:37 -07:00
intel_tv.c drm/i915: Introduce CRTC output format 2018-10-15 16:01:49 +03:00
intel_uc.c drm/i915/guc: Fix Gen9 GuC loading workarounds 2018-10-17 09:08:00 +01:00
intel_uc.h
intel_uc_fw.c
intel_uc_fw.h drm/i915/guc: init GuC descriptors after GuC load 2018-10-04 07:29:47 +01:00
intel_uncore.c drm/i915: uncore_fw_domains_init sort platforms newer-to-older 2018-10-22 14:40:43 -07:00
intel_uncore.h
intel_vbt_defs.h
intel_wopcm.c
intel_wopcm.h
intel_workarounds.c drm/i915: GEM_WARN_ON considered harmful 2018-10-18 10:10:12 +01:00
intel_workarounds.h
Kconfig - New Drivers 2018-08-20 15:38:44 -07:00
Kconfig.debug drm/i915: Verify power domains after enabling them 2018-08-20 12:13:09 +03:00
Makefile drm/i915/dsi: refactor bitrate calculations in intel_dsi_vbt_init() 2018-10-18 15:15:27 +03:00
vlv_dsi.c drm/i915/dsi: move connector mode functions to common file 2018-10-31 11:33:29 +02:00
vlv_dsi_pll.c