Skip to contentSkip to conversation

Control PCSPEAKER (forgot the patch .. .)

PATCH New Nico Schottelius 1 participant 1 message Jul 26, 2001

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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)