From: Paul Mackerras Date: Tue, 8 May 2007 03:37:51 +0000 (+1000) Subject: Merge branch 'linux-2.6' X-Git-Tag: v2.6.22-rc1~358^2~14 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=02bbc0f09c90cefdb2837605c96a66c5ce4ba2e1;p=linux-2.6 Merge branch 'linux-2.6' --- 02bbc0f09c90cefdb2837605c96a66c5ce4ba2e1 diff --cc arch/powerpc/Kconfig index 5ada5b45cb,8de5f9ff4a..67668fdb02 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@@ -117,9 -117,19 +117,22 @@@ config GENERIC_BU default y depends on BUG +config SYS_SUPPORTS_APM_EMULATION + bool + + # + # Powerpc uses the slab allocator to manage its ptes and the + # page structs of ptes are used for splitting the page table + # lock for configurations supporting more than SPLIT_PTLOCK_CPUS. + # + # In that special configuration the page structs of slabs are modified. + # This setting disables the selection of SLUB as a slab allocator. + # + config ARCH_USES_SLAB_PAGE_STRUCT + bool + default y + depends on SPLIT_PTLOCK_CPUS <= NR_CPUS + config DEFAULT_UIMAGE bool help diff --cc arch/powerpc/kernel/Makefile index 4dc73b8c25,aa693d0f15..94c703a950 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile @@@ -36,9 -36,8 +36,9 @@@ obj-$(CONFIG_GENERIC_TBSYNC) += smp-tbs obj-$(CONFIG_CRASH_DUMP) += crash_dump.o obj-$(CONFIG_6xx) += idle_6xx.o l2cr_6xx.o cpu_setup_6xx.o obj-$(CONFIG_TAU) += tau_6xx.o - obj-$(CONFIG_SOFTWARE_SUSPEND) += swsusp.o ++obj-$(CONFIG_SOFTWARE_SUSPEND) += swsusp.o suspend.o obj32-$(CONFIG_SOFTWARE_SUSPEND) += swsusp_32.o -obj-$(CONFIG_SOFTWARE_SUSPEND) += suspend.o +obj64-$(CONFIG_SOFTWARE_SUSPEND) += swsusp_64.o swsusp_asm64.o obj32-$(CONFIG_MODULES) += module_32.o ifeq ($(CONFIG_PPC_MERGE),y) diff --cc arch/ppc/syslib/ppc4xx_sgdma.c index 93349e48bf,5dadca3e0d..c4b369b50f --- a/arch/ppc/syslib/ppc4xx_sgdma.c +++ b/arch/ppc/syslib/ppc4xx_sgdma.c @@@ -23,8 -23,6 +23,7 @@@ #include #include #include +#include - #include #include #include diff --cc drivers/video/ps3fb.c index a9ca498664,07d1979bc2..9756a728b7 --- a/drivers/video/ps3fb.c +++ b/drivers/video/ps3fb.c @@@ -885,10 -898,10 +898,10 @@@ static int ps3fb_vsync_settings(struct } ps3fb.dev = dev; - error = ps3_alloc_irq(PS3_BINDING_CPU_ANY, dinfo->irq.irq_outlet, - &ps3fb.irq_no); + error = ps3_irq_plug_setup(PS3_BINDING_CPU_ANY, dinfo->irq.irq_outlet, + &ps3fb.irq_no); if (error) { - printk(KERN_ERR "%s: ps3_alloc_irq failed %d\n", __FUNCTION__, + printk(KERN_ERR "%s: ps3_alloc_irq failed %d\n", __func__, error); return error; } @@@ -896,9 -909,9 +909,9 @@@ error = request_irq(ps3fb.irq_no, ps3fb_vsync_interrupt, IRQF_DISABLED, "ps3fb vsync", ps3fb.dev); if (error) { - printk(KERN_ERR "%s: request_irq failed %d\n", __FUNCTION__, + printk(KERN_ERR "%s: request_irq failed %d\n", __func__, error); - ps3_free_irq(ps3fb.irq_no); + ps3_irq_plug_destroy(ps3fb.irq_no); return error; } @@@ -1083,9 -1107,14 +1107,14 @@@ void ps3fb_cleanup(void { int status; + if (ps3fb.task) { + struct task_struct *task = ps3fb.task; + ps3fb.task = NULL; + kthread_stop(task); + } if (ps3fb.irq_no) { free_irq(ps3fb.irq_no, ps3fb.dev); - ps3_free_irq(ps3fb.irq_no); + ps3_irq_plug_destroy(ps3fb.irq_no); } iounmap((u8 __iomem *)ps3fb.dinfo); diff --cc kernel/power/Kconfig index 5001c65202,877721708f..495b7d4dd3 --- a/kernel/power/Kconfig +++ b/kernel/power/Kconfig @@@ -78,10 -78,12 +78,12 @@@ config PM_SYSFS_DEPRECATE are likely to be bus or driver specific. config SOFTWARE_SUSPEND - bool "Software Suspend" + bool "Software Suspend (Hibernation)" - depends on PM && SWAP && ((X86 && (!SMP || SUSPEND_SMP)) || ((FRV || PPC32) && !SMP)) + depends on PM && SWAP && (((X86 || PPC64_SWSUSP) && (!SMP || SUSPEND_SMP)) || ((FRV || PPC32) && !SMP)) ---help--- - Enable the suspend to disk (STD) functionality. + Enable the suspend to disk (STD) functionality, which is usually + called "hibernation" in user interfaces. STD checkpoints the + system and powers it off; and restores that checkpoint on reboot. You can suspend your machine with 'echo disk > /sys/power/state'. Alternatively, you can use the additional userland tools available