summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@nuts.davemloft.net>2004-04-13 08:53:43 -0700
committerDavid S. Miller <davem@nuts.davemloft.net>2004-04-13 08:53:43 -0700
commit45f96af1e303ff666cb3c6ac2bf241e667c6f856 (patch)
tree96091faf66c1ba8e5a2e5b4f517faffc5d196144
parent51af77dbb806a3df044de15301d51488202bdfce (diff)
parent697a7d5de2b1465a7d6e83c8651921a301f27e42 (diff)
Merge nuts.davemloft.net:/disk1/BK/sparcwork-2.6
into nuts.davemloft.net:/disk1/BK/sparc-2.6
-rw-r--r--arch/sparc/kernel/process.c8
-rw-r--r--arch/sparc64/Kconfig5
-rw-r--r--arch/sparc64/Makefile1
-rw-r--r--arch/sparc64/kernel/Makefile2
-rw-r--r--arch/sparc64/kernel/power.c8
-rw-r--r--arch/sparc64/lib/mcount.S3
-rw-r--r--arch/sparc64/mm/hugetlbpage.c1
-rw-r--r--drivers/video/bw2.c6
-rw-r--r--drivers/video/cg14.c93
-rw-r--r--drivers/video/cg3.c8
-rw-r--r--drivers/video/cg6.c50
-rw-r--r--drivers/video/ffb.c164
-rw-r--r--drivers/video/leo.c80
-rw-r--r--drivers/video/tcx.c67
-rw-r--r--include/linux/sysctl.h1
-rw-r--r--include/sound/sndmagic.h1
-rw-r--r--kernel/sysctl.c9
-rw-r--r--sound/core/Kconfig2
18 files changed, 417 insertions, 92 deletions
diff --git a/arch/sparc/kernel/process.c b/arch/sparc/kernel/process.c
index 70261b211997..8f7c9429d7c0 100644
--- a/arch/sparc/kernel/process.c
+++ b/arch/sparc/kernel/process.c
@@ -56,6 +56,12 @@ void (*pm_idle)(void);
*/
void (*pm_power_off)(void);
+/*
+ * sysctl - toggle power-off restriction for serial console
+ * systems in machine_power_off()
+ */
+int scons_pwroff = 1;
+
extern void fpsave(unsigned long *, unsigned long *, void *, unsigned long *);
struct task_struct *last_task_used_math = NULL;
@@ -187,7 +193,7 @@ EXPORT_SYMBOL(machine_restart);
void machine_power_off(void)
{
#ifdef CONFIG_SUN_AUXIO
- if (auxio_power_register && !serial_console)
+ if (auxio_power_register && (!serial_console || scons_pwroff))
*auxio_power_register |= AUXIO_POWER_OFF;
#endif
machine_halt();
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index fda940d84cd5..ff9718e102e6 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -700,6 +700,11 @@ config MCOUNT
depends on STACK_DEBUG
default y
+config FRAME_POINTER
+ bool
+ depends on MCOUNT
+ default y
+
endmenu
source "security/Kconfig"
diff --git a/arch/sparc64/Makefile b/arch/sparc64/Makefile
index 5055b55afffb..fab2d826b9a2 100644
--- a/arch/sparc64/Makefile
+++ b/arch/sparc64/Makefile
@@ -52,7 +52,6 @@ ifeq ($(INLINE_LIMIT),y)
endif
ifeq ($(CONFIG_MCOUNT),y)
- CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS))
CFLAGS := $(CFLAGS) -pg
endif
diff --git a/arch/sparc64/kernel/Makefile b/arch/sparc64/kernel/Makefile
index 2caca47d8658..22113fd41185 100644
--- a/arch/sparc64/kernel/Makefile
+++ b/arch/sparc64/kernel/Makefile
@@ -3,7 +3,7 @@
#
EXTRA_AFLAGS := -ansi
-EXTRA_CFLAGS := -Werror
+# EXTRA_CFLAGS := -Werror
extra-y := head.o init_task.o vmlinux.lds.s
diff --git a/arch/sparc64/kernel/power.c b/arch/sparc64/kernel/power.c
index bebec2e39398..b501622f0318 100644
--- a/arch/sparc64/kernel/power.c
+++ b/arch/sparc64/kernel/power.c
@@ -20,6 +20,12 @@
#define __KERNEL_SYSCALLS__
#include <linux/unistd.h>
+/*
+ * sysctl - toggle power-off restriction for serial console
+ * systems in machine_power_off()
+ */
+int scons_pwroff = 1;
+
#ifdef CONFIG_PCI
static unsigned long power_reg = 0UL;
@@ -44,7 +50,7 @@ static void (*poweroff_method)(void) = machine_alt_power_off;
void machine_power_off(void)
{
- if (!serial_console) {
+ if (!serial_console || scons_pwroff) {
#ifdef CONFIG_PCI
if (power_reg != 0UL) {
/* Both register bits seem to have the
diff --git a/arch/sparc64/lib/mcount.S b/arch/sparc64/lib/mcount.S
index db5ecf9aa1a4..4e8c7928c49f 100644
--- a/arch/sparc64/lib/mcount.S
+++ b/arch/sparc64/lib/mcount.S
@@ -30,8 +30,9 @@ ovstack:
#endif
.text
.align 32
- .globl mcount
+ .globl mcount, _mcount
mcount:
+_mcount:
#ifdef CONFIG_STACK_DEBUG
/*
* Check whether %sp is dangerously low.
diff --git a/arch/sparc64/mm/hugetlbpage.c b/arch/sparc64/mm/hugetlbpage.c
index b4e6dfa0833a..bf9d8c89df56 100644
--- a/arch/sparc64/mm/hugetlbpage.c
+++ b/arch/sparc64/mm/hugetlbpage.c
@@ -5,6 +5,7 @@
*/
#include <linux/config.h>
+#include <linux/module.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <linux/mm.h>
diff --git a/drivers/video/bw2.c b/drivers/video/bw2.c
index cf270f154144..b3ab23b0725b 100644
--- a/drivers/video/bw2.c
+++ b/drivers/video/bw2.c
@@ -162,8 +162,10 @@ bw2_blank(int blank, struct fb_info *info)
}
static struct sbus_mmap_map bw2_mmap_map[] = {
- { 0, 0, SBUS_MMAP_FBSIZE(1) },
- { 0, 0, 0 }
+ {
+ .size = SBUS_MMAP_FBSIZE(1)
+ },
+ { .size = 0 }
};
static int bw2_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
diff --git a/drivers/video/cg14.c b/drivers/video/cg14.c
index 375443707b3a..40d28baf46c2 100644
--- a/drivers/video/cg14.c
+++ b/drivers/video/cg14.c
@@ -367,23 +367,82 @@ static void cg14_init_fix(struct fb_info *info, int linebytes)
}
static struct sbus_mmap_map __cg14_mmap_map[CG14_MMAP_ENTRIES] __initdata = {
- { CG14_REGS, 0x80000000, 0x1000 },
- { CG14_XLUT, 0x80003000, 0x1000 },
- { CG14_CLUT1, 0x80004000, 0x1000 },
- { CG14_CLUT2, 0x80005000, 0x1000 },
- { CG14_CLUT3, 0x80006000, 0x1000 },
- { CG3_MMAP_OFFSET -
- 0x7000, 0x80000000, 0x7000 },
- { CG3_MMAP_OFFSET, 0x00000000, SBUS_MMAP_FBSIZE(1) },
- { MDI_CURSOR_MAP, 0x80001000, 0x1000 },
- { MDI_CHUNKY_BGR_MAP, 0x01000000, 0x400000 },
- { MDI_PLANAR_X16_MAP, 0x02000000, 0x200000 },
- { MDI_PLANAR_C16_MAP, 0x02800000, 0x200000 },
- { MDI_PLANAR_X32_MAP, 0x03000000, 0x100000 },
- { MDI_PLANAR_B32_MAP, 0x03400000, 0x100000 },
- { MDI_PLANAR_G32_MAP, 0x03800000, 0x100000 },
- { MDI_PLANAR_R32_MAP, 0x03c00000, 0x100000 },
- { 0, 0, 0 }
+ {
+ .voff = CG14_REGS,
+ .poff = 0x80000000,
+ .size = 0x1000
+ },
+ {
+ .voff = CG14_XLUT,
+ .poff = 0x80003000,
+ .size = 0x1000
+ },
+ {
+ .voff = CG14_CLUT1,
+ .poff = 0x80004000,
+ .size = 0x1000
+ },
+ {
+ .voff = CG14_CLUT2,
+ .poff = 0x80005000,
+ .size = 0x1000
+ },
+ {
+ .voff = CG14_CLUT3,
+ .poff = 0x80006000,
+ .size = 0x1000
+ },
+ {
+ .voff = CG3_MMAP_OFFSET - 0x7000,
+ .poff = 0x80000000,
+ .size = 0x7000
+ },
+ {
+ .voff = CG3_MMAP_OFFSET,
+ .poff = 0x00000000,
+ .size = SBUS_MMAP_FBSIZE(1)
+ },
+ {
+ .voff = MDI_CURSOR_MAP,
+ .poff = 0x80001000,
+ .size = 0x1000
+ },
+ {
+ .voff = MDI_CHUNKY_BGR_MAP,
+ .poff = 0x01000000,
+ .size = 0x400000
+ },
+ {
+ .voff = MDI_PLANAR_X16_MAP,
+ .poff = 0x02000000,
+ .size = 0x200000
+ },
+ {
+ .voff = MDI_PLANAR_C16_MAP,
+ .poff = 0x02800000,
+ .size = 0x200000
+ },
+ {
+ .voff = MDI_PLANAR_X32_MAP,
+ .poff = 0x03000000,
+ .size = 0x100000
+ },
+ {
+ .voff = MDI_PLANAR_B32_MAP,
+ .poff = 0x03400000,
+ .size = 0x100000
+ },
+ {
+ .voff = MDI_PLANAR_G32_MAP,
+ .poff = 0x03800000,
+ .size = 0x100000
+ },
+ {
+ .voff = MDI_PLANAR_R32_MAP,
+ .poff = 0x03c00000,
+ .size = 0x100000
+ },
+ { .size = 0 }
};
struct all_info {
diff --git a/drivers/video/cg3.c b/drivers/video/cg3.c
index 361f5f93942f..dd0163cc31cb 100644
--- a/drivers/video/cg3.c
+++ b/drivers/video/cg3.c
@@ -221,8 +221,12 @@ cg3_blank(int blank, struct fb_info *info)
}
static struct sbus_mmap_map cg3_mmap_map[] = {
- { CG3_MMAP_OFFSET, CG3_RAM_OFFSET, SBUS_MMAP_FBSIZE(1) },
- { 0, 0, 0 }
+ {
+ .poff = CG3_MMAP_OFFSET,
+ .voff = CG3_RAM_OFFSET,
+ .size = SBUS_MMAP_FBSIZE(1)
+ },
+ { .size = 0 }
};
static int cg3_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
diff --git a/drivers/video/cg6.c b/drivers/video/cg6.c
index b343355a13e1..469ac206081d 100644
--- a/drivers/video/cg6.c
+++ b/drivers/video/cg6.c
@@ -480,15 +480,47 @@ cg6_blank(int blank, struct fb_info *info)
}
static struct sbus_mmap_map cg6_mmap_map[] = {
- { CG6_FBC, CG6_FBC_OFFSET, PAGE_SIZE },
- { CG6_TEC, CG6_TEC_OFFSET, PAGE_SIZE },
- { CG6_BTREGS, CG6_BROOKTREE_OFFSET, PAGE_SIZE },
- { CG6_FHC, CG6_FHC_OFFSET, PAGE_SIZE },
- { CG6_THC, CG6_THC_OFFSET, PAGE_SIZE },
- { CG6_ROM, CG6_ROM_OFFSET, 0x10000 },
- { CG6_RAM, CG6_RAM_OFFSET, SBUS_MMAP_FBSIZE(1) },
- { CG6_DHC, CG6_DHC_OFFSET, 0x40000 },
- { 0, 0, 0 }
+ {
+ .voff = CG6_FBC,
+ .poff = CG6_FBC_OFFSET,
+ .size = PAGE_SIZE
+ },
+ {
+ .voff = CG6_TEC,
+ .poff = CG6_TEC_OFFSET,
+ .size = PAGE_SIZE
+ },
+ {
+ .voff = CG6_BTREGS,
+ .poff = CG6_BROOKTREE_OFFSET,
+ .size = PAGE_SIZE
+ },
+ {
+ .voff = CG6_FHC,
+ .poff = CG6_FHC_OFFSET,
+ .size = PAGE_SIZE
+ },
+ {
+ .voff = CG6_THC,
+ .poff = CG6_THC_OFFSET,
+ .size = PAGE_SIZE
+ },
+ {
+ .voff = CG6_ROM,
+ .poff = CG6_ROM_OFFSET,
+ .size = 0x10000
+ },
+ {
+ .voff = CG6_RAM,
+ .poff = CG6_RAM_OFFSET,
+ .size = SBUS_MMAP_FBSIZE(1)
+ },
+ {
+ .voff = CG6_DHC,
+ .poff = CG6_DHC_OFFSET,
+ .size = 0x40000
+ },
+ { .size = 0 }
};
static int cg6_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
diff --git a/drivers/video/ffb.c b/drivers/video/ffb.c
index 3e2fb2bb088f..1f7613131932 100644
--- a/drivers/video/ffb.c
+++ b/drivers/video/ffb.c
@@ -769,34 +769,142 @@ ffb_blank(int blank, struct fb_info *info)
}
static struct sbus_mmap_map ffb_mmap_map[] = {
- { FFB_SFB8R_VOFF, FFB_SFB8R_POFF, 0x0400000 },
- { FFB_SFB8G_VOFF, FFB_SFB8G_POFF, 0x0400000 },
- { FFB_SFB8B_VOFF, FFB_SFB8B_POFF, 0x0400000 },
- { FFB_SFB8X_VOFF, FFB_SFB8X_POFF, 0x0400000 },
- { FFB_SFB32_VOFF, FFB_SFB32_POFF, 0x1000000 },
- { FFB_SFB64_VOFF, FFB_SFB64_POFF, 0x2000000 },
- { FFB_FBC_REGS_VOFF, FFB_FBC_REGS_POFF, 0x0002000 },
- { FFB_BM_FBC_REGS_VOFF, FFB_BM_FBC_REGS_POFF, 0x0002000 },
- { FFB_DFB8R_VOFF, FFB_DFB8R_POFF, 0x0400000 },
- { FFB_DFB8G_VOFF, FFB_DFB8G_POFF, 0x0400000 },
- { FFB_DFB8B_VOFF, FFB_DFB8B_POFF, 0x0400000 },
- { FFB_DFB8X_VOFF, FFB_DFB8X_POFF, 0x0400000 },
- { FFB_DFB24_VOFF, FFB_DFB24_POFF, 0x1000000 },
- { FFB_DFB32_VOFF, FFB_DFB32_POFF, 0x1000000 },
- { FFB_FBC_KREGS_VOFF, FFB_FBC_KREGS_POFF, 0x0002000 },
- { FFB_DAC_VOFF, FFB_DAC_POFF, 0x0002000 },
- { FFB_PROM_VOFF, FFB_PROM_POFF, 0x0010000 },
- { FFB_EXP_VOFF, FFB_EXP_POFF, 0x0002000 },
- { FFB_DFB422A_VOFF, FFB_DFB422A_POFF, 0x0800000 },
- { FFB_DFB422AD_VOFF, FFB_DFB422AD_POFF, 0x0800000 },
- { FFB_DFB24B_VOFF, FFB_DFB24B_POFF, 0x1000000 },
- { FFB_DFB422B_VOFF, FFB_DFB422B_POFF, 0x0800000 },
- { FFB_DFB422BD_VOFF, FFB_DFB422BD_POFF, 0x0800000 },
- { FFB_SFB16Z_VOFF, FFB_SFB16Z_POFF, 0x0800000 },
- { FFB_SFB8Z_VOFF, FFB_SFB8Z_POFF, 0x0800000 },
- { FFB_SFB422_VOFF, FFB_SFB422_POFF, 0x0800000 },
- { FFB_SFB422D_VOFF, FFB_SFB422D_POFF, 0x0800000 },
- { 0, 0, 0 }
+ {
+ .voff = FFB_SFB8R_VOFF,
+ .poff = FFB_SFB8R_POFF,
+ .size = 0x0400000
+ },
+ {
+ .voff = FFB_SFB8G_VOFF,
+ .poff = FFB_SFB8G_POFF,
+ .size = 0x0400000
+ },
+ {
+ .voff = FFB_SFB8B_VOFF,
+ .poff = FFB_SFB8B_POFF,
+ .size = 0x0400000
+ },
+ {
+ .voff = FFB_SFB8X_VOFF,
+ .poff = FFB_SFB8X_POFF,
+ .size = 0x0400000
+ },
+ {
+ .voff = FFB_SFB32_VOFF,
+ .poff = FFB_SFB32_POFF,
+ .size = 0x1000000
+ },
+ {
+ .voff = FFB_SFB64_VOFF,
+ .poff = FFB_SFB64_POFF,
+ .size = 0x2000000
+ },
+ {
+ .voff = FFB_FBC_REGS_VOFF,
+ .poff = FFB_FBC_REGS_POFF,
+ .size = 0x0002000
+ },
+ {
+ .voff = FFB_BM_FBC_REGS_VOFF,
+ .poff = FFB_BM_FBC_REGS_POFF,
+ .size = 0x0002000
+ },
+ {
+ .voff = FFB_DFB8R_VOFF,
+ .poff = FFB_DFB8R_POFF,
+ .size = 0x0400000
+ },
+ {
+ .voff = FFB_DFB8G_VOFF,
+ .poff = FFB_DFB8G_POFF,
+ .size = 0x0400000
+ },
+ {
+ .voff = FFB_DFB8B_VOFF,
+ .poff = FFB_DFB8B_POFF,
+ .size = 0x0400000
+ },
+ {
+ .voff = FFB_DFB8X_VOFF,
+ .poff = FFB_DFB8X_POFF,
+ .size = 0x0400000
+ },
+ {
+ .voff = FFB_DFB24_VOFF,
+ .poff = FFB_DFB24_POFF,
+ .size = 0x1000000
+ },
+ {
+ .voff = FFB_DFB32_VOFF,
+ .poff = FFB_DFB32_POFF,
+ .size = 0x1000000
+ },
+ {
+ .voff = FFB_FBC_KREGS_VOFF,
+ .poff = FFB_FBC_KREGS_POFF,
+ .size = 0x0002000
+ },
+ {
+ .voff = FFB_DAC_VOFF,
+ .poff = FFB_DAC_POFF,
+ .size = 0x0002000
+ },
+ {
+ .voff = FFB_PROM_VOFF,
+ .poff = FFB_PROM_POFF,
+ .size = 0x0010000
+ },
+ {
+ .voff = FFB_EXP_VOFF,
+ .poff = FFB_EXP_POFF,
+ .size = 0x0002000
+ },
+ {
+ .voff = FFB_DFB422A_VOFF,
+ .poff = FFB_DFB422A_POFF,
+ .size = 0x0800000
+ },
+ {
+ .voff = FFB_DFB422AD_VOFF,
+ .poff = FFB_DFB422AD_POFF,
+ .size = 0x0800000
+ },
+ {
+ .voff = FFB_DFB24B_VOFF,
+ .poff = FFB_DFB24B_POFF,
+ .size = 0x1000000
+ },
+ {
+ .voff = FFB_DFB422B_VOFF,
+ .poff = FFB_DFB422B_POFF,
+ .size = 0x0800000
+ },
+ {
+ .voff = FFB_DFB422BD_VOFF,
+ .poff = FFB_DFB422BD_POFF,
+ .size = 0x0800000
+ },
+ {
+ .voff = FFB_SFB16Z_VOFF,
+ .poff = FFB_SFB16Z_POFF,
+ .size = 0x0800000
+ },
+ {
+ .voff = FFB_SFB8Z_VOFF,
+ .poff = FFB_SFB8Z_POFF,
+ .size = 0x0800000
+ },
+ {
+ .voff = FFB_SFB422_VOFF,
+ .poff = FFB_SFB422_POFF,
+ .size = 0x0800000
+ },
+ {
+ .voff = FFB_SFB422D_VOFF,
+ .poff = FFB_SFB422D_POFF,
+ .size = 0x0800000
+ },
+ { .size = 0 }
};
static int ffb_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
diff --git a/drivers/video/leo.c b/drivers/video/leo.c
index eb4f79a41455..7547e8936590 100644
--- a/drivers/video/leo.c
+++ b/drivers/video/leo.c
@@ -294,20 +294,72 @@ static int leo_blank(int blank, struct fb_info *info)
}
static struct sbus_mmap_map leo_mmap_map[] = {
- { LEO_SS0_MAP, LEO_OFF_SS0, 0x800000 },
- { LEO_LC_SS0_USR_MAP, LEO_OFF_LC_SS0_USR, 0x1000 },
- { LEO_LD_SS0_MAP, LEO_OFF_LD_SS0, 0x1000 },
- { LEO_LX_CURSOR_MAP, LEO_OFF_LX_CURSOR, 0x1000 },
- { LEO_SS1_MAP, LEO_OFF_SS1, 0x800000 },
- { LEO_LC_SS1_USR_MAP, LEO_OFF_LC_SS1_USR, 0x1000 },
- { LEO_LD_SS1_MAP, LEO_OFF_LD_SS1, 0x1000 },
- { LEO_UNK_MAP, LEO_OFF_UNK, 0x1000 },
- { LEO_LX_KRN_MAP, LEO_OFF_LX_KRN, 0x1000 },
- { LEO_LC_SS0_KRN_MAP, LEO_OFF_LC_SS0_KRN, 0x1000 },
- { LEO_LC_SS1_KRN_MAP, LEO_OFF_LC_SS1_KRN, 0x1000 },
- { LEO_LD_GBL_MAP, LEO_OFF_LD_GBL, 0x1000 },
- { LEO_UNK2_MAP, LEO_OFF_UNK2, 0x100000 },
- { 0, 0, 0 }
+ {
+ .voff = LEO_SS0_MAP,
+ .poff = LEO_OFF_SS0,
+ .size = 0x800000
+ },
+ {
+ .voff = LEO_LC_SS0_USR_MAP,
+ .poff = LEO_OFF_LC_SS0_USR,
+ .size = 0x1000
+ },
+ {
+ .voff = LEO_LD_SS0_MAP,
+ .poff = LEO_OFF_LD_SS0,
+ .size = 0x1000
+ },
+ {
+ .voff = LEO_LX_CURSOR_MAP,
+ .poff = LEO_OFF_LX_CURSOR,
+ .size = 0x1000
+ },
+ {
+ .voff = LEO_SS1_MAP,
+ .poff = LEO_OFF_SS1,
+ .size = 0x800000
+ },
+ {
+ .voff = LEO_LC_SS1_USR_MAP,
+ .poff = LEO_OFF_LC_SS1_USR,
+ .size = 0x1000
+ },
+ {
+ .voff = LEO_LD_SS1_MAP,
+ .poff = LEO_OFF_LD_SS1,
+ .size = 0x1000
+ },
+ {
+ .voff = LEO_UNK_MAP,
+ .poff = LEO_OFF_UNK,
+ .size = 0x1000
+ },
+ {
+ .voff = LEO_LX_KRN_MAP,
+ .poff = LEO_OFF_LX_KRN,
+ .size = 0x1000
+ },
+ {
+ .voff = LEO_LC_SS0_KRN_MAP,
+ .poff = LEO_OFF_LC_SS0_KRN,
+ .size = 0x1000
+ },
+ {
+ .voff = LEO_LC_SS1_KRN_MAP,
+ .poff = LEO_OFF_LC_SS1_KRN,
+ .size = 0x1000
+ },
+ {
+ .voff = LEO_LD_GBL_MAP,
+ .poff = LEO_OFF_LD_GBL,
+ .size = 0x1000
+ },
+ {
+ .voff = LEO_UNK2_MAP,
+ .poff = LEO_OFF_UNK2,
+ .size = 0x100000
+ },
+ { .size = 0 }
};
static int leo_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
diff --git a/drivers/video/tcx.c b/drivers/video/tcx.c
index 6016879e5122..543711c99ded 100644
--- a/drivers/video/tcx.c
+++ b/drivers/video/tcx.c
@@ -238,20 +238,59 @@ tcx_blank(int blank, struct fb_info *info)
}
static struct sbus_mmap_map __tcx_mmap_map[TCX_MMAP_ENTRIES] = {
- { TCX_RAM8BIT, 0, SBUS_MMAP_FBSIZE(1) },
- { TCX_RAM24BIT, 0, SBUS_MMAP_FBSIZE(4) },
- { TCX_UNK3, 0, SBUS_MMAP_FBSIZE(8) },
- { TCX_UNK4, 0, SBUS_MMAP_FBSIZE(8) },
- { TCX_CONTROLPLANE, 0, SBUS_MMAP_FBSIZE(4) },
- { TCX_UNK6, 0, SBUS_MMAP_FBSIZE(8) },
- { TCX_UNK7, 0, SBUS_MMAP_FBSIZE(8) },
- { TCX_TEC, 0, PAGE_SIZE },
- { TCX_BTREGS, 0, PAGE_SIZE },
- { TCX_THC, 0, PAGE_SIZE },
- { TCX_DHC, 0, PAGE_SIZE },
- { TCX_ALT, 0, PAGE_SIZE },
- { TCX_UNK2, 0, 0x20000 },
- { 0, 0, 0 }
+ {
+ .voff = TCX_RAM8BIT,
+ .size = SBUS_MMAP_FBSIZE(1)
+ },
+ {
+ .voff = TCX_RAM24BIT,
+ .size = SBUS_MMAP_FBSIZE(4)
+ },
+ {
+ .voff = TCX_UNK3,
+ .size = SBUS_MMAP_FBSIZE(8)
+ },
+ {
+ .voff = TCX_UNK4,
+ .size = SBUS_MMAP_FBSIZE(8)
+ },
+ {
+ .voff = TCX_CONTROLPLANE,
+ .size = SBUS_MMAP_FBSIZE(4)
+ },
+ {
+ .voff = TCX_UNK6,
+ .size = SBUS_MMAP_FBSIZE(8)
+ },
+ {
+ .voff = TCX_UNK7,
+ .size = SBUS_MMAP_FBSIZE(8)
+ },
+ {
+ .voff = TCX_TEC,
+ .size = PAGE_SIZE
+ },
+ {
+ .voff = TCX_BTREGS,
+ .size = PAGE_SIZE
+ },
+ {
+ .voff = TCX_THC,
+ .size = PAGE_SIZE
+ },
+ {
+ .voff = TCX_DHC,
+ .size = PAGE_SIZE
+ },
+ {
+ .voff = TCX_ALT,
+ .size = PAGE_SIZE
+ },
+ {
+ .voff = TCX_UNK2,
+ .size = 0x20000
+ },
+ { .size = 0 }
};
static int tcx_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index d2224f6617f9..a098e6ab9e8d 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -131,6 +131,7 @@ enum
KERN_PRINTK_RATELIMIT_BURST=61, /* int: tune printk ratelimiting */
KERN_PTY=62, /* dir: pty driver */
KERN_NGROUPS_MAX=63, /* int: NGROUPS_MAX */
+ KERN_SPARC_SCONS_PWROFF=64, /* int: serial console power-off halt */
};
diff --git a/include/sound/sndmagic.h b/include/sound/sndmagic.h
index 2efdac6d8ed5..bf1a62f83f9f 100644
--- a/include/sound/sndmagic.h
+++ b/include/sound/sndmagic.h
@@ -203,6 +203,7 @@ static inline int _snd_magic_bad(void *obj, unsigned long magic)
#define pdacf_t_magic 0xa15a4500
#define vortex_t_magic 0xa15a4601
#define atiixp_t_magic 0xa15a4701
+#define amd7930_t_magic 0xa15a4801
#else
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 69e9123cdd0f..073c13b21518 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -93,6 +93,7 @@ extern int sem_ctls[];
#ifdef __sparc__
extern char reboot_command [];
extern int stop_a_enabled;
+extern int scons_pwroff;
#endif
#ifdef __hppa__
@@ -325,6 +326,14 @@ static ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = &proc_dointvec,
},
+ {
+ .ctl_name = KERN_SPARC_SCONS_PWROFF,
+ .procname = "scons-poweroff",
+ .data = &scons_pwroff,
+ .maxlen = sizeof (int),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec,
+ },
#endif
#ifdef __hppa__
{
diff --git a/sound/core/Kconfig b/sound/core/Kconfig
index 18ada7fb2590..4bf2288013b7 100644
--- a/sound/core/Kconfig
+++ b/sound/core/Kconfig
@@ -1,7 +1,7 @@
# ALSA soundcard-configuration
config SND_BIT32_EMUL
tristate "Emulation for 32-bit applications"
- depends on SND && (SPARC64 || PPC64 || X86_64 && IA32_EMULATION)
+ depends on SND && SND_PCM && (SPARC64 || PPC64 || X86_64 && IA32_EMULATION)
config SND_TIMER
tristate