NetBSD-Bugs archive

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

Re: port-i386/43331: X server locks up under -current on NEC Versa DayLite laptop



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

From: Andreas Gustafsson <gson%gson.org@localhost>
To: coypu%sdf.org@localhost
Cc: gnats-bugs%NetBSD.org@localhost
Subject: Re: port-i386/43331: X server locks up under -current on NEC Versa
 DayLite laptop
Date: Sat, 29 Dec 2018 16:49:52 +0200

 coypu%sdf.org@localhost wrote:
 >  diffing the two:
 >  
 >  pckbc_acpi_intr_establish(struct pckbc_softc *sc, pckbc_slot_t slot)
 >  
 >                  rv = isa_intr_establish_xname(ic, irq, ist, IPL_TTY,
 >  		pckbcintr, sc, intr_xname);
 >  
 >  pckbc_isa_intr_establish(struct pckbc_softc *sc, pckbc_slot_t slot)
 >  
 >          rv = isa_intr_establish(isc->sc_ic, isc->sc_irq[slot], IST_EDGE,
 >              IPL_TTY, pckbcintr, sc);
 >  
 >  I wonder what parameters each of one gets (in the successful and
 >  unsuccesful case)
 
 I applied the following patch to print the parameters:
 
 Index: acpi/pckbc_acpi.c
 ===================================================================
 RCS file: /bracket/repo/src/sys/dev/acpi/pckbc_acpi.c,v
 retrieving revision 1.36
 diff -u -r1.36 pckbc_acpi.c
 --- acpi/pckbc_acpi.c	28 Oct 2017 04:53:55 -0000	1.36
 +++ acpi/pckbc_acpi.c	29 Dec 2018 13:25:24 -0000
 @@ -256,7 +256,7 @@
  		char intr_xname[64];
  		snprintf(intr_xname, sizeof(intr_xname), "%s %s",
  		    device_xname(psc->sc_pckbc.sc_dv), pckbc_slot_names[slot]);
 -
 +                printf("isa_intr_establish_xname(ic, irq=%d, ist=%d, IPL_TTY=%d, pckbcintr, sc, intr_xname=%s\n", irq, ist, IPL_TTY, intr_xname);
  		rv = isa_intr_establish_xname(ic, irq, ist, IPL_TTY, pckbcintr,
  		    sc, intr_xname);
  	}
 Index: isa/pckbc_isa.c
 ===================================================================
 RCS file: /bracket/repo/src/sys/dev/isa/pckbc_isa.c,v
 retrieving revision 1.26
 diff -u -r1.26 pckbc_isa.c
 --- isa/pckbc_isa.c	3 Apr 2014 23:49:47 -0000	1.26
 +++ isa/pckbc_isa.c	29 Dec 2018 13:25:21 -0000
 @@ -218,6 +218,7 @@
  	struct pckbc_isa_softc *isc = (void *) sc;
  	void *rv;
  
 +        printf("isa_intr_establish(isc->sc_ic, isc->sc_irq[slot]=%d, IST_EDGE=%d, IPL_TTY=%d, pckbcintr, sc\n", isc->sc_irq[slot], IST_EDGE, IPL_TTY);
  	rv = isa_intr_establish(isc->sc_ic, isc->sc_irq[slot], IST_EDGE,
  	    IPL_TTY, pckbcintr, sc);
  	if (rv == NULL) {
 
 dmesg output from today's -current, disabling "pckbc* at acpi?" in
 userconf to work around the bug:
 
 [   1.0032649] pckbc0 at isa0 port 0x60-0x64
 [   1.0032649] pckbd0 at pckbc0 (kbd slot)
 [   1.0032649] isa_intr_establish(isc->sc_ic, isc->sc_irq[slot]=1, IST_EDGE=2, IPL_TTY=6, pckbcintr, sc
 [   1.0032649] pckbc0: using irq 1 for kbd slot
 [   1.0032649] wskbd0 at pckbd0: console keyboard, using wsdisplay0
 [   1.0032649] pms0 at pckbc0 (aux slot)
 [   1.0032649] isa_intr_establish(isc->sc_ic, isc->sc_irq[slot]=12, IST_EDGE=2, IPL_TTY=6, pckbcintr, sc
 [   1.0032649] pckbc0: using irq 12 for aux slot
 [   1.0032649] wsmouse0 at pms0 mux 0
 
 Ditto w/o userconf, triggering the bug:
 
 [   1.0027771] pckbc1 at acpi0 (USKB, PNP0303) (kbd port): io 0x60,0x64 irq 1
 [   1.0027771] SYSR (PNP0C02) at acpi0 not configured
 [   1.0027771] acpilid0 at acpi0 (LID, PNP0C0D): ACPI Lid Switch
 [   1.0027771] acpiacad0 at acpi0 (ADP, ACPI0003): ACPI AC Adapter
 [   1.0027771] acpibat0 at acpi0 (BAT2, PNP0C0A-2): ACPI Battery
 [   1.0027771] acpifan0 at acpi0 (LRA0, PNP0C0B): ACPI Fan
 [   1.0027771] acpitz0 at acpi0 (THRM)
 [   1.0027771] acpitz0: levels: critical 100.0 C, passive cooling
 [   1.0027771] apm0 at acpi0: Power Management spec V1.2
 [   1.0027771] ACPI: Enabled 1 GPEs in block 00 to 3F
 [   1.0027771] attimer1: attached to pcppi1
 [   1.0027771] pckbd0 at pckbc1 (kbd slot)
 [   1.0027771] isa_intr_establish_xname(ic, irq=1, ist=2, IPL_TTY=6, pckbcintr, sc, intr_xname=pckbc1 kbd
 [   1.0027771] pckbc1: using irq 1 for kbd slot
 [   1.0027771] wskbd0 at pckbd0: console keyboard
 [   1.0027771] pms0 at pckbc1 (aux slot)
 [   1.0027771] pckbc1: autoconfiguration error: unable to establish interrupt for aux slot
 [   1.0027771] wsmouse0 at pms0 mux 0
 
 Presumably the absence of a second isa_intr_establish_xname() call in
 the latter case means that the condition "if (i < pckbc_cd.cd_ndevs)"
 in pckbc_acpi_intr_establish() was false.
 
 > Also, acpidump -dt might be good to share.
 
 http://www.gson.org/netbsd/bugs/43331/acpidump-dt.txt
 
 -- 
 Andreas Gustafsson, gson%gson.org@localhost
 


Home | Main Index | Thread Index | Old Index