On Sat, Feb 22, 2025 at 05:59:52PM +0100, [email protected] wrote:
> >Synopsis:    inteldrm displayport panic
> >Category:    kernel amd64
> >Environment:
>       System      : OpenBSD 7.6
>       Details     : OpenBSD 7.6-current (GENERIC.MP) #9: Sat Feb 22 12:19:55 
> CET 2025
>                        [email protected]:/sys/arch/amd64/compile/GENERIC.MP
> 
>       Architecture: OpenBSD.amd64
>       Machine     : amd64
> >Description:
>       inteldrm panics when connecting a displayport cable to a thunderbolt
>       dock. same thing happens when booting with the cable connected. it used
>       to work before, however, it does not with the import of the latest drm.
>       since saving the panic does not work somehow, i have transcribed it:
> 
>       uvm_fault(0xffffffff82a51658, 0x0, 0, 1) -> e
>       kernel: page fault trap, code=0
>       Stopped at      intel_dp_add_mst_connector+0x394 
> [/sys/dev/pci/drm/i915/display/intel_dp_mst.c:1690]:   movq    0(%rax),%rsi
>               TID     PID     UID     PRFLAGS         PFLAGS  CPU     COMMAND
>        329617         3872    0       0x100002            0   0       ctfconv
>        149004        77005    0       0x14000         0x200   1       i1915-dp
>        262811        17778    0       0x14000         0x200   3       drmlwq
>       *276160        86830    0       0x14000         0x200   2K      drmlwq
>       intel_dp_add_mst_connector(ffff8000011c0680, ffff8000011b5000, 
> ffff800035738bd0) at intel_dp_add_mst_connector+0x394 
> [/sys/dev/pci/drm/i915/display/intel_dp_mst.c:1690]
>       drm_dp_mst_port_add_connector(ffff8000014a6680, ffff8000011b5000) at 
> drm_dp_mst_port_add_connector+0x162 
> [/sys/dev/pci/drm/display/drm_dp_mst_topology.c:2286]
>       drm_dp_send_link_address(ffff8000011c0680, ffff8000014a6680) at 
> drm_dp_send_link_address+0x78f 
> [/sys/dev/pci/drm/display/drm_dp_mst_topology.c:2457]
>       drm_dp_check_and_send_link_address(ffff8000011c0680, ffff8000014a6680) 
> at drm_dp_check_and_send_link_address+0x38 
> [/sys/dev/pci/drm/display/drm_dp_mst_topology.c:0]
>       drm_dp_mst_link_probe_work(ffff8000011c0a30) at 
> drm_dp_mst_link_probe_work+0x20d 
> [/sys/dev/pci/drm/display/drm_dp_mst_topology.c:2700]
>       taskq_thread(ffff8000002fc880) at taskq_thread+0x129 
> [/sys/kern/kern_task.c:449]
>       end trace frame: 0x0, count: 9
>       https://www.openbsd.org/ddb.html describes the minimum info required in 
> bug
>       reports.  Insufficient info makes it difficult to find and fix bugs.
>       ddb{2}> 
> 
> >How-To-Repeat:
>       connect displayport cable to thunderbolt dock (display connected on the
>       other side). i don't know and cannot test if it is related to the
>       thunerbolt dock or a general displayport problem.
> >Fix:
>       unknown. commenting out the drm_dbg_kms() call makes it crash at another
>       place instead.

try this:

'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