NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-amd64/58657: i915drmkms blank screen



The following reply was made to PR port-amd64/58657; it has been noted by GNATS.

From: RVP <rvp%SDF.ORG@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: hoshinomori <hoshinomori%owarisekai.moe@localhost>
Subject: Re: port-amd64/58657: i915drmkms blank screen
Date: Sun, 1 Nov 2026 09:44:36 +0000 (UTC)

 On Wed, 28 Oct 2026, hoshinomori via gnats wrote:
 
 > >Description:
 > I'm facing a similar problem on my Dell XPS 13 7390 2-in-1 with i7-1065g7.
 > 000:02:0: Intel product 8a52 (VGA display, revision 0x07)
 >
 > I investigated an earlier crash dump. After GT initialization failed,
 > the cleanup path destroyed rps->power.mutex.
 > Then framebuffer initialization attempted to lock that mutex in
 > intel_rps_mark_interactive(), resulting in fatal page fault.
 > [...]
 >
 > >Fix:
 > linux's submit_reg is u32 pointer
 > 	u32 __iomem *submit_reg;
 > while in netbsd it is byte offset
 > 	bus_size_t submit_reg;
 > apply the patch to intel_lrc.c
 >
 > Index: intel_lrc.c
 > ===================================================================
 > RCS file: /cvsroot/src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c,v
 > retrieving revision 1.8
 > diff -u -r1.8 intel_lrc.c
 > --- intel_lrc.c	19 Dec 2021 12:32:15 -0000	1.8
 > +++ intel_lrc.c	28 Oct 2026 16:00:33 -0000
 > @@ -1415,8 +1415,8 @@
 >  {
 >  #ifdef __NetBSD__
 >  	if (execlists->ctrl_reg) {
 > -		bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg + port * 2, lower_32_bits(desc));
 > -		bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg + port * 2 + 1, upper_32_bits(desc));
 > +		bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg + sizeof(u32) * (port * 2), lower_32_bits(desc));
 > +		bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg + sizeof(u32) * (port * 2 + 1), upper_32_bits(desc));
 >  	} else {
 >  		bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg, upper_32_bits(desc));
 >  		bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg, lower_32_bits(desc));
 >
 
 Wow! This absolutely makes my own Ice Lake GT1 IGPU work! Before, it would
 blank the screen and drop into the debugger, and I'd have to type
 
 <SPACE><SPACE>reboot
 
 blind to reboot the system. So, thank you! Edited dmesg follows:
 
 ---START---
 cpu0: Intel(R) Core(TM) i3-1005G1 CPU @ 1.20GHz, id 0x706e5
 [...]
 pci_mem_find: void region
 i915drmkms0: map 5 failed
 i915drmkms0 {drm:netbsd:i915_driver_probe+0x32f} WOPCM: 2048K
 i915drmkms0 {drm:netbsd:intel_uc_init_early+0x96} enable_guc=0 (guc:no submission:no huc:no)
 {drm:netbsd:i915_gem_init_early+0x67} fake context support initialized
 pci_mem_find: void region
 pci_mem_find: void region
 pci_mem_find: void region
 pci_mem_find: void region
 pci_mem_find: void region
 pci_mem_find: void region
 pci_mem_find: void region
 pci_mem_find: void region
 pci_mem_find: void region
 pci_mem_find: void region
 pci_mem_find: void region
 pci_mem_find: void region
 i915drmkms0 {drm:netbsd:intel_uncore_init_mmio+0x2dc} unclaimed mmio detected on uncore init, clearing
 {drm:netbsd:intel_device_info_init_mmio+0x1a9} vcs2 fused off
 {drm:netbsd:intel_device_info_init_mmio+0xda} vdbox enable: 0001, instances: 0001
 {drm:netbsd:intel_device_info_init_mmio+0x140} vebox enable: 0001, instances: 0001
 {drm:netbsd:i915_ggtt_probe_hw+0x4b2} GGTT size = 4096M
 {drm:netbsd:i915_ggtt_probe_hw+0x4d0} GMADR size = 256M
 {drm:netbsd:i915_ggtt_probe_hw+0x4f9} DSM size = 0M
 {drm:netbsd:wa_init_mcr+0x1f7} L3 fuse = 1
 {drm:netbsd:wa_init_mcr+0xe6} MCR slice/subslice = 5000000
 {drm:netbsd:i915_driver_probe+0x64a} Initialized 8 GT workarounds on global
 {drm:netbsd:intel_opregion_setup+0x67} graphic opregion physical addr: 0x414ff018
 {drm:netbsd:intel_opregion_setup+0x15d} ACPI OpRegion version 2.1.0
 {drm:netbsd:intel_opregion_setup+0x181} Public ACPI methods supported
 {drm:netbsd:intel_opregion_setup+0x443} SWSCI supported
 {drm:netbsd:swsci+0x127} SWSCI request timed out
 {drm:netbsd:swsci+0x2a5} SWSCI request already in progress
 {drm:netbsd:intel_opregion_setup+0x512} SWSCI GBDA callbacks 00000001, SBCB callbacks 00000001
 {drm:netbsd:intel_opregion_setup+0x410} ASLE supported
 {drm:netbsd:intel_opregion_setup+0x3f8} ASLE extension supported
 [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
 [drm] Driver supports precise vblank timestamp query.
 {drm:netbsd:intel_power_domains_init_hw+0x1d} rawclk rate: 19200 kHz
 {drm:netbsd:intel_combo_phy_init+0x305} Combo PHY A already enabled, won't reprogram it.
 {drm:netbsd:intel_combo_phy_init+0x305} Combo PHY B already enabled, won't reprogram it.
 {drm:netbsd:intel_cdclk_init+0x6f} Current CDCLK 172800 kHz, VCO 345600 kHz, ref 38400 kHz, bypass 50000 kHz, voltage level 0
 {drm:netbsd:intel_combo_phy_init+0x305} Combo PHY A already enabled, won't reprogram it.
 {drm:netbsd:intel_combo_phy_init+0x305} Combo PHY B already enabled, won't reprogram it.
 allocated pic msi5 type edge pin 0 level 6 to cpu0 slot 22 idt entry 104
 i915drmkms0: interrupting at msi5 vec 0 (i915drmkms0)
 [drm] Finished loading DMC firmware i915/icl_dmc_ver1_09.bin (v1.9)
 {drm:netbsd:intel_dump_cdclk_state+0x36} Current CDCLK 172800 kHz, VCO 345600 kHz, ref 38400 kHz, bypass 50000 kHz, voltage level 0
 {drm:netbsd:intel_update_max_cdclk+0x87} Max CD clock rate: 652800 kHz
 {drm:netbsd:intel_modeset_init+0x1578} Max dotclock rate: 1305600 kHz
 {drm:netbsd:intel_engines_init+0x356} Initialized 10 engine workarounds on rcs'0
 {drm:netbsd:intel_engines_init+0x35f} Initialized 4 whitelist workarounds on rcs'0
 {drm:netbsd:intel_engines_init+0x368} Initialized 5 context workarounds on rcs'0
 {drm:netbsd:intel_engines_init+0x35f} Initialized 3 whitelist workarounds on vcs'0
 {drm:netbsd:intel_engines_driver_register+0x190} renamed rcs'0 to rcs0
 {drm:netbsd:intel_engines_driver_register+0x190} renamed bcs'0 to bcs0
 {drm:netbsd:intel_engines_driver_register+0x190} renamed vcs'0 to vcs0
 {drm:netbsd:intel_engines_driver_register+0x190} renamed vecs'0 to vecs0
 [drm] Initialized i915 1.6.0 20200114 for i915drmkms0 on minor 0
 intelfb0 at i915drmkms0
 i915 device info: pciid=0x8a56 rev=0x07 platform=ICELAKE (subplatform=0x1) gen=11
 i915 device info: engines: 47
 i915 device info: gen: 11
 i915 device info: gt: 0
 i915 device info: iommu: n/a
 i915 device info: memory-regions: 5
 i915 device info: page-sizes: 211000
 i915 device info: platform: ICELAKE
 i915 device info: ppgtt-size: 48
 i915 device info: ppgtt-type: 2
 i915 device info: is_mobile: no
 i915 device info: is_lp: no
 i915 device info: require_force_probe: no
 i915 device info: is_dgfx: no
 i915 device info: has_64bit_reloc: yes
 i915 device info: gpu_reset_clobbers_display: no
 i915 device info: has_reset_engine: yes
 i915 device info: has_fpga_dbg: yes
 i915 device info: has_global_mocs: no
 i915 device info: has_gt_uc: yes
 i915 device info: has_l3_dpf: no
 i915 device info: has_llc: yes
 i915 device info: has_logical_ring_contexts: yes
 i915 device info: has_logical_ring_elsq: yes
 i915 device info: has_logical_ring_preemption: yes
 i915 device info: has_pooled_eu: no
 i915 device info: has_rc6: yes
 i915 device info: has_rc6p: no
 i915 device info: has_rps: yes
 i915 device info: has_runtime_pm: yes
 i915 device info: has_snoop: no
 i915 device info: has_coherent_ggtt: no
 i915 device info: unfenced_needs_alignment: no
 i915 device info: hws_needs_physical: no
 i915 device info: cursor_needs_physical: no
 i915 device info: has_csr: yes
 i915 device info: has_ddi: yes
 i915 device info: has_dp_mst: yes
 i915 device info: has_dsb: no
 i915 device info: has_dsc: yes
 i915 device info: has_fbc: no
 i915 device info: has_gmch: no
 i915 device info: has_hdcp: yes
 i915 device info: has_hotplug: yes
 i915 device info: has_ipc: yes
 i915 device info: has_modular_fia: no
 i915 device info: has_overlay: no
 i915 device info: has_psr: yes
 i915 device info: overlay_needs_physical: no
 i915 device info: supports_tv: no
 i915 device info: slice total: 1, mask=0001
 i915 device info: subslice total: 4
 i915 device info: slice0: 4 subslices, mask=00000033
 i915 device info: EU total: 32
 i915 device info: EU per subslice: 8
 i915 device info: has slice power gating: yes
 i915 device info: has subslice power gating: yes
 i915 device info: has EU power gating: yes
 i915 device info: CS timestamp frequency: 19200 kHz
 [drm] DRM_I915_DEBUG enabled
 [drm] DRM_I915_DEBUG_GEM enabled
 intelfb0: framebuffer at 0x4000040000, size 1920x1200, depth 32, stride 7680
 max_dotclock according to supported modes: 166840
 wsdisplay0 at intelfb0 kbdmux 1: console (default, vt100 emulation), using wskbd0
 [...]
 max_dotclock according to supported modes: 166840
 wsdisplay0: screen 1 added (default, vt100 emulation)
 max_dotclock according to supported modes: 166840
 wsdisplay0: screen 2 added (default, vt100 emulation)
 max_dotclock according to supported modes: 166840
 wsdisplay0: screen 3 added (default, vt100 emulation)
 max_dotclock according to supported modes: 166840
 wsdisplay0: screen 4 added (default, vt100 emulation)
 [...]
 {drm:netbsd:intel_combo_phy_init+0x305} Combo PHY A already enabled, won't reprogram it.
 {drm:netbsd:intel_combo_phy_init+0x305} Combo PHY B already enabled, won't reprogram it.
 [...]
 {drm:netbsd:intel_pipe_update_end+0x19e} *ERROR* Atomic update failure on pipe A (start=241379 end=241380) time 721 us, min 1192, max 1199, scanline start 1164, end 1217
 {drm:netbsd:intel_pipe_update_end+0x19e} *ERROR* Atomic update failure on pipe A (start=288066 end=288067) time 212 us, min 1192, max 1199, scanline start 1187, end 1196
 ---END---
 
 -RVP
 



Home | Main Index | Thread Index | Old Index