diff -Nur linux-2.4.4-old/drivers/sound/sb_card.c linux-2.4.4-new/drivers/sound/sb_card.c --- linux-2.4.4-old/drivers/sound/sb_card.c Mon Aug 6 10:20:37 2001 +++ linux-2.4.4-new/drivers/sound/sb_card.c Mon Aug 6 10:30:09 2001 @@ -53,6 +53,14 @@ * * 28-10-2000 Added pnplegacy support * Daniel Church + * + * 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 */ #include @@ -209,6 +217,7 @@ static int multiple = 0; static int pnplegacy = 0; #endif +static int no_hlt = 0; MODULE_DESCRIPTION("Soundblaster driver"); @@ -221,6 +230,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"); @@ -246,6 +256,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 @@ -912,6 +923,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); @@ -922,6 +937,10 @@ { int i; +#ifdef HAVE_DISABLE_HLT + if (no_hlt) enable_hlt(); +#endif + if (smw_free) { vfree(smw_free); smw_free = NULL;