On some hardware combinations halting the CPU generates
noice on the sound output. Until now the solution has
been to give the kernel a no-hlt argument. This option
allows turning off halting only while the sb module is
loaded.
Is this an option that others consider usefull? I have
been using this patch for half a year with different
2.4.x kernels and have had no problems.
Also avilable by HTTP
http://www.daimi.au.dk/~kasperd/linux_kernel/sb_no_hlt.2.4.17.patch
--
Kasper Dupont -- der bruger for meget tid p? usenet.
For sending spam use mailto:[email protected]
diff -Nur linux-2.4.17/drivers/sound/sb_card.c linux-2.4.17-kd/drivers/sound/sb_card.c
--- linux-2.4.17/drivers/sound/sb_card.c Fri Dec 21 18:41:55 2001
+++ linux-2.4.17-kd/drivers/sound/sb_card.c Sat Jan 19 14:38:44 2002
@@ -54,6 +54,14 @@
* 28-10-2000 Added pnplegacy support
* Daniel Church <[email protected]>
*
+ * 06-08-2001 Added no_hlt option
+ * On some hardware combinations halting the CPU generates
+ * noice on the sound output. Until now the solution has
+ * been to give the kernel a no-hlt argument. This option
+ * allows turning off halting only while the sb module is
+ * loaded.
+ * Kasper Dupont <[email protected]>
+ *
* 01-10-2001 Added a new flavor of Creative SB AWE64 PnP (CTL00E9).
* Jerome Cornet <[email protected]>
*/
@@ -212,6 +220,7 @@
static int multiple = 0;
static int pnplegacy = 0;
#endif
+static int no_hlt = 0;
MODULE_DESCRIPTION("Soundblaster driver");
MODULE_LICENSE("GPL");
@@ -225,6 +234,7 @@
MODULE_PARM(sm_games, "i");
MODULE_PARM(esstype, "i");
MODULE_PARM(acer, "i");
+MODULE_PARM(no_hlt, "i");
#if defined CONFIG_ISAPNP || defined CONFIG_ISAPNP_MODULE
MODULE_PARM(isapnp, "i");
@@ -250,6 +260,7 @@
MODULE_PARM_DESC(sm_games, "Enable support for Logitech soundman games");
MODULE_PARM_DESC(esstype, "ESS chip type");
MODULE_PARM_DESC(acer, "Set this to detect cards in some ACER notebooks");
+MODULE_PARM_DESC(no_hlt, "Used to avoid noice on some hardware combinations");
#if defined CONFIG_ISAPNP || defined CONFIG_ISAPNP_MODULE
@@ -982,6 +993,10 @@
sbmpu[card] = 1;
}
+#ifdef HAVE_DISABLE_HLT
+ if (no_hlt) disable_hlt();
+#endif
+
if(isapnp)
printk(KERN_NOTICE "sb: %d Soundblaster PnP card(s) found.\n", sb_cards_num);
@@ -992,6 +1007,10 @@
{
int i;
+#ifdef HAVE_DISABLE_HLT
+ if (no_hlt) enable_hlt();
+#endif
+
if (smw_free) {
vfree(smw_free);
smw_free = NULL;