Ninkear A15 Pro ( problems with sleep )
Nazarenko Mykyta <[email protected]> Sun, 5 Jul 2026 00:12:46 +0200
| Newsgroups | gmane.os.openbsd.bugs |
|---|---|
| Message-ID | <[email protected]> |
--MP_/1P/N2FzNJHq/EjL7wxW7lRo Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi, bugs@! I=E2=80=99ve been dealing with a problem for a while now. My Ninkear A15 Pro laptop freezes when I try to put it into deep sleep mode or when I close the lid. It was really strange. The screen would just go dark for no reason, the laptop would stop responding to keystrokes, and the funny thing is that there was no kernel panic, the backlight stayed at maximum brightness, and I wasn=E2=80=99t switched to TT= Y. I tried to identify the source of this problem, and I tried adding locks inside the dc_dmub_srv_fb_cmd_list_queue_execute() function to prevent race conditions ( which apparently do occur internally ). I don't know if my decision was the right one, but it fixed the problem. After applying the patch I attached to the email, my laptop started waking up and going to sleep normally. Diff attached. What do you think about that? OpenBSD 7.9-current (amdgpu_test_dc_quick) #1: Wed Jul 1 13:19:31 CEST 2026 [email protected]:/home/mykyta/Dev/kernel/src/sys/arch/amd64/compile/amd= gpu_test_dc_quick real mem =3D 20777701376 (19815MB) avail mem =3D 20120072192 (19187MB) random: good seed from bootblocks mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 3.3 @ 0xed01f000 (45 entries) bios0: vendor American Megatrends International, LLC. version "AB8139_S_2C_V00.01_002" date 04/09/2025 bios0: AB8139 AB8139 efi0 at bios0: UEFI 2.7 efi0: American Megatrends rev 0x50013 acpi0 at bios0: ACPI 6.2 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP MSDM SSDT SSDT FIDT MCFG HPET FPDT VFCT BGRT TPM2 SSDT CRAT CDIT SSDT SSDT SSDT SSDT WSMT APIC IVRS SSDT SSDT acpi0: wakeup devices GPP0(S4) GPP2(S4) GPP4(S4) GPP5(S4) GP17(S4) XHC0(S3) XHC1(S3) GP18(S4) GP19(S4) LID0(S4) acpitimer0 at acpi0: 3579545 Hz, 32 bits acpimcfg0 at acpi0 acpimcfg0: addr 0xf0000000, bus 0-127 acpihpet0 at acpi0: 14318180 Hz acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: AMD Ryzen 5 5500U with Radeon Graphics, 2100.01 MHz, 17-68-01, patch 08608108 cpu0: cpuid 1 edx=3D178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMO= V,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT> ecx=3D76d8320b<SSE3,PCLMUL,MWAIT,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT= ,AES,XSAVE,AVX,F16C,RDRAND> cpu0: cpuid 6 eax=3D4<ARAT> ecx=3D1<EFFFREQ> cpu0: cpuid 7.0 ebx=3D219c91a9<FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,RDSEED,ADX,SMAP,CLFLUSHOPT,= CLWB,SHA> ecx=3D400004<UMIP> cpu0: cpuid d.1 eax=3Df<XSAVEOPT,XSAVEC,XGETBV1,XSAVES> cpu0: cpuid 80000001 edx=3D2fd3fbff<NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG> ecx=3D75c237ff<LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IB= S,SKINIT,TCE,TOPEXT,CPCTR,DBKP,PCTRL3,MWAITX> cpu0: cpuid 80000007 edx=3D6799<HWPSTATE,ITSC> cpu0: cpuid 80000008 ebx=3D90cf757<IBPB,IBRS,STIBP,IBRS_PREF,IBRS_SM,SSBD> cpu0: cpuid 8000001F eax=3D1000f<SME,SEV,PFLUSH_MSR,SEVES,VTE> ecx=3De edx=3D1 cpu0: 32= KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 512KB 64b/line 8-way L2 cache, 4MB 64b/line 16-way L3 cache cpu0: smt 0, core 0, package 0, type P mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges cpu0: apic clock running at 100MHz cpu0: mwait min=3D64, max=3D64, C-substates=3D1.1, IBE cpu at mainbus0: not configured cpu at mainbus0: not configured cpu at mainbus0: not configured cpu at mainbus0: not configured cpu at mainbus0: not configured cpu at mainbus0: not configured cpu at mainbus0: not configured cpu at mainbus0: not configured cpu at mainbus0: not configured cpu at mainbus0: not configured cpu at mainbus0: not configured ioapic0 at mainbus0: apid 33 pa 0xfec00000, version 21, 24 pins, can't remap ioapic1 at mainbus0: apid 34 pa 0xfec01000, version 21, 32 pins, can't remap acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus -1 (GPP0) acpiprt2 at acpi0: bus -1 (GPP1) acpiprt3 at acpi0: bus 1 (GPP2) acpiprt4 at acpi0: bus -1 (GPP3) acpiprt5 at acpi0: bus -1 (GPP4) acpiprt6 at acpi0: bus 2 (GPP5) acpiprt7 at acpi0: bus -1 (GPP6) acpiprt8 at acpi0: bus 3 (GP17) acpiprt9 at acpi0: bus -1 (GP18) acpiprt10 at acpi0: bus -1 (GP19) acpiec0 at acpi0 acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000 acpicmos0 at acpi0 acpiac0 at acpi0: AC unit online acpibat0 at acpi0: BAT0 model "Li-ion Real Battery" serial 123456789 type Lion oem "AMD Battery" acpibtn0 at acpi0: LID0(wakeup) "INT33D3" at acpi0 not configured acpibtn1 at acpi0: SLPB "MSFT0001" at acpi0 not configured acpibtn2 at acpi0: PWRB "ACPI0010" at acpi0 not configured acpicpu0 at acpi0: C3(0@350 io@0x415), C2(0@18 io@0x414), C1(0@1 mwait), PSS amdgpio0 at acpi0 GPIO uid 0 addr 0xfed81500/0x400 irq 7, 184 pins dwiic0 at acpi0 I2CA addr 0xfedc2000/0x1000 irq 10 iic0 at dwiic0 dwiic1 at acpi0 I2CB addr 0xfedc3000/0x1000 irq 11 iic1 at dwiic1 dwiic2 at acpi0 I2CD addr 0xfedc5000/0x1000 irq 6 iic2 at dwiic2 ihidev0 at iic2 addr 0x2c gpio 9, vendor 0x911 product 0x5288, PNP0C50 ihidev0: 13 report ids imt0 at ihidev0: clickpad, 5 contacts wsmouse0 at imt0 mux 0 ims0 at ihidev0 reportid 2: 2 buttons, Z and W dir wsmouse1 at ims0 mux 0 hid at ihidev0 reportid 4 not configured hid at ihidev0 reportid 6 not configured hid at ihidev0 reportid 7 not configured hid at ihidev0 reportid 9 not configured hid at ihidev0 reportid 10 not configured hid at ihidev0 reportid 11 not configured hid at ihidev0 reportid 12 not configured hid at ihidev0 reportid 13 not configured tpm0 at acpi0 TPM_: unsupported TPM2 start method 2 "PNP0C14" at acpi0 not configured acpipwrres0 at acpi0: P0SA, resource for SATA acpipwrres1 at acpi0: P0SA, resource for SAT1 acpivideo0 at acpi0: VGA_ acpivout0 at acpivideo0: LCD_ cpu0: 2100 MHz: speeds: 2100 1700 1400 MHz pci0 at mainbus0 bus 0 ksmn0 at pci0 dev 0 function 0 "AMD 17h/6xh Root Complex" rev 0x00 "AMD 17h/6xh IOMMU" rev 0x00 at pci0 dev 0 function 2 not configured pchb0 at pci0 dev 1 function 0 "AMD 17h/6xh Host" rev 0x00 ppb0 at pci0 dev 1 function 3 "AMD 17h/6xh PCIE" rev 0x00: msi pci1 at ppb0 bus 1 iwm0 at pci1 dev 0 function 0 "Intel AC 8260" rev 0x3a, msi pchb1 at pci0 dev 2 function 0 "AMD 17h/6xh Host" rev 0x00 ppb1 at pci0 dev 2 function 3 "AMD 17h/6xh PCIE" rev 0x00: msi pci2 at ppb1 bus 2 nvme0 at pci2 dev 0 function 0 unknown vendor 0x1e4b product 0x1202 rev 0x01: msix, NVMe 1.4 nvme0: faspeed P8-512G-SE, firmware SN22613, serial SCRW25081205P0637 scsibus1 at nvme0: 2 targets, initiator 0 sd0 at scsibus1 targ 1 lun 0: <NVMe, faspeed P8-512G-, SN22> sd0: 488386MB, 512 bytes/sector, 1000215216 sectors pchb2 at pci0 dev 8 function 0 "AMD 17h/6xh Host" rev 0x00 ppb2 at pci0 dev 8 function 1 "AMD 17h/6xh PCIE" rev 0x00 pci3 at ppb2 bus 3 amdgpu0 at pci3 dev 0 function 0 "ATI Lucienne" rev 0xc2 drm0 at amdgpu0 amdgpu0: msi azalia0 at pci3 dev 0 function 1 "ATI Renoir HD Audio" rev 0x00: msi azalia0: no supported codecs ccp0 at pci3 dev 0 function 2 "AMD 17h/1xh Crypto" rev 0x00 xhci0 at pci3 dev 0 function 3 "AMD 17h/6xh xHCI" rev 0x00: msix, xHCI 1.10 usb0 at xhci0: USB revision 3.0 uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1 xhci1 at pci3 dev 0 function 4 "AMD 17h/6xh xHCI" rev 0x00: msix, xHCI 1.10 usb1 at xhci1: USB revision 3.0 uhub1 at usb1 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1 "AMD 17h/1xh I2S Audio" rev 0x01 at pci3 dev 0 function 5 not configured azalia1 at pci3 dev 0 function 6 "AMD 17h/1xh HD Audio" rev 0x00: msi azalia1: codecs: Realtek ALC269 audio0 at azalia1 vendor "AMD", unknown product 0x15e4 (class DASP subclass miscellaneous, rev 0x00) at pci3 dev 0 function 7 not configured piixpm0 at pci0 dev 20 function 0 "AMD FCH SMBus" rev 0x51: SMI iic3 at piixpm0 spdmem0 at iic3 addr 0x50: 4GB DDR4 SDRAM PC4-25600 SO-DIMM spdmem1 at iic3 addr 0x51: 16GB DDR4 SDRAM PC4-21300 SO-DIMM iic4 at piixpm0 pcib0 at pci0 dev 20 function 3 "AMD FCH LPC" rev 0x51 pchb3 at pci0 dev 24 function 0 "AMD 17h/6xh Data Fabric" rev 0x00 pchb4 at pci0 dev 24 function 1 "AMD 17h/6xh Data Fabric" rev 0x00 pchb5 at pci0 dev 24 function 2 "AMD 17h/6xh Data Fabric" rev 0x00 pchb6 at pci0 dev 24 function 3 "AMD 17h/6xh Data Fabric" rev 0x00 pchb7 at pci0 dev 24 function 4 "AMD 17h/6xh Data Fabric" rev 0x00 pchb8 at pci0 dev 24 function 5 "AMD 17h/6xh Data Fabric" rev 0x00 pchb9 at pci0 dev 24 function 6 "AMD 17h/6xh Data Fabric" rev 0x00 pchb10 at pci0 dev 24 function 7 "AMD 17h/6xh Data Fabric" rev 0x00 isa0 at pcib0 isadma0 at isa0 pckbc0 at isa0 port 0x60/5 irq 1 irq 12 pckbd0 at pckbc0 (kbd slot) wskbd0 at pckbd0: console keyboard pcppi0 at isa0 port 0x61 spkr0 at pcppi0 vmm0 at mainbus0: SVM/RVI efifb at mainbus0 not configured uvideo0 at uhub0 port 3 configuration 1 interface 0 "XXS-250805-J RGB Camera" rev 2.00/8.05 addr 2 video0 at uvideo0 uhidev0 at uhub1 port 2 configuration 1 interface 0 "Compx 2.4G Receiver" rev 1.10/2.41 addr 2 uhidev0: iclass 3/1 ukbd0 at uhidev0: 8 variable keys, 6 key codes wskbd1 at ukbd0 mux 1 uhidev1 at uhub1 port 2 configuration 1 interface 1 "Compx 2.4G Receiver" rev 1.10/2.41 addr 2 uhidev1: iclass 3/1, 6 report ids ums0 at uhidev1 reportid 1: 5 buttons, Z and W dir wsmouse2 at ums0 mux 0 uhid0 at uhidev1 reportid 2: input=3D7, output=3D0, feature=3D0 uhid1 at uhidev1 reportid 3: input=3D1, output=3D0, feature=3D0 uhid2 at uhidev1 reportid 4: input=3D1, output=3D0, feature=3D0 ucc0 at uhidev1 reportid 5: 573 usages, 20 keys, array wskbd2 at ucc0 mux 1 uhid3 at uhidev1 reportid 6: input=3D0, output=3D0, feature=3D7 ugen0 at uhub1 port 3 "Intel Bluetooth" rev 2.00/0.01 addr 3 uhub2 at uhub1 port 4 configuration 1 interface 0 "Genesys Logic USB2.0 Hub" rev 2.00/88.11 addr 4 ugen1 at uhub2 port 2 "Blestech Betterlife Fingerprint" rev 2.00/2.00 addr 5 vscsi0 at root scsibus2 at vscsi0: 256 targets softraid0 at root scsibus3 at softraid0: 256 targets root on sd0a (ab2f272cb5524e1c.a) swap on sd0b dump on sd0b iwm0: hw rev 0x200, fw ver 36.ca7b901d.0, address 04:d3:b0:d3:51:80 amdgpu0: RENOIR GC 9.3.0 7 CU rev 0x00 --MP_/1P/N2FzNJHq/EjL7wxW7lRo Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=dc_dmub_srv.patch Index: dc_dmub_srv.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/amd/display/dc/dc_dmub_srv.c,v diff -u -p -u -r1.10 dc_dmub_srv.c --- dc_dmub_srv.c 7 May 2026 06:31:44 -0000 1.10 +++ dc_dmub_srv.c 4 Jul 2026 21:46:40 -0000 @@ -23,6 +23,7 @@ * */ +#include <sys/mutex.h> #include "dm_services.h" #include "dc.h" #include "dc_dmub_srv.h" @@ -41,6 +42,8 @@ #define DC_LOGGER CTX->logger #define GPINT_RETRY_NUM 20 +static mutex dmub_fb_cmd_queue_lock = MUTEX_INITIALIZER(IPL_TTY); + static void dc_dmub_srv_construct(struct dc_dmub_srv *dc_srv, struct dc *dc, struct dmub_srv *dmub) { @@ -192,6 +195,8 @@ static bool dc_dmub_srv_fb_cmd_list_queu dc_ctx = dc_dmub_srv->ctx; dmub = dc_dmub_srv->dmub; + mtx_enter(&dmub_fb_cmd_queue_lock); + for (i = 0 ; i < count; i++) { // Queue command if (!cmd_list[i].cmd_common.header.multi_cmd_pending || @@ -204,8 +209,10 @@ static bool dc_dmub_srv_fb_cmd_list_queu if (status == DMUB_STATUS_QUEUE_FULL) { /* Execute and wait for queue to become empty again. */ status = dmub_srv_fb_cmd_execute(dmub); - if (status == DMUB_STATUS_POWER_STATE_D3) + if (status == DMUB_STATUS_POWER_STATE_D3) { + mtx_leave(&dmub_fb_cmd_queue_lock); return false; + } do { status = dmub_srv_wait_for_inbox_free(dmub, 100000, count - i); @@ -220,11 +227,13 @@ static bool dc_dmub_srv_fb_cmd_list_queu DC_ERROR("Error queueing DMUB command: status=%d\n", status); dc_dmub_srv_log_diagnostic_data(dc_dmub_srv); } + mtx_leave(&dmub_fb_cmd_queue_lock); return false; } } status = dmub_srv_fb_cmd_execute(dmub); + mtx_leave(&dmub_fb_cmd_queue_lock); if (status != DMUB_STATUS_OK) { if (status != DMUB_STATUS_POWER_STATE_D3) { DC_ERROR("Error starting DMUB execution: status=%d\n", status); --MP_/1P/N2FzNJHq/EjL7wxW7lRo--