From: Pavel M. <pa...@uc...> - 2004-07-24 15:56:04
|
Hi! > Pavel> Agreed, I like this patch. > > Cool... Let's see if it's still like that when I've explained how it > works. :-)))) > Pavel> If you are adding comment with function name, you should at least > Pavel> explain what the function does... or not add the comment at all. > > Sure. Ditto for acpi_restore_state from the stock kernel sources that > I started with:-) Okay, I'll fix that. > >> testl $1, video_flags - wakeup_code > >> jz 1f > >> + movw video_flags - wakeup_code + 2, %ax > >> lcall $0xc000,$3 > > Pavel> Are you sure you wanted to touch this code? Zeroing %ax on entry to > Pavel> BIOS might be good idea, but... > > It is absolutely necessary, see below for how I've reused the > real->pmode switch. The VGA BIOS expect the PCI bus/slot/function from > %ax and C passes us that information in the upper 16 bits of > acpi_video_flags. Hmm, that's perhaps why so little BIOSen work with this hack.. Is there chance that passing this value when acpi_sleep=s3_bios is going to help? > Pavel> Ouch, so you call wakeup_start once again? > > Yes, I didn't want to implement yet another real->pmode switch, it > would have been a blue-print copy of wakeup_start and > acpi_copy_wakeup_routine anyway. Aha, its actually okay. > Pavel> How do you manage to return from this routine? > > Precisely like do_suspend_lowlevel_s4bios: calling save_registers and > effectively reusing the tail-end of do_suspend_lowlevel. Hmm, okay, nice hack but you want it documented at some point. Perhaps comment just after jump to acpi_wakeup is good idea? Pavel -- Horseback riding is like software... ...vgf orggre jura vgf serr. |