Control PCSPEAKER (forgot the patch .. .)
Subsystems (2)
PATCH 1/1 Control PCSPEAKER (forgot the patch .. .)
Here's it actually!
Nico
kernel/sysctl.c +5 -0
@@ -16,6 +16,7 @@* Wendling. * The list_for_each() macro wasn't appropriate for the sysctl loop. * Removed it and replaced it with older style, 03/23/00, Bill Wendling +* disable pc_speaker support, 24th of July 2001, Nico Schottelius */ #include <linux/config.h>
@@ -47,6 +48,7 @@extern int max_threads;extern int nr_queued_signals, max_queued_signals;extern int sysrq_enabled; +extern int pcspeaker_enabled;/* don't waste ram unless really needed */ /* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */ static int maxolduid =65535 ;
@@ -212,6 +214,9 @@ 0444, NULL, &proc_dointvec}, {KERN_RTSIGMAX ,"rtsig-max" , &max_queued_signals,sizeof (int ), 0644, NULL, &proc_dointvec}, + {KERN_DISABLE_PC_SPEAKER, "pcspeaker", &pcspeaker_enabled, sizeof(int), + 0644, NULL, &proc_dointvec}, + #ifdef CONFIG_SYSVIPC {KERN_SHMMAX, "shmmax", &shm_ctlmax, sizeof (size_t), 0644, NULL, &proc_doulongvec_minmax},
kernel/sys.c +6 -0
@@ -40,6 +40,12 @@int C_A_D =1 ; +/* +* whether to enable or disable the pcspeaker. default is to enable it. +*/ + +int pcspeaker_enabled =1 ; +/* * Notifier list for kernel code which wants to be called
include/linux/sysctl.h +2 -1
@@ -118,7 +118,8 @@KERN_SHMPATH =48 ,/* string: path to shm fs */ KERN_HOTPLUG =49 ,/* string: path to hotplug policy agent */ KERN_IEEE_EMULATION_WARNINGS =50 ,/* int: unimplemented ieee instructions */ - KERN_S390_USER_DEBUG_LOGGING=51 /* int: dumps of user faults */ +KERN_S390_USER_DEBUG_LOGGING =51 ,/* int: dumps of user faults */ + KERN_DISABLE_PC_SPEAKER=52 /* int: pcspeaker on or off */ };
drivers/char/vt.c +8 -1
@@ -7,6 +7,7 @@* Dynamic keymap and string allocation - [email protected] - May 1994 * Restrict VT switching via ioctl() - [email protected] - Dec 1995 * Some code moved for less code duplication - Andi Kleen - Mar 1997 +* Added ability to disable the pc speaker - [email protected] - May 2001 */ #include <linux/config.h>
@@ -40,6 +41,8 @@#include <asm/vc_ioctl.h> #endif /* CONFIG_FB_COMPAT_XPMAC */ +extern int pcspeaker_enabled;/* disable/enable the pcspeaker */ +char vt_dont_switch;extern struct tty_driver console_driver;
@@ -112,6 +115,10 @@unsigned int count =0 ;unsigned long flags; +/* is the pcspeaker enabled or disabled ? 0=disabled,1=enabled */ +if (!pcspeaker_enabled) +return ; +if (hz >20 && hz <32767 ) count =1193180 / hz;
@@ -137,7 +144,7 @@ return; } -#else +#else /* else of machine check */ void _kd_mksound (unsigned int hz,unsigned int ticks)