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 =
