Commit 45f96af1 authored by David S. Miller's avatar David S. Miller

Merge nuts.davemloft.net:/disk1/BK/sparcwork-2.6

into nuts.davemloft.net:/disk1/BK/sparc-2.6
parents 51af77db 697a7d5d
...@@ -56,6 +56,12 @@ void (*pm_idle)(void); ...@@ -56,6 +56,12 @@ void (*pm_idle)(void);
*/ */
void (*pm_power_off)(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 *); extern void fpsave(unsigned long *, unsigned long *, void *, unsigned long *);
struct task_struct *last_task_used_math = NULL; struct task_struct *last_task_used_math = NULL;
...@@ -187,7 +193,7 @@ EXPORT_SYMBOL(machine_restart); ...@@ -187,7 +193,7 @@ EXPORT_SYMBOL(machine_restart);
void machine_power_off(void) void machine_power_off(void)
{ {
#ifdef CONFIG_SUN_AUXIO #ifdef CONFIG_SUN_AUXIO
if (auxio_power_register && !serial_console) if (auxio_power_register && (!serial_console || scons_pwroff))
*auxio_power_register |= AUXIO_POWER_OFF; *auxio_power_register |= AUXIO_POWER_OFF;
#endif #endif
machine_halt(); machine_halt();
......
...@@ -700,6 +700,11 @@ config MCOUNT ...@@ -700,6 +700,11 @@ config MCOUNT
depends on STACK_DEBUG depends on STACK_DEBUG
default y default y
config FRAME_POINTER
bool
depends on MCOUNT
default y
endmenu endmenu
source "security/Kconfig" source "security/Kconfig"
......
...@@ -52,7 +52,6 @@ ifeq ($(INLINE_LIMIT),y) ...@@ -52,7 +52,6 @@ ifeq ($(INLINE_LIMIT),y)
endif endif
ifeq ($(CONFIG_MCOUNT),y) ifeq ($(CONFIG_MCOUNT),y)
CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS))
CFLAGS := $(CFLAGS) -pg CFLAGS := $(CFLAGS) -pg
endif endif
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# #
EXTRA_AFLAGS := -ansi EXTRA_AFLAGS := -ansi
EXTRA_CFLAGS := -Werror # EXTRA_CFLAGS := -Werror
extra-y := head.o init_task.o vmlinux.lds.s extra-y := head.o init_task.o vmlinux.lds.s
......
...@@ -20,6 +20,12 @@ ...@@ -20,6 +20,12 @@
#define __KERNEL_SYSCALLS__ #define __KERNEL_SYSCALLS__
#include <linux/unistd.h> #include <linux/unistd.h>
/*
* sysctl - toggle power-off restriction for serial console
* systems in machine_power_off()
*/
int scons_pwroff = 1;
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
static unsigned long power_reg = 0UL; static unsigned long power_reg = 0UL;
...@@ -44,7 +50,7 @@ static void (*poweroff_method)(void) = machine_alt_power_off; ...@@ -44,7 +50,7 @@ static void (*poweroff_method)(void) = machine_alt_power_off;
void machine_power_off(void) void machine_power_off(void)
{ {
if (!serial_console) { if (!serial_console || scons_pwroff) {
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
if (power_reg != 0UL) { if (power_reg != 0UL) {
/* Both register bits seem to have the /* Both register bits seem to have the
......
...@@ -30,8 +30,9 @@ ovstack: ...@@ -30,8 +30,9 @@ ovstack:
#endif #endif
.text .text
.align 32 .align 32
.globl mcount .globl mcount, _mcount
mcount: mcount:
_mcount:
#ifdef CONFIG_STACK_DEBUG #ifdef CONFIG_STACK_DEBUG
/* /*
* Check whether %sp is dangerously low. * Check whether %sp is dangerously low.
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
*/ */
#include <linux/config.h> #include <linux/config.h>
#include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/mm.h> #include <linux/mm.h>
......
...@@ -162,8 +162,10 @@ bw2_blank(int blank, struct fb_info *info) ...@@ -162,8 +162,10 @@ bw2_blank(int blank, struct fb_info *info)
} }
static struct sbus_mmap_map bw2_mmap_map[] = { 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) static int bw2_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
......
...@@ -367,23 +367,82 @@ static void cg14_init_fix(struct fb_info *info, int linebytes) ...@@ -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 = { static struct sbus_mmap_map __cg14_mmap_map[CG14_MMAP_ENTRIES] __initdata = {
{ CG14_REGS, 0x80000000, 0x1000 }, {
{ CG14_XLUT, 0x80003000, 0x1000 }, .voff = CG14_REGS,
{ CG14_CLUT1, 0x80004000, 0x1000 }, .poff = 0x80000000,
{ CG14_CLUT2, 0x80005000, 0x1000 }, .size = 0x1000
{ CG14_CLUT3, 0x80006000, 0x1000 }, },
{ CG3_MMAP_OFFSET - {
0x7000, 0x80000000, 0x7000 }, .voff = CG14_XLUT,
{ CG3_MMAP_OFFSET, 0x00000000, SBUS_MMAP_FBSIZE(1) }, .poff = 0x80003000,
{ MDI_CURSOR_MAP, 0x80001000, 0x1000 }, .size = 0x1000
{ MDI_CHUNKY_BGR_MAP, 0x01000000, 0x400000 }, },
{ MDI_PLANAR_X16_MAP, 0x02000000, 0x200000 }, {
{ MDI_PLANAR_C16_MAP, 0x02800000, 0x200000 }, .voff = CG14_CLUT1,
{ MDI_PLANAR_X32_MAP, 0x03000000, 0x100000 }, .poff = 0x80004000,
{ MDI_PLANAR_B32_MAP, 0x03400000, 0x100000 }, .size = 0x1000
{ MDI_PLANAR_G32_MAP, 0x03800000, 0x100000 }, },
{ MDI_PLANAR_R32_MAP, 0x03c00000, 0x100000 }, {
{ 0, 0, 0 } .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 { struct all_info {
......
...@@ -221,8 +221,12 @@ cg3_blank(int blank, struct fb_info *info) ...@@ -221,8 +221,12 @@ cg3_blank(int blank, struct fb_info *info)
} }
static struct sbus_mmap_map cg3_mmap_map[] = { 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) static int cg3_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
......
...@@ -480,15 +480,47 @@ cg6_blank(int blank, struct fb_info *info) ...@@ -480,15 +480,47 @@ cg6_blank(int blank, struct fb_info *info)
} }
static struct sbus_mmap_map cg6_mmap_map[] = { static struct sbus_mmap_map cg6_mmap_map[] = {
{ CG6_FBC, CG6_FBC_OFFSET, PAGE_SIZE }, {
{ CG6_TEC, CG6_TEC_OFFSET, PAGE_SIZE }, .voff = CG6_FBC,
{ CG6_BTREGS, CG6_BROOKTREE_OFFSET, PAGE_SIZE }, .poff = CG6_FBC_OFFSET,
{ CG6_FHC, CG6_FHC_OFFSET, PAGE_SIZE }, .size = PAGE_SIZE
{ CG6_THC, CG6_THC_OFFSET, PAGE_SIZE }, },
{ CG6_ROM, CG6_ROM_OFFSET, 0x10000 }, {
{ CG6_RAM, CG6_RAM_OFFSET, SBUS_MMAP_FBSIZE(1) }, .voff = CG6_TEC,
{ CG6_DHC, CG6_DHC_OFFSET, 0x40000 }, .poff = CG6_TEC_OFFSET,
{ 0, 0, 0 } .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) static int cg6_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
......
...@@ -769,34 +769,142 @@ ffb_blank(int blank, struct fb_info *info) ...@@ -769,34 +769,142 @@ ffb_blank(int blank, struct fb_info *info)
} }
static struct sbus_mmap_map ffb_mmap_map[] = { static struct sbus_mmap_map ffb_mmap_map[] = {
{ FFB_SFB8R_VOFF, FFB_SFB8R_POFF, 0x0400000 }, {
{ FFB_SFB8G_VOFF, FFB_SFB8G_POFF, 0x0400000 }, .voff = FFB_SFB8R_VOFF,
{ FFB_SFB8B_VOFF, FFB_SFB8B_POFF, 0x0400000 }, .poff = FFB_SFB8R_POFF,
{ FFB_SFB8X_VOFF, FFB_SFB8X_POFF, 0x0400000 }, .size = 0x0400000
{ FFB_SFB32_VOFF, FFB_SFB32_POFF, 0x1000000 }, },
{ FFB_SFB64_VOFF, FFB_SFB64_POFF, 0x2000000 }, {
{ FFB_FBC_REGS_VOFF, FFB_FBC_REGS_POFF, 0x0002000 }, .voff = FFB_SFB8G_VOFF,
{ FFB_BM_FBC_REGS_VOFF, FFB_BM_FBC_REGS_POFF, 0x0002000 }, .poff = FFB_SFB8G_POFF,
{ FFB_DFB8R_VOFF, FFB_DFB8R_POFF, 0x0400000 }, .size = 0x0400000
{ FFB_DFB8G_VOFF, FFB_DFB8G_POFF, 0x0400000 }, },
{ FFB_DFB8B_VOFF, FFB_DFB8B_POFF, 0x0400000 }, {
{ FFB_DFB8X_VOFF, FFB_DFB8X_POFF, 0x0400000 }, .voff = FFB_SFB8B_VOFF,
{ FFB_DFB24_VOFF, FFB_DFB24_POFF, 0x1000000 }, .poff = FFB_SFB8B_POFF,
{ FFB_DFB32_VOFF, FFB_DFB32_POFF, 0x1000000 }, .size = 0x0400000
{ FFB_FBC_KREGS_VOFF, FFB_FBC_KREGS_POFF, 0x0002000 }, },
{ FFB_DAC_VOFF, FFB_DAC_POFF, 0x0002000 }, {
{ FFB_PROM_VOFF, FFB_PROM_POFF, 0x0010000 }, .voff = FFB_SFB8X_VOFF,
{ FFB_EXP_VOFF, FFB_EXP_POFF, 0x0002000 }, .poff = FFB_SFB8X_POFF,
{ FFB_DFB422A_VOFF, FFB_DFB422A_POFF, 0x0800000 }, .size = 0x0400000
{ FFB_DFB422AD_VOFF, FFB_DFB422AD_POFF, 0x0800000 }, },
{ FFB_DFB24B_VOFF, FFB_DFB24B_POFF, 0x1000000 }, {
{ FFB_DFB422B_VOFF, FFB_DFB422B_POFF, 0x0800000 }, .voff = FFB_SFB32_VOFF,
{ FFB_DFB422BD_VOFF, FFB_DFB422BD_POFF, 0x0800000 }, .poff = FFB_SFB32_POFF,
{ FFB_SFB16Z_VOFF, FFB_SFB16Z_POFF, 0x0800000 }, .size = 0x1000000
{ FFB_SFB8Z_VOFF, FFB_SFB8Z_POFF, 0x0800000 }, },
{ FFB_SFB422_VOFF, FFB_SFB422_POFF, 0x0800000 }, {
{ FFB_SFB422D_VOFF, FFB_SFB422D_POFF, 0x0800000 }, .voff = FFB_SFB64_VOFF,
{ 0, 0, 0 } .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) static int ffb_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
......
...@@ -294,20 +294,72 @@ static int leo_blank(int blank, struct fb_info *info) ...@@ -294,20 +294,72 @@ static int leo_blank(int blank, struct fb_info *info)
} }
static struct sbus_mmap_map leo_mmap_map[] = { 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 }, .voff = LEO_SS0_MAP,
{ LEO_LD_SS0_MAP, LEO_OFF_LD_SS0, 0x1000 }, .poff = LEO_OFF_SS0,
{ LEO_LX_CURSOR_MAP, LEO_OFF_LX_CURSOR, 0x1000 }, .size = 0x800000
{ 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 }, .voff = LEO_LC_SS0_USR_MAP,
{ LEO_UNK_MAP, LEO_OFF_UNK, 0x1000 }, .poff = LEO_OFF_LC_SS0_USR,
{ LEO_LX_KRN_MAP, LEO_OFF_LX_KRN, 0x1000 }, .size = 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 }, .voff = LEO_LD_SS0_MAP,
{ LEO_UNK2_MAP, LEO_OFF_UNK2, 0x100000 }, .poff = LEO_OFF_LD_SS0,
{ 0, 0, 0 } .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) static int leo_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
......
...@@ -238,20 +238,59 @@ tcx_blank(int blank, struct fb_info *info) ...@@ -238,20 +238,59 @@ tcx_blank(int blank, struct fb_info *info)
} }
static struct sbus_mmap_map __tcx_mmap_map[TCX_MMAP_ENTRIES] = { 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) }, .voff = TCX_RAM8BIT,
{ TCX_UNK3, 0, SBUS_MMAP_FBSIZE(8) }, .size = SBUS_MMAP_FBSIZE(1)
{ TCX_UNK4, 0, SBUS_MMAP_FBSIZE(8) }, },
{ TCX_CONTROLPLANE, 0, SBUS_MMAP_FBSIZE(4) }, {
{ TCX_UNK6, 0, SBUS_MMAP_FBSIZE(8) }, .voff = TCX_RAM24BIT,
{ TCX_UNK7, 0, SBUS_MMAP_FBSIZE(8) }, .size = SBUS_MMAP_FBSIZE(4)
{ TCX_TEC, 0, PAGE_SIZE }, },
{ TCX_BTREGS, 0, PAGE_SIZE }, {
{ TCX_THC, 0, PAGE_SIZE }, .voff = TCX_UNK3,
{ TCX_DHC, 0, PAGE_SIZE }, .size = SBUS_MMAP_FBSIZE(8)
{ TCX_ALT, 0, PAGE_SIZE }, },
{ TCX_UNK2, 0, 0x20000 }, {
{ 0, 0, 0 } .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) static int tcx_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma)
......
...@@ -131,6 +131,7 @@ enum ...@@ -131,6 +131,7 @@ enum
KERN_PRINTK_RATELIMIT_BURST=61, /* int: tune printk ratelimiting */ KERN_PRINTK_RATELIMIT_BURST=61, /* int: tune printk ratelimiting */
KERN_PTY=62, /* dir: pty driver */ KERN_PTY=62, /* dir: pty driver */
KERN_NGROUPS_MAX=63, /* int: NGROUPS_MAX */ KERN_NGROUPS_MAX=63, /* int: NGROUPS_MAX */
KERN_SPARC_SCONS_PWROFF=64, /* int: serial console power-off halt */
}; };
......
...@@ -203,6 +203,7 @@ static inline int _snd_magic_bad(void *obj, unsigned long magic) ...@@ -203,6 +203,7 @@ static inline int _snd_magic_bad(void *obj, unsigned long magic)
#define pdacf_t_magic 0xa15a4500 #define pdacf_t_magic 0xa15a4500
#define vortex_t_magic 0xa15a4601 #define vortex_t_magic 0xa15a4601
#define atiixp_t_magic 0xa15a4701 #define atiixp_t_magic 0xa15a4701
#define amd7930_t_magic 0xa15a4801
#else #else
......
...@@ -93,6 +93,7 @@ extern int sem_ctls[]; ...@@ -93,6 +93,7 @@ extern int sem_ctls[];
#ifdef __sparc__ #ifdef __sparc__
extern char reboot_command []; extern char reboot_command [];
extern int stop_a_enabled; extern int stop_a_enabled;
extern int scons_pwroff;
#endif #endif
#ifdef __hppa__ #ifdef __hppa__
...@@ -325,6 +326,14 @@ static ctl_table kern_table[] = { ...@@ -325,6 +326,14 @@ static ctl_table kern_table[] = {
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec, .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 #endif
#ifdef __hppa__ #ifdef __hppa__
{ {
......
# ALSA soundcard-configuration # ALSA soundcard-configuration
config SND_BIT32_EMUL config SND_BIT32_EMUL
tristate "Emulation for 32-bit applications" 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 config SND_TIMER
tristate tristate
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment