* [Intel-gfx] [PATCH v4] drm/i915: Init lspcon after HPD in intel_dp_detect() @ 2020-02-14 17:56 Kai-Heng Feng 2020-02-14 21:24 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork ` (3 more replies) 0 siblings, 4 replies; 5+ messages in thread From: Kai-Heng Feng @ 2020-02-14 17:56 UTC (permalink / raw) To: jani.nikula, ville.syrjala, joonas.lahtinen, rodrigo.vivi Cc: intel-gfx, David Airlie, Lucas De Marchi, open list, Kai-Heng Feng, open list:DRM DRIVERS On HP 800 G4 DM, if HDMI cable isn't plugged before boot, the HDMI port becomes useless and never responds to cable hotplugging: [ 3.031904] [drm:lspcon_init [i915]] *ERROR* Failed to probe lspcon [ 3.031945] [drm:intel_ddi_init [i915]] *ERROR* LSPCON init failed on port D Seems like the lspcon chip on the system in question only gets powered after the cable is plugged. So let's call lspcon_init() dynamically to properly initialize the lspcon chip and make HDMI port work. Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> --- v4: - Trust VBT in intel_infoframe_init(). - Init lspcon in intel_dp_detect(). v3: - Make sure it's handled under long HPD case. v2: - Move lspcon_init() inside of intel_dp_hpd_pulse(). drivers/gpu/drm/i915/display/intel_ddi.c | 17 +---------------- drivers/gpu/drm/i915/display/intel_dp.c | 13 ++++++++++++- drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c index 33f1dc3d7c1a..ca717434b406 100644 --- a/drivers/gpu/drm/i915/display/intel_ddi.c +++ b/drivers/gpu/drm/i915/display/intel_ddi.c @@ -4741,7 +4741,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) &dev_priv->vbt.ddi_port_info[port]; struct intel_digital_port *intel_dig_port; struct intel_encoder *encoder; - bool init_hdmi, init_dp, init_lspcon = false; + bool init_hdmi, init_dp; enum phy phy = intel_port_to_phy(dev_priv, port); init_hdmi = port_info->supports_dvi || port_info->supports_hdmi; @@ -4754,7 +4754,6 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) * is initialized before lspcon. */ init_dp = true; - init_lspcon = true; init_hdmi = false; DRM_DEBUG_KMS("VBT says port %c has lspcon\n", port_name(port)); } @@ -4833,20 +4832,6 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) goto err; } - if (init_lspcon) { - if (lspcon_init(intel_dig_port)) - /* TODO: handle hdmi info frame part */ - DRM_DEBUG_KMS("LSPCON init success on port %c\n", - port_name(port)); - else - /* - * LSPCON init faied, but DP init was success, so - * lets try to drive as DP++ port. - */ - DRM_ERROR("LSPCON init failed on port %c\n", - port_name(port)); - } - intel_infoframe_init(intel_dig_port); return; diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index c7424e2a04a3..43117aa86292 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -5663,8 +5663,19 @@ intel_dp_detect(struct drm_connector *connector, /* Can't disconnect eDP */ if (intel_dp_is_edp(intel_dp)) status = edp_detect(intel_dp); - else if (intel_digital_port_connected(encoder)) + else if (intel_digital_port_connected(encoder)) { + if (intel_bios_is_lspcon_present(dev_priv, dig_port->base.port) && + !dig_port->lspcon.active) { + if (lspcon_init(dig_port)) + DRM_DEBUG_KMS("LSPCON init success on port %c\n", + port_name(dig_port->base.port)); + else + DRM_DEBUG_KMS("LSPCON init failed on port %c\n", + port_name(dig_port->base.port)); + } + status = intel_dp_detect_dpcd(intel_dp); + } else status = connector_status_disconnected; diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c index 93ac0f296852..27a5aa8cefc9 100644 --- a/drivers/gpu/drm/i915/display/intel_hdmi.c +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c @@ -3100,7 +3100,7 @@ void intel_infoframe_init(struct intel_digital_port *intel_dig_port) intel_dig_port->set_infoframes = g4x_set_infoframes; intel_dig_port->infoframes_enabled = g4x_infoframes_enabled; } else if (HAS_DDI(dev_priv)) { - if (intel_dig_port->lspcon.active) { + if (intel_bios_is_lspcon_present(dev_priv, intel_dig_port->base.port)) { intel_dig_port->write_infoframe = lspcon_write_infoframe; intel_dig_port->read_infoframe = lspcon_read_infoframe; intel_dig_port->set_infoframes = lspcon_set_infoframes; -- 2.17.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Init lspcon after HPD in intel_dp_detect() 2020-02-14 17:56 [Intel-gfx] [PATCH v4] drm/i915: Init lspcon after HPD in intel_dp_detect() Kai-Heng Feng @ 2020-02-14 21:24 ` Patchwork 2020-02-18 3:09 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: Patchwork @ 2020-02-14 21:24 UTC (permalink / raw) To: Kai-Heng Feng; +Cc: intel-gfx == Series Details == Series: drm/i915: Init lspcon after HPD in intel_dp_detect() URL : https://patchwork.freedesktop.org/series/73480/ State : success == Summary == CI Bug Log - changes from CI_DRM_7942 -> Patchwork_16576 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/index.html Known issues ------------ Here are the changes found in Patchwork_16576 that come from known issues: ### IGT changes ### #### Possible fixes #### * igt@gem_exec_parallel@contexts: - fi-byt-n2820: [FAIL][1] ([i915#694]) -> [PASS][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/fi-byt-n2820/igt@gem_exec_parallel@contexts.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/fi-byt-n2820/igt@gem_exec_parallel@contexts.html * igt@gem_exec_parallel@fds: - fi-byt-n2820: [TIMEOUT][3] ([fdo#112271] / [i915#1084]) -> [PASS][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/fi-byt-n2820/igt@gem_exec_parallel@fds.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/fi-byt-n2820/igt@gem_exec_parallel@fds.html * igt@i915_selftest@live_gem_contexts: - fi-cfl-8700k: [INCOMPLETE][5] ([i915#424]) -> [PASS][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/fi-cfl-8700k/igt@i915_selftest@live_gem_contexts.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/fi-cfl-8700k/igt@i915_selftest@live_gem_contexts.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271 [i915#1084]: https://gitlab.freedesktop.org/drm/intel/issues/1084 [i915#424]: https://gitlab.freedesktop.org/drm/intel/issues/424 [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694 [i915#937]: https://gitlab.freedesktop.org/drm/intel/issues/937 Participating hosts (47 -> 41) ------------------------------ Additional (4): fi-bsw-kefka fi-blb-e6850 fi-cfl-8109u fi-ilk-650 Missing (10): fi-ilk-m540 fi-bdw-5557u fi-hsw-4200u fi-hsw-peppy fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-u3 fi-skl-lmem fi-bdw-samus Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_7942 -> Patchwork_16576 CI-20190529: 20190529 CI_DRM_7942: f4805f5a516d0a107438ff0f236c9f4187434819 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5442: 3f6080996885b997685f08ecb8b416b2dc485290 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_16576: b2ae75309a73a42403618e73da934af0caf97eec @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == b2ae75309a73 drm/i915: Init lspcon after HPD in intel_dp_detect() == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/index.html _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Init lspcon after HPD in intel_dp_detect() 2020-02-14 17:56 [Intel-gfx] [PATCH v4] drm/i915: Init lspcon after HPD in intel_dp_detect() Kai-Heng Feng 2020-02-14 21:24 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork @ 2020-02-18 3:09 ` Patchwork 2020-03-11 3:24 ` [Intel-gfx] [PATCH v4] " Kai-Heng Feng 2020-03-11 11:36 ` Ville Syrjälä 3 siblings, 0 replies; 5+ messages in thread From: Patchwork @ 2020-02-18 3:09 UTC (permalink / raw) To: Kai-Heng Feng; +Cc: intel-gfx == Series Details == Series: drm/i915: Init lspcon after HPD in intel_dp_detect() URL : https://patchwork.freedesktop.org/series/73480/ State : success == Summary == CI Bug Log - changes from CI_DRM_7942_full -> Patchwork_16576_full ==================================================== Summary ------- **SUCCESS** No regressions found. Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_16576_full: ### IGT changes ### #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@gem_ctx_persistence@close-replace-race}: - shard-apl: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-apl7/igt@gem_ctx_persistence@close-replace-race.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-apl2/igt@gem_ctx_persistence@close-replace-race.html Known issues ------------ Here are the changes found in Patchwork_16576_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_busy@busy-vcs1: - shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#112080]) +11 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb1/igt@gem_busy@busy-vcs1.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb8/igt@gem_busy@busy-vcs1.html * igt@gem_exec_balancer@hang: - shard-tglb: [PASS][5] -> [TIMEOUT][6] ([fdo#112271]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-tglb8/igt@gem_exec_balancer@hang.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-tglb7/igt@gem_exec_balancer@hang.html * igt@gem_exec_schedule@out-order-bsd2: - shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#109276]) +28 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb1/igt@gem_exec_schedule@out-order-bsd2.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb6/igt@gem_exec_schedule@out-order-bsd2.html * igt@gem_exec_schedule@pi-distinct-iova-bsd: - shard-iclb: [PASS][9] -> [SKIP][10] ([i915#677]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb7/igt@gem_exec_schedule@pi-distinct-iova-bsd.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb2/igt@gem_exec_schedule@pi-distinct-iova-bsd.html * igt@gem_exec_schedule@preempt-other-chain-bsd: - shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#112146]) +5 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb6/igt@gem_exec_schedule@preempt-other-chain-bsd.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb4/igt@gem_exec_schedule@preempt-other-chain-bsd.html * igt@gem_partial_pwrite_pread@writes-after-reads-uncached: - shard-hsw: [PASS][13] -> [FAIL][14] ([i915#694]) +2 similar issues [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-hsw2/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-hsw1/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html * igt@i915_suspend@debugfs-reader: - shard-kbl: [PASS][15] -> [DMESG-WARN][16] ([i915#180]) +2 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-kbl3/igt@i915_suspend@debugfs-reader.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-kbl3/igt@i915_suspend@debugfs-reader.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-skl: [PASS][17] -> [FAIL][18] ([IGT#5]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-skl5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-skl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * igt@kms_cursor_legacy@flip-vs-cursor-varying-size: - shard-skl: [PASS][19] -> [FAIL][20] ([IGT#5] / [i915#697]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-skl3/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-skl6/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html * igt@kms_flip@flip-vs-suspend-interruptible: - shard-apl: [PASS][21] -> [DMESG-WARN][22] ([i915#180]) +1 similar issue [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-apl6/igt@kms_flip@flip-vs-suspend-interruptible.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible.html * igt@kms_frontbuffer_tracking@fbcpsr-shrfb-scaledprimary: - shard-iclb: [PASS][23] -> [INCOMPLETE][24] ([i915#123]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-shrfb-scaledprimary.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-shrfb-scaledprimary.html * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc: - shard-skl: [PASS][25] -> [FAIL][26] ([fdo#108145] / [i915#265]) +1 similar issue [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-skl3/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html * igt@kms_plane_lowres@pipe-a-tiling-x: - shard-glk: [PASS][27] -> [FAIL][28] ([i915#899]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-glk8/igt@kms_plane_lowres@pipe-a-tiling-x.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-glk1/igt@kms_plane_lowres@pipe-a-tiling-x.html * igt@kms_plane_multiple@atomic-pipe-c-tiling-y: - shard-skl: [PASS][29] -> [DMESG-WARN][30] ([IGT#6]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-skl10/igt@kms_plane_multiple@atomic-pipe-c-tiling-y.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-skl8/igt@kms_plane_multiple@atomic-pipe-c-tiling-y.html * igt@kms_psr@psr2_cursor_render: - shard-iclb: [PASS][31] -> [SKIP][32] ([fdo#109441]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb2/igt@kms_psr@psr2_cursor_render.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb7/igt@kms_psr@psr2_cursor_render.html * igt@kms_rotation_crc@multiplane-rotation-cropping-top: - shard-kbl: [PASS][33] -> [FAIL][34] ([i915#1041]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-kbl4/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-kbl4/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend: - shard-skl: [PASS][35] -> [INCOMPLETE][36] ([i915#69]) +1 similar issue [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-skl5/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-skl8/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html * igt@kms_vblank@pipe-c-accuracy-idle: - shard-skl: [PASS][37] -> [FAIL][38] ([i915#43]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-skl8/igt@kms_vblank@pipe-c-accuracy-idle.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-skl9/igt@kms_vblank@pipe-c-accuracy-idle.html #### Possible fixes #### * {igt@gem_ctx_persistence@close-replace-race}: - shard-iclb: [FAIL][39] -> [PASS][40] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb5/igt@gem_ctx_persistence@close-replace-race.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb1/igt@gem_ctx_persistence@close-replace-race.html * igt@gem_exec_balancer@smoke: - shard-iclb: [SKIP][41] ([fdo#110854]) -> [PASS][42] [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb8/igt@gem_exec_balancer@smoke.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb2/igt@gem_exec_balancer@smoke.html * igt@gem_exec_parallel@vcs1-fds: - shard-iclb: [SKIP][43] ([fdo#112080]) -> [PASS][44] +22 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb5/igt@gem_exec_parallel@vcs1-fds.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb1/igt@gem_exec_parallel@vcs1-fds.html * igt@gem_exec_schedule@pi-common-bsd: - shard-iclb: [SKIP][45] ([i915#677]) -> [PASS][46] +1 similar issue [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb1/igt@gem_exec_schedule@pi-common-bsd.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb6/igt@gem_exec_schedule@pi-common-bsd.html * igt@gem_exec_schedule@reorder-wide-bsd: - shard-iclb: [SKIP][47] ([fdo#112146]) -> [PASS][48] +3 similar issues [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb1/igt@gem_exec_schedule@reorder-wide-bsd.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb8/igt@gem_exec_schedule@reorder-wide-bsd.html * igt@gem_partial_pwrite_pread@write-display: - shard-hsw: [FAIL][49] ([i915#694]) -> [PASS][50] +1 similar issue [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-hsw4/igt@gem_partial_pwrite_pread@write-display.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-hsw7/igt@gem_partial_pwrite_pread@write-display.html * igt@gem_ppgtt@flink-and-close-vma-leak: - shard-glk: [FAIL][51] ([i915#644]) -> [PASS][52] [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-glk5/igt@gem_ppgtt@flink-and-close-vma-leak.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-glk7/igt@gem_ppgtt@flink-and-close-vma-leak.html * igt@gen9_exec_parse@allowed-single: - shard-skl: [DMESG-WARN][53] ([i915#716]) -> [PASS][54] [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-skl6/igt@gen9_exec_parse@allowed-single.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-skl6/igt@gen9_exec_parse@allowed-single.html * igt@kms_big_fb@y-tiled-32bpp-rotate-0: - shard-glk: [FAIL][55] -> [PASS][56] +1 similar issue [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-glk1/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-glk4/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html * igt@kms_flip@flip-vs-expired-vblank: - shard-skl: [FAIL][57] ([i915#79]) -> [PASS][58] +1 similar issue [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-skl1/igt@kms_flip@flip-vs-expired-vblank.html [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-skl3/igt@kms_flip@flip-vs-expired-vblank.html * {igt@kms_hdr@bpc-switch-suspend}: - shard-skl: [FAIL][59] ([i915#1188]) -> [PASS][60] [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-skl5/igt@kms_hdr@bpc-switch-suspend.html [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-skl5/igt@kms_hdr@bpc-switch-suspend.html * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes: - shard-apl: [DMESG-WARN][61] ([i915#180]) -> [PASS][62] +2 similar issues [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-apl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-apl3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html - shard-kbl: [INCOMPLETE][63] ([fdo#103665]) -> [PASS][64] [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-kbl2/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-kbl6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes: - shard-kbl: [DMESG-WARN][65] ([i915#180]) -> [PASS][66] +4 similar issues [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-kbl3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-kbl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html * igt@kms_psr@psr2_cursor_mmap_cpu: - shard-iclb: [SKIP][67] ([fdo#109441]) -> [PASS][68] +3 similar issues [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb8/igt@kms_psr@psr2_cursor_mmap_cpu.html [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html * igt@prime_busy@hang-bsd2: - shard-iclb: [SKIP][69] ([fdo#109276]) -> [PASS][70] +25 similar issues [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb5/igt@prime_busy@hang-bsd2.html [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb1/igt@prime_busy@hang-bsd2.html #### Warnings #### * igt@gem_ctx_isolation@vcs1-nonpriv: - shard-iclb: [SKIP][71] ([fdo#112080]) -> [FAIL][72] ([IGT#28]) [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb3/igt@gem_ctx_isolation@vcs1-nonpriv.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb1/igt@gem_ctx_isolation@vcs1-nonpriv.html * igt@gem_ctx_isolation@vcs1-nonpriv-switch: - shard-iclb: [FAIL][73] ([IGT#28]) -> [SKIP][74] ([fdo#112080]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-iclb2/igt@gem_ctx_isolation@vcs1-nonpriv-switch.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-iclb7/igt@gem_ctx_isolation@vcs1-nonpriv-switch.html * igt@i915_pm_rpm@gem-evict-pwrite: - shard-snb: [INCOMPLETE][75] ([i915#82]) -> [SKIP][76] ([fdo#109271]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7942/shard-snb5/igt@i915_pm_rpm@gem-evict-pwrite.html [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/shard-snb7/igt@i915_pm_rpm@gem-evict-pwrite.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [IGT#28]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/28 [IGT#5]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/5 [IGT#6]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/6 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854 [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080 [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146 [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271 [i915#1041]: https://gitlab.freedesktop.org/drm/intel/issues/1041 [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188 [i915#123]: https://gitlab.freedesktop.org/drm/intel/issues/123 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265 [i915#43]: https://gitlab.freedesktop.org/drm/intel/issues/43 [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644 [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677 [i915#679]: https://gitlab.freedesktop.org/drm/intel/issues/679 [i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69 [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694 [i915#697]: https://gitlab.freedesktop.org/drm/intel/issues/697 [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 [i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82 [i915#899]: https://gitlab.freedesktop.org/drm/intel/issues/899 Participating hosts (10 -> 10) ------------------------------ No changes in participating hosts Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_7942 -> Patchwork_16576 CI-20190529: 20190529 CI_DRM_7942: f4805f5a516d0a107438ff0f236c9f4187434819 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5442: 3f6080996885b997685f08ecb8b416b2dc485290 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_16576: b2ae75309a73a42403618e73da934af0caf97eec @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16576/index.html _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Intel-gfx] [PATCH v4] drm/i915: Init lspcon after HPD in intel_dp_detect() 2020-02-14 17:56 [Intel-gfx] [PATCH v4] drm/i915: Init lspcon after HPD in intel_dp_detect() Kai-Heng Feng 2020-02-14 21:24 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork 2020-02-18 3:09 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork @ 2020-03-11 3:24 ` Kai-Heng Feng 2020-03-11 11:36 ` Ville Syrjälä 3 siblings, 0 replies; 5+ messages in thread From: Kai-Heng Feng @ 2020-03-11 3:24 UTC (permalink / raw) To: Jani Nikula, ville.syrjala, joonas.lahtinen, rodrigo.vivi Cc: David Airlie, Lucas De Marchi, open list, open list:DRM DRIVERS, intel-gfx > On Feb 15, 2020, at 01:56, Kai-Heng Feng <kai.heng.feng@canonical.com> wrote: > > On HP 800 G4 DM, if HDMI cable isn't plugged before boot, the HDMI port > becomes useless and never responds to cable hotplugging: > [ 3.031904] [drm:lspcon_init [i915]] *ERROR* Failed to probe lspcon > [ 3.031945] [drm:intel_ddi_init [i915]] *ERROR* LSPCON init failed on port D > > Seems like the lspcon chip on the system in question only gets powered > after the cable is plugged. > > So let's call lspcon_init() dynamically to properly initialize the > lspcon chip and make HDMI port work. > > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> A gentle ping. > --- > v4: > - Trust VBT in intel_infoframe_init(). > - Init lspcon in intel_dp_detect(). > > v3: > - Make sure it's handled under long HPD case. > > v2: > - Move lspcon_init() inside of intel_dp_hpd_pulse(). > > drivers/gpu/drm/i915/display/intel_ddi.c | 17 +---------------- > drivers/gpu/drm/i915/display/intel_dp.c | 13 ++++++++++++- > drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +- > 3 files changed, 14 insertions(+), 18 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c > index 33f1dc3d7c1a..ca717434b406 100644 > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > @@ -4741,7 +4741,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) > &dev_priv->vbt.ddi_port_info[port]; > struct intel_digital_port *intel_dig_port; > struct intel_encoder *encoder; > - bool init_hdmi, init_dp, init_lspcon = false; > + bool init_hdmi, init_dp; > enum phy phy = intel_port_to_phy(dev_priv, port); > > init_hdmi = port_info->supports_dvi || port_info->supports_hdmi; > @@ -4754,7 +4754,6 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) > * is initialized before lspcon. > */ > init_dp = true; > - init_lspcon = true; > init_hdmi = false; > DRM_DEBUG_KMS("VBT says port %c has lspcon\n", port_name(port)); > } > @@ -4833,20 +4832,6 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) > goto err; > } > > - if (init_lspcon) { > - if (lspcon_init(intel_dig_port)) > - /* TODO: handle hdmi info frame part */ > - DRM_DEBUG_KMS("LSPCON init success on port %c\n", > - port_name(port)); > - else > - /* > - * LSPCON init faied, but DP init was success, so > - * lets try to drive as DP++ port. > - */ > - DRM_ERROR("LSPCON init failed on port %c\n", > - port_name(port)); > - } > - > intel_infoframe_init(intel_dig_port); > > return; > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > index c7424e2a04a3..43117aa86292 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -5663,8 +5663,19 @@ intel_dp_detect(struct drm_connector *connector, > /* Can't disconnect eDP */ > if (intel_dp_is_edp(intel_dp)) > status = edp_detect(intel_dp); > - else if (intel_digital_port_connected(encoder)) > + else if (intel_digital_port_connected(encoder)) { > + if (intel_bios_is_lspcon_present(dev_priv, dig_port->base.port) && > + !dig_port->lspcon.active) { > + if (lspcon_init(dig_port)) > + DRM_DEBUG_KMS("LSPCON init success on port %c\n", > + port_name(dig_port->base.port)); > + else > + DRM_DEBUG_KMS("LSPCON init failed on port %c\n", > + port_name(dig_port->base.port)); > + } > + > status = intel_dp_detect_dpcd(intel_dp); > + } > else > status = connector_status_disconnected; > > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c > index 93ac0f296852..27a5aa8cefc9 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > @@ -3100,7 +3100,7 @@ void intel_infoframe_init(struct intel_digital_port *intel_dig_port) > intel_dig_port->set_infoframes = g4x_set_infoframes; > intel_dig_port->infoframes_enabled = g4x_infoframes_enabled; > } else if (HAS_DDI(dev_priv)) { > - if (intel_dig_port->lspcon.active) { > + if (intel_bios_is_lspcon_present(dev_priv, intel_dig_port->base.port)) { > intel_dig_port->write_infoframe = lspcon_write_infoframe; > intel_dig_port->read_infoframe = lspcon_read_infoframe; > intel_dig_port->set_infoframes = lspcon_set_infoframes; > -- > 2.17.1 > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Intel-gfx] [PATCH v4] drm/i915: Init lspcon after HPD in intel_dp_detect() 2020-02-14 17:56 [Intel-gfx] [PATCH v4] drm/i915: Init lspcon after HPD in intel_dp_detect() Kai-Heng Feng ` (2 preceding siblings ...) 2020-03-11 3:24 ` [Intel-gfx] [PATCH v4] " Kai-Heng Feng @ 2020-03-11 11:36 ` Ville Syrjälä 3 siblings, 0 replies; 5+ messages in thread From: Ville Syrjälä @ 2020-03-11 11:36 UTC (permalink / raw) To: Kai-Heng Feng Cc: open list:DRM DRIVERS, David Airlie, Lucas De Marchi, open list, intel-gfx On Sat, Feb 15, 2020 at 01:56:27AM +0800, Kai-Heng Feng wrote: > On HP 800 G4 DM, if HDMI cable isn't plugged before boot, the HDMI port > becomes useless and never responds to cable hotplugging: > [ 3.031904] [drm:lspcon_init [i915]] *ERROR* Failed to probe lspcon > [ 3.031945] [drm:intel_ddi_init [i915]] *ERROR* LSPCON init failed on port D > > Seems like the lspcon chip on the system in question only gets powered > after the cable is plugged. > > So let's call lspcon_init() dynamically to properly initialize the > lspcon chip and make HDMI port work. > > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > --- > v4: > - Trust VBT in intel_infoframe_init(). > - Init lspcon in intel_dp_detect(). > > v3: > - Make sure it's handled under long HPD case. > > v2: > - Move lspcon_init() inside of intel_dp_hpd_pulse(). > > drivers/gpu/drm/i915/display/intel_ddi.c | 17 +---------------- > drivers/gpu/drm/i915/display/intel_dp.c | 13 ++++++++++++- > drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +- > 3 files changed, 14 insertions(+), 18 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c > index 33f1dc3d7c1a..ca717434b406 100644 > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > @@ -4741,7 +4741,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) > &dev_priv->vbt.ddi_port_info[port]; > struct intel_digital_port *intel_dig_port; > struct intel_encoder *encoder; > - bool init_hdmi, init_dp, init_lspcon = false; > + bool init_hdmi, init_dp; > enum phy phy = intel_port_to_phy(dev_priv, port); > > init_hdmi = port_info->supports_dvi || port_info->supports_hdmi; > @@ -4754,7 +4754,6 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) > * is initialized before lspcon. > */ > init_dp = true; > - init_lspcon = true; > init_hdmi = false; > DRM_DEBUG_KMS("VBT says port %c has lspcon\n", port_name(port)); > } > @@ -4833,20 +4832,6 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) > goto err; > } > > - if (init_lspcon) { > - if (lspcon_init(intel_dig_port)) > - /* TODO: handle hdmi info frame part */ > - DRM_DEBUG_KMS("LSPCON init success on port %c\n", > - port_name(port)); > - else > - /* > - * LSPCON init faied, but DP init was success, so > - * lets try to drive as DP++ port. > - */ > - DRM_ERROR("LSPCON init failed on port %c\n", > - port_name(port)); > - } > - > intel_infoframe_init(intel_dig_port); > > return; > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > index c7424e2a04a3..43117aa86292 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -5663,8 +5663,19 @@ intel_dp_detect(struct drm_connector *connector, > /* Can't disconnect eDP */ > if (intel_dp_is_edp(intel_dp)) > status = edp_detect(intel_dp); > - else if (intel_digital_port_connected(encoder)) > + else if (intel_digital_port_connected(encoder)) { > + if (intel_bios_is_lspcon_present(dev_priv, dig_port->base.port) && > + !dig_port->lspcon.active) { > + if (lspcon_init(dig_port)) > + DRM_DEBUG_KMS("LSPCON init success on port %c\n", > + port_name(dig_port->base.port)); > + else > + DRM_DEBUG_KMS("LSPCON init failed on port %c\n", > + port_name(dig_port->base.port)); > + } I was going to ask what happens when you unplug+replug, but looks like we already have lspcon_resume()in intel_dp_detect_dpcd(). This should be there as well. In fact I think we should just move all the logic into the lspcon code and let it decide on its own whether to take the init path or the resume path (assuming there is even any difference between the two). Not sure what we should do with the lspcon_resume() call in intel_dp_encoder_reset()... > + > status = intel_dp_detect_dpcd(intel_dp); > + } > else > status = connector_status_disconnected; > > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c > index 93ac0f296852..27a5aa8cefc9 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > @@ -3100,7 +3100,7 @@ void intel_infoframe_init(struct intel_digital_port *intel_dig_port) > intel_dig_port->set_infoframes = g4x_set_infoframes; > intel_dig_port->infoframes_enabled = g4x_infoframes_enabled; > } else if (HAS_DDI(dev_priv)) { > - if (intel_dig_port->lspcon.active) { > + if (intel_bios_is_lspcon_present(dev_priv, intel_dig_port->base.port)) { > intel_dig_port->write_infoframe = lspcon_write_infoframe; > intel_dig_port->read_infoframe = lspcon_read_infoframe; > intel_dig_port->set_infoframes = lspcon_set_infoframes; > -- > 2.17.1 -- Ville Syrjälä Intel _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-03-11 11:36 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-02-14 17:56 [Intel-gfx] [PATCH v4] drm/i915: Init lspcon after HPD in intel_dp_detect() Kai-Heng Feng 2020-02-14 21:24 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork 2020-02-18 3:09 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork 2020-03-11 3:24 ` [Intel-gfx] [PATCH v4] " Kai-Heng Feng 2020-03-11 11:36 ` Ville Syrjälä
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).