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