On Wed, Feb 19, 2025 at 07:53:15PM -0500, Johnny Epsom wrote:
> Hi Team
> 
> I am running current 7.6 on a Thinkpad T14 (Gen1 - Intel) and when I
> connect the laptop to my Dell USB-C dock, I am getting a crash. The system
> drop into ddb and I need to restart the machine.
> 
> The issue seems to have started from around version update #540 (upgraded
> current  from v535) -- I believe there was a recent change in drm drivers
> which may have caused this  -- >
> https://marc.info/?l=openbsd-cvs&m=173889719518405&w=2
> 
> I have another machine (X1C6) on an older snapshot - #505 - which is
> working is fine.
> 
> I don't have serial console to get the crash details -- I have captured the
> error messages using my phone (show panic / trace /ps etc) -- links.
> 
> dmesg on restart shows an drm failure.
> https://i.postimg.cc/yxkrh5r7/Crash1.jpg
> https://i.postimg.cc/zDcQDzVv/Crash2.jpg
> https://i.postimg.cc/Hs8hVqy2/Crash-machddb1.jpg
> https://i.postimg.cc/3NVftBPm/Crash-ps1.jpg
> https://i.postimg.cc/3xMbptjH/Crash-ps2.jpg
> https://i.postimg.cc/zGn2kTpH/Crash-ps3.jpg
> Apologies if the above is not enough ...please let me know if there is
> something else I can capture which may be of help in diagnosis.
> 
> Thanks in advance.

Thanks for the report, please send them to bugs@ next time.
Try a kernel with the below patch.

from Crash1.jpg
intel_dp_get_dsc_sink_cap+0x148
intel_dp_add_mst_connector+0xeb
drm_dp_mst_port_add_connector+0x162
drm_dp_send_link_address+0x78f
drm_dp_check_and_send_link_address+0x38
drm_dp_mst_link_probe_work+0x20d

/sys/dev/pci/drm/i915/display/intel_dp.c line 3952

  3927  void intel_dp_get_dsc_sink_cap(u8 dpcd_rev, struct intel_connector 
*connector)
  3928  {
  3929          struct drm_i915_private *i915 = to_i915(connector->base.dev);

  3951  
  3952          drm_dbg_kms(&i915->drm, "FEC CAPABILITY: %x\n",
  3953                      connector->dp.fec_capability);
  3954  }

'drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()'

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d58f65df2dcb59acd3965907507cfa608fe924b4

Index: sys/dev/pci/drm/i915/display/intel_dp_mst.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/i915/display/intel_dp_mst.c,v
diff -u -p -r1.13 intel_dp_mst.c
--- sys/dev/pci/drm/i915/display/intel_dp_mst.c 7 Feb 2025 03:03:29 -0000       
1.13
+++ sys/dev/pci/drm/i915/display/intel_dp_mst.c 20 Feb 2025 02:50:35 -0000
@@ -1719,6 +1719,16 @@ static struct drm_connector *intel_dp_ad
 
        intel_dp_init_modeset_retry_work(intel_connector);
 
+       /*
+        * TODO: The following drm_connector specific initialization belongs
+        * to DRM core, however it happens atm too late in
+        * drm_connector_init(). That function will also expose the connector
+        * to in-kernel users, so it can't be called until the connector is
+        * sufficiently initialized; init the device pointer used by the
+        * following DSC setup, until a fix moving this to DRM core.
+        */
+       intel_connector->base.dev = mgr->dev;
+
        intel_connector->dp.dsc_decompression_aux = 
drm_dp_mst_dsc_aux_for_port(port);
        intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, 
intel_connector);
        intel_connector->dp.dsc_hblank_expansion_quirk =

Reply via email to