Re: [PATCH v4 resend] OLPC: Add XO-1 suspend/resume support

From: Thomas Gleixner
Date: Fri Nov 26 2010 - 04:43:52 EST


On Thu, 18 Nov 2010, Daniel Drake wrote:
> Feedback after the first submission was quickly acted upon and I haven't been
> able to get a peep since.

Sorry, fell off the radar.

> +
> +wakeup_start:
> +# jmp wakeup_start

Debug leftover ?

> +asmlinkage int olpc_xo1_do_sleep(u8 sleep_state)
> +{
> + void *pgd_addr = __va(read_cr3());
> + printk(KERN_ERR "xo1_do_sleep!\n"); /* this needs to remain here so
> + * that gcc doesn't optimize
> + * away our __va! */
> +

This looks suspect along with the __volatile__ magic below. Care to
explain, what you fear that gcc is optimizing away ?

> + /* Enable wakeup through power button */
> + outl((CS5536_PM_PWRBTN << 16) | 0xFFFF, acpi_base + PM1_STS);
> +
> + __asm__ __volatile__("movl %0,%%eax" : : "r" (pgd_addr));
> + __asm__("call *(%%edi); cld"
> + : : "D" (&ofw_bios_entry));
> + __asm__ __volatile__("movb $0x34, %al\n\t"
> + "outb %al, $0x70\n\t"
> + "movb $0x30, %al\n\t"
> + "outb %al, $0x71\n\t");

Looks good otherwise.

Thanks,

tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/