ACPI and a Toshiba Tecra 8000
Andrew Thompson
andy at fud.org.nz
Tue Sep 16 16:53:35 PDT 2003
Nate Lawson wrote:
> On Wed, 17 Sep 2003, Andrew Thompson wrote:
>
>>(gdb) l *scsuspend+0x17
>>0xc03d7b17 is in scsuspend (/usr/src/sys/isa/syscons_isa.c:111).
>>106 int retry = 10;
>>107 static int dummy;
>>108 sc_softc_t *sc;
>>109
>>110 sc = &main_softc;
>>111 sc_cur_scr = sc->cur_scp->index;
>>112
>>113 if (sc_no_suspend_vtswitch)
>>114 return (0);
>>115
>
>
> For a temporary workaround, try changing line 111 to:
> if (sc->cur_scp == NULL)
> return (0);
>
> This may not help things though.
>
It has helped and the laptop is able to suspend with the serial cable
attached (further than before). It now panics on the first resume with
the following (gdb output at bottom).
I think the serial cable is masking the problem as without it I can
suspend/resume once and it only panics on the second resume. I guess I
need the serail working to see that panic anyway.
tdkphy0: detached
miibus0: detached
dc0: detached
sio4: detached
wakeup from sleeping state (slept 00:00:22)
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x4
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc03aec5d
stack pointer = 0x10:0xc5e39b0c
frame pointer = 0x10:0xc5e39b18
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 7 (acpi_task1)
kernel: type 12 trap, code=0
Stopped at sc_bell+0x2d: movl 0x4(%ecx),%eax
db> tr
sc_bell(0,320,5,f0,0) at sc_bell+0x2d
sc_switch_scr(c04b8ca0,0,c5e39b74,c02677bd,c1279d80) at sc_switch_scr+0x2c5
scresume(c1279d80,c1212060,c0424e7c,c1273f00,c11d4060) at scresume+0x24
bus_generic_resume(c1273f00,c11d4060,c0424e7c,c11d1d50,4d0) at
bus_generic_resume+0x5d
bus_generic_resume(c1256b00) at bus_generic_resume+0x5d
isab_resume(c1256b00,c11f7060,c0424e7c,c1256b80,c1221060) at
isab_resume+0x6b
bus_generic_resume(c1256b80,c1221060,c0424e7c,c1256280,c1220060) at
bus_generic_resume+0x5d
bus_generic_resume(c1256280,c1257110,0,c1256280,c5e39c1c) at
bus_generic_resume+0x5d
acpi_pcib_resume(c1256280,c1257110,0,c1256280,c5e39c3c) at
acpi_pcib_resume+0x2a
acpi_pcib_acpi_resume(c1256280,c1220060,c0424e7c,c09f2580,c122b060) at
acpi_pcib_acpi_resume+0x2a
bus_generic_resume(c09f2580,c122b060,c0424e7c,c09f1400,c120c060) at
bus_generic_resume+0x5d
bus_generic_resume(c09f1400,c120c060,c0424e7c,0,c1256a00) at
bus_generic_resume+0x5d
bus_generic_resume(c09f1c80,c118e060,c0424e7c,c09f1c80,7a6bb) at
bus_generic_resume+0x5d
acpi_SetSleepState(c1256a00,3,c5e39ce0,c057f399,c1256a00) at
acpi_SetSleepState+0x246
acpi_system_eventhandler_sleep(c1256a00,3,c058af1d,99,c0561d6f) at
acpi_system_eventhandler_sleep+0x1d
acpi_lid_notify_status_changed(c11d1d10,0,c058be85,7b,0) at
acpi_lid_notify_status_changed+0xf9
acpi_task_thread(0,c5e39d48,44890142,858d0824,fffffb94) at
acpi_task_thread+0x105
fork_exit(c0584b80,0,c5e39d48) at fork_exit+0xb1
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xc5e39d7c, ebp = 0 ---
db>
(gdb) l *sc_bell+0x2d
0xc03aec5d is in sc_bell (/usr/src/sys/dev/syscons/syscons.c:3579).
3574 sc_bell(scr_stat *scp, int pitch, int duration)
3575 {
3576 if (cold || shutdown_in_progress || !enable_bell)
3577 return;
3578
3579 if (scp != scp->sc->cur_scp && (scp->sc->flags & SC_QUIET_BELL))
3580 return;
3581
3582 if (scp->sc->flags & SC_VISUAL_BELL) {
3583 if (scp->sc->blink_in_progress)
(gdb)
More information about the freebsd-current
mailing list