public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Sound on newer arima notebook...
@ 2004-03-31 14:52 Pavel Machek
  2004-03-31 15:08 ` Takashi Iwai
  0 siblings, 1 reply; 12+ messages in thread
From: Pavel Machek @ 2004-03-31 14:52 UTC (permalink / raw)
  To: perex, Tjeerd.Mulder, tiwai, kernel list

Hi!

...seems to work okay, except that mixers are strangely renumbered in
aumix. PCM2 has to be set to high if I want to hear something. Master
volume does not do anything.

Dmesg tells me:

Advanced Linux Sound Architecture Driver Version 1.0.2c (Thu Feb 05 15:41:49 2004 UTC).
via82xx: Assuming DXS channels with 48k fixed sample rate.
         Please try dxs_support=1 or dxs_support=4 option
         and report if it works on your machine.
PCI: Setting latency timer of device 0000:00:11.5 to 64
usb 2-1: new full speed USB device using address 2
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
ALSA device list:
  #0: VIA 8235 at 0x1400, irq 22

With dxs_support=1 mixers were also renumbered, maybe in slightly
different way.

								Pavel
-- 
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Sound on newer arima notebook...
  2004-03-31 14:52 Sound on newer arima notebook Pavel Machek
@ 2004-03-31 15:08 ` Takashi Iwai
  2004-04-01  8:09   ` via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...] Pavel Machek
  0 siblings, 1 reply; 12+ messages in thread
From: Takashi Iwai @ 2004-03-31 15:08 UTC (permalink / raw)
  To: Pavel Machek; +Cc: perex, Tjeerd.Mulder, kernel list

Hi Pavel,

At Wed, 31 Mar 2004 16:52:06 +0200,
Pavel Machek wrote:
> 
> Hi!
> 
> ...seems to work okay, except that mixers are strangely renumbered in
> aumix. PCM2 has to be set to high if I want to hear something. Master
> volume does not do anything.

tuning ac97_quirk option will help.
(perhaps ac97_quirk=1)

> Dmesg tells me:
> 
> Advanced Linux Sound Architecture Driver Version 1.0.2c (Thu Feb 05 15:41:49 2004 UTC).
> via82xx: Assuming DXS channels with 48k fixed sample rate.
>          Please try dxs_support=1 or dxs_support=4 option
>          and report if it works on your machine.
> PCI: Setting latency timer of device 0000:00:11.5 to 64
> usb 2-1: new full speed USB device using address 2
> codec_read: codec 0 is not valid [0xfe0000]
> codec_read: codec 0 is not valid [0xfe0000]
> codec_read: codec 0 is not valid [0xfe0000]
> codec_read: codec 0 is not valid [0xfe0000]

these messages appear sometimes on some via boards.
i don't figure out yet what's wrong.  it's often harmless.

> ALSA device list:
>   #0: VIA 8235 at 0x1400, irq 22
> 
> With dxs_support=1 mixers were also renumbered, maybe in slightly
> different way.

dxs_support option is irrelevant with the mixer configuration.
it's for PCM set up.  check whether 44100Hz playback works with
dxs_support=1.  if it's ok, please let us know the pci subsystem id,
so that it will be enabled as default.


--
Takashi Iwai <tiwai@suse.de>		ALSA Developer - www.alsa-project.org

^ permalink raw reply	[flat|nested] 12+ messages in thread

* via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...]
  2004-03-31 15:08 ` Takashi Iwai
@ 2004-04-01  8:09   ` Pavel Machek
  2004-04-01  8:23     ` Takashi Iwai
  0 siblings, 1 reply; 12+ messages in thread
From: Pavel Machek @ 2004-04-01  8:09 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: perex, Tjeerd.Mulder, kernel list

Hi!

> > ...seems to work okay, except that mixers are strangely renumbered in
> > aumix. PCM2 has to be set to high if I want to hear something. Master
> > volume does not do anything.
> 
> tuning ac97_quirk option will help.
> (perhaps ac97_quirk=1)

via82xx command line parsing code is *evil*. It has completely
different parameters as a module / in kernel, and in-kernel parameters
shift according to the joystick support! (which is config_time option). Ouch.

Is there some easy way to convert MODULE_PARM with an array to some
more modern interface?
								Pavel

static int dxs_support[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)];
....
MODULE_PARM(dxs_support, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(dxs_support, "Support for DXS channels (0 = auto, 1 = enable, 2 = disable, 3 = 48k only, 4 = no VRA)");
MODULE_PARM_SYNTAX(dxs_support, SNDRV_ENABLED ",allows:{{0,4}},dialog:list");
....
#if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE))
#define SUPPORT_JOYSTICK 1
#endif
....
/* format is: snd-via82xx=enable,index,id,
                          mpu_port,joystick,
                          ac97_quirk,ac97_clock,dxs_support */

static int __init alsa_card_via82xx_setup(char *str)
{
        static unsigned __initdata nr_dev = 0;

        if (nr_dev >= SNDRV_CARDS)
                return 0;
        (void)(get_option(&str,&enable[nr_dev]) == 2 &&
               get_option(&str,&index[nr_dev]) == 2 &&
               get_id(&str,&id[nr_dev]) == 2 &&
               get_option_long(&str,&mpu_port[nr_dev]) == 2 &&
#ifdef SUPPORT_JOYSTICK
               get_option(&str,&joystick[nr_dev]) == 2 &&
#endif
               get_option(&str,&ac97_quirk[nr_dev]) == 2 &&
               get_option(&str,&ac97_clock[nr_dev]) == 2 &&
               get_option(&str,&dxs_support[nr_dev]) == 2);
        nr_dev++;
        return 1;
}


-- 
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...]
  2004-04-01  8:09   ` via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...] Pavel Machek
@ 2004-04-01  8:23     ` Takashi Iwai
  2004-04-01  8:29       ` Pavel Machek
  0 siblings, 1 reply; 12+ messages in thread
From: Takashi Iwai @ 2004-04-01  8:23 UTC (permalink / raw)
  To: Pavel Machek; +Cc: perex, Tjeerd.Mulder, kernel list

At Thu, 1 Apr 2004 10:09:54 +0200,
Pavel Machek wrote:
> 
> Hi!
> 
> > > ...seems to work okay, except that mixers are strangely renumbered in
> > > aumix. PCM2 has to be set to high if I want to hear something. Master
> > > volume does not do anything.
> > 
> > tuning ac97_quirk option will help.
> > (perhaps ac97_quirk=1)
> 
> via82xx command line parsing code is *evil*. It has completely
> different parameters as a module / in kernel, and in-kernel parameters
> shift according to the joystick support! (which is config_time option). Ouch.

yep, i know it - it annoys me too...

> Is there some easy way to convert MODULE_PARM with an array to some
> more modern interface?

there is a patch pending in my tree to allow empty boot options, such
as
	snd-via82xx=,,,,,2
but it doesn't improve so much.

perhaps the better way would be like

	snd-via82xx=enable:1,ac97_quirk:4

??

in this way, it's hard to keep the compatibility with old boot
parameters, but i don't think no one will complain if they see it
nicer.


Takashi

> 
> static int dxs_support[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)];
> ....
> MODULE_PARM(dxs_support, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
> MODULE_PARM_DESC(dxs_support, "Support for DXS channels (0 = auto, 1 = enable, 2 = disable, 3 = 48k only, 4 = no VRA)");
> MODULE_PARM_SYNTAX(dxs_support, SNDRV_ENABLED ",allows:{{0,4}},dialog:list");
> ....
> #if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE))
> #define SUPPORT_JOYSTICK 1
> #endif
> ....
> /* format is: snd-via82xx=enable,index,id,
>                           mpu_port,joystick,
>                           ac97_quirk,ac97_clock,dxs_support */
> 
> static int __init alsa_card_via82xx_setup(char *str)
> {
>         static unsigned __initdata nr_dev = 0;
> 
>         if (nr_dev >= SNDRV_CARDS)
>                 return 0;
>         (void)(get_option(&str,&enable[nr_dev]) == 2 &&
>                get_option(&str,&index[nr_dev]) == 2 &&
>                get_id(&str,&id[nr_dev]) == 2 &&
>                get_option_long(&str,&mpu_port[nr_dev]) == 2 &&
> #ifdef SUPPORT_JOYSTICK
>                get_option(&str,&joystick[nr_dev]) == 2 &&
> #endif
>                get_option(&str,&ac97_quirk[nr_dev]) == 2 &&
>                get_option(&str,&ac97_clock[nr_dev]) == 2 &&
>                get_option(&str,&dxs_support[nr_dev]) == 2);
>         nr_dev++;
>         return 1;
> }
> 
> 
> -- 
> When do you have a heart between your knees?
> [Johanka's followup: and *two* hearts?]
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...]
  2004-04-01  8:23     ` Takashi Iwai
@ 2004-04-01  8:29       ` Pavel Machek
  2004-04-01  8:37         ` Takashi Iwai
  0 siblings, 1 reply; 12+ messages in thread
From: Pavel Machek @ 2004-04-01  8:29 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: perex, Tjeerd.Mulder, kernel list

Hi!

> > via82xx command line parsing code is *evil*. It has completely
> > different parameters as a module / in kernel, and in-kernel parameters
> > shift according to the joystick support! (which is config_time option). Ouch.
> 
> yep, i know it - it annoys me too...
> 
> > Is there some easy way to convert MODULE_PARM with an array to some
> > more modern interface?
> 
> there is a patch pending in my tree to allow empty boot options, such
> as
> 	snd-via82xx=,,,,,2
> but it doesn't improve so much.
> 
> perhaps the better way would be like
> 
> 	snd-via82xx=enable:1,ac97_quirk:4
> 
> ??
> 
> in this way, it's hard to keep the compatibility with old boot
> parameters, but i don't think no one will complain if they see it
> nicer.

Its so broken that we do not want compatibility, I believe. Having to
use snd-via82xx=,,,,,2 normally, but add one "," if joystick is
configured in is evil.

snd-via82xx=enable:1 syntax is ugly, too, and we have better syntax
already. via82xx.enable=1 via82xx.ac97_quirk=2 should be possible with
new param handling code. I'm just not sure how it is supposed to work
with arrays:

static char *psmouse_proto;
static unsigned int psmouse_max_proto = -1U;
module_param_named(proto, psmouse_proto, charp, 0);
MODULE_PARM_DESC(proto, "Highest protocol extension to probe (bare,
imps, exps). Useful for KVM switches.");

...automatically produces "proto" param for module and "psmouse.proto"
param for kernel.

Something similar should be the way to go.
								Pavel
-- 
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...]
  2004-04-01  8:29       ` Pavel Machek
@ 2004-04-01  8:37         ` Takashi Iwai
  2004-04-01  9:04           ` Takashi Iwai
  2004-04-01  9:04           ` Pavel Machek
  0 siblings, 2 replies; 12+ messages in thread
From: Takashi Iwai @ 2004-04-01  8:37 UTC (permalink / raw)
  To: Pavel Machek; +Cc: perex, Tjeerd.Mulder, kernel list

At Thu, 1 Apr 2004 10:29:05 +0200,
Pavel Machek wrote:
> 
> Hi!
> 
> > > via82xx command line parsing code is *evil*. It has completely
> > > different parameters as a module / in kernel, and in-kernel parameters
> > > shift according to the joystick support! (which is config_time option). Ouch.
> > 
> > yep, i know it - it annoys me too...
> > 
> > > Is there some easy way to convert MODULE_PARM with an array to some
> > > more modern interface?
> > 
> > there is a patch pending in my tree to allow empty boot options, such
> > as
> > 	snd-via82xx=,,,,,2
> > but it doesn't improve so much.
> > 
> > perhaps the better way would be like
> > 
> > 	snd-via82xx=enable:1,ac97_quirk:4
> > 
> > ??
> > 
> > in this way, it's hard to keep the compatibility with old boot
> > parameters, but i don't think no one will complain if they see it
> > nicer.
> 
> Its so broken that we do not want compatibility, I believe. Having to
> use snd-via82xx=,,,,,2 normally, but add one "," if joystick is
> configured in is evil.
> 
> snd-via82xx=enable:1 syntax is ugly, too, and we have better syntax
> already. via82xx.enable=1 via82xx.ac97_quirk=2 should be possible with
> new param handling code.

oh that's good to know.

> I'm just not sure how it is supposed to work
> with arrays:
> 
> static char *psmouse_proto;
> static unsigned int psmouse_max_proto = -1U;
> module_param_named(proto, psmouse_proto, charp, 0);
> MODULE_PARM_DESC(proto, "Highest protocol extension to probe (bare,
> imps, exps). Useful for KVM switches.");
> 
> ...automatically produces "proto" param for module and "psmouse.proto"
> param for kernel.
> 
> Something similar should be the way to go.

ok, i'll take a look at it.
thanks!


Takashi

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...]
  2004-04-01  8:37         ` Takashi Iwai
@ 2004-04-01  9:04           ` Takashi Iwai
  2004-04-01  9:04           ` Pavel Machek
  1 sibling, 0 replies; 12+ messages in thread
From: Takashi Iwai @ 2004-04-01  9:04 UTC (permalink / raw)
  To: Pavel Machek; +Cc: perex, Tjeerd.Mulder, kernel list

[-- Attachment #1: Type: text/plain, Size: 124 bytes --]

Hi Pavel,

does the attached patch work?
i checked the compilation for modules but not tested for builtin
kernel.


Takashi

[-- Attachment #2: Type: text/plain, Size: 3700 bytes --]

--- linux/sound/pci/via82xx.c	8 Mar 2004 16:44:08 -0000	1.102
+++ linux/sound/pci/via82xx.c	1 Apr 2004 09:01:37 -0000
@@ -50,6 +50,7 @@
 #include <linux/init.h>
 #include <linux/pci.h>
 #include <linux/slab.h>
+#include <linux/moduleparam.h>
 #include <linux/gameport.h>
 #include <sound/core.h>
 #include <sound/pcm.h>
@@ -57,7 +58,6 @@
 #include <sound/info.h>
 #include <sound/ac97_codec.h>
 #include <sound/mpu401.h>
-#define SNDRV_GET_ID
 #include <sound/initval.h>
 
 #if 0
@@ -84,31 +84,32 @@
 static int ac97_clock[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 48000};
 static int ac97_quirk[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = AC97_TUNE_DEFAULT};
 static int dxs_support[SNDRV_CARDS];
+static int boot_devs __initdata;
 
-MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for VIA 82xx bridge.");
 MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
-MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
+module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for VIA 82xx bridge.");
 MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
-MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(enable, int, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable audio part of VIA 82xx bridge.");
 MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
-MODULE_PARM(mpu_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(mpu_port, int, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU-401 port. (VT82C686x only)");
 MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT_DESC);
 #ifdef SUPPORT_JOYSTICK
-MODULE_PARM(joystick, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(joystick, int, boot_devs, 0444);
 MODULE_PARM_DESC(joystick, "Enable joystick. (VT82C686x only)");
 MODULE_PARM_SYNTAX(joystick, SNDRV_ENABLE_DESC "," SNDRV_BOOLEAN_FALSE_DESC);
 #endif
-MODULE_PARM(ac97_clock, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(ac97_clock, int, boot_devs, 0444);
 MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (default 48000Hz).");
 MODULE_PARM_SYNTAX(ac97_clock, SNDRV_ENABLED ",default:48000");
-MODULE_PARM(ac97_quirk, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(ac97_quirk, int, boot_devs, 0444);
 MODULE_PARM_DESC(ac97_quirk, "AC'97 workaround for strange hardware.");
 MODULE_PARM_SYNTAX(ac97_quirk, SNDRV_ENABLED ",allows:{{-1,4}},dialog:list,default:-1");
-MODULE_PARM(dxs_support, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(dxs_support, int, boot_devs, 0444);
 MODULE_PARM_DESC(dxs_support, "Support for DXS channels (0 = auto, 1 = enable, 2 = disable, 3 = 48k only, 4 = no VRA)");
 MODULE_PARM_SYNTAX(dxs_support, SNDRV_ENABLED ",allows:{{0,4}},dialog:list");
 
@@ -2200,33 +2201,3 @@
 
 module_init(alsa_card_via82xx_init)
 module_exit(alsa_card_via82xx_exit)
-
-#ifndef MODULE
-
-/* format is: snd-via82xx=enable,index,id,
-			  mpu_port,joystick,
-			  ac97_quirk,ac97_clock,dxs_support */
-
-static int __init alsa_card_via82xx_setup(char *str)
-{
-	static unsigned __initdata nr_dev = 0;
-
-	if (nr_dev >= SNDRV_CARDS)
-		return 0;
-	(void)(get_option(&str,&enable[nr_dev]) == 2 &&
-	       get_option(&str,&index[nr_dev]) == 2 &&
-	       get_id(&str,&id[nr_dev]) == 2 &&
-	       get_option_long(&str,&mpu_port[nr_dev]) == 2 &&
-#ifdef SUPPORT_JOYSTICK
-	       get_option(&str,&joystick[nr_dev]) == 2 &&
-#endif
-	       get_option(&str,&ac97_quirk[nr_dev]) == 2 &&
-	       get_option(&str,&ac97_clock[nr_dev]) == 2 &&
-	       get_option(&str,&dxs_support[nr_dev]) == 2);
-	nr_dev++;
-	return 1;
-}
-
-__setup("snd-via82xx=", alsa_card_via82xx_setup);
-
-#endif /* ifndef MODULE */

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...]
  2004-04-01  8:37         ` Takashi Iwai
  2004-04-01  9:04           ` Takashi Iwai
@ 2004-04-01  9:04           ` Pavel Machek
  2004-04-01  9:15             ` Takashi Iwai
  1 sibling, 1 reply; 12+ messages in thread
From: Pavel Machek @ 2004-04-01  9:04 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: perex, Tjeerd.Mulder, kernel list

Hi!


> > snd-via82xx=enable:1 syntax is ugly, too, and we have better syntax
> > already. via82xx.enable=1 via82xx.ac97_quirk=2 should be possible with
> > new param handling code.
> 
> oh that's good to know.

And here's a patch. It compiles.

--- tmp/linux/sound/pci/via82xx.c	2004-02-20 12:30:04.000000000 +0100
+++ linux/sound/pci/via82xx.c	2004-04-01 10:55:54.000000000 +0200
@@ -51,6 +51,7 @@
 #include <linux/pci.h>
 #include <linux/slab.h>
 #include <linux/gameport.h>
+#include <linux/moduleparam.h>
 #include <sound/core.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
@@ -60,9 +61,7 @@
 #define SNDRV_GET_ID
 #include <sound/initval.h>
 
-#if 0
-#define POINTER_DEBUG
-#endif
+#undef POINTER_DEBUG
 
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("VIA VT82xx audio");
@@ -82,33 +81,36 @@
 static int joystick[SNDRV_CARDS];
 #endif
 static int ac97_clock[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 48000};
-static int ac97_quirk[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = AC97_TUNE_DEFAULT};
-static int dxs_support[SNDRV_CARDS];
+static int ac97_quirk[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};
+static int dxs_support[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};
 
-MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+int index_num, mpu_port_num, enable_num, joystick_num, ac97_clock_num, ac97_quirk_num, dxs_support_num;
+
+module_param_array(index, int, index_num, 0666);
 MODULE_PARM_DESC(index, "Index value for VIA 82xx bridge.");
 MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
 MODULE_PARM_DESC(id, "ID string for VIA 82xx bridge.");
 MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
-MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(enable, int, enable_num, 0666);
 MODULE_PARM_DESC(enable, "Enable audio part of VIA 82xx bridge.");
 MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
-MODULE_PARM(mpu_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(mpu_port, long, mpu_port_num, 0666);
 MODULE_PARM_DESC(mpu_port, "MPU-401 port. (VT82C686x only)");
 MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT_DESC);
 #ifdef SUPPORT_JOYSTICK
+module_param_array(joystick, int, joystick_num, 0666);
 MODULE_PARM(joystick, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
 MODULE_PARM_DESC(joystick, "Enable joystick. (VT82C686x only)");
 MODULE_PARM_SYNTAX(joystick, SNDRV_ENABLE_DESC "," SNDRV_BOOLEAN_FALSE_DESC);
 #endif
-MODULE_PARM(ac97_clock, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(ac97_clock, int, ac97_clock_num, 0666);
 MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (default 48000Hz).");
 MODULE_PARM_SYNTAX(ac97_clock, SNDRV_ENABLED ",default:48000");
-MODULE_PARM(ac97_quirk, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(ac97_quirk, int, ac97_quirk_num, 0666);
 MODULE_PARM_DESC(ac97_quirk, "AC'97 workaround for strange hardware.");
 MODULE_PARM_SYNTAX(ac97_quirk, SNDRV_ENABLED ",allows:{{-1,3}},dialog:list,default:-1");
-MODULE_PARM(dxs_support, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(dxs_support, int, dxs_support_num, 0666);
 MODULE_PARM_DESC(dxs_support, "Support for DXS channels (0 = auto, 1 = enable, 2 = disable, 3 = 48k only, 4 = no VRA)");
 MODULE_PARM_SYNTAX(dxs_support, SNDRV_ENABLED ",allows:{{0,4}},dialog:list");
 
@@ -2169,33 +2171,3 @@
 
 module_init(alsa_card_via82xx_init)
 module_exit(alsa_card_via82xx_exit)
-
-#ifndef MODULE
-
-/* format is: snd-via82xx=enable,index,id,
-			  mpu_port,joystick,
-			  ac97_quirk,ac97_clock,dxs_support */
-
-static int __init alsa_card_via82xx_setup(char *str)
-{
-	static unsigned __initdata nr_dev = 0;
-
-	if (nr_dev >= SNDRV_CARDS)
-		return 0;
-	(void)(get_option(&str,&enable[nr_dev]) == 2 &&
-	       get_option(&str,&index[nr_dev]) == 2 &&
-	       get_id(&str,&id[nr_dev]) == 2 &&
-	       get_option_long(&str,&mpu_port[nr_dev]) == 2 &&
-#ifdef SUPPORT_JOYSTICK
-	       get_option(&str,&joystick[nr_dev]) == 2 &&
-#endif
-	       get_option(&str,&ac97_quirk[nr_dev]) == 2 &&
-	       get_option(&str,&ac97_clock[nr_dev]) == 2 &&
-	       get_option(&str,&dxs_support[nr_dev]) == 2);
-	nr_dev++;
-	return 1;
-}
-
-__setup("snd-via82xx=", alsa_card_via82xx_setup);
-
-#endif /* ifndef MODULE */


-- 
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...]
  2004-04-01  9:04           ` Pavel Machek
@ 2004-04-01  9:15             ` Takashi Iwai
  2004-04-01 10:41               ` Pavel Machek
  2004-04-01 18:24               ` Pavel Machek
  0 siblings, 2 replies; 12+ messages in thread
From: Takashi Iwai @ 2004-04-01  9:15 UTC (permalink / raw)
  To: Pavel Machek; +Cc: perex, Tjeerd.Mulder, kernel list

At Thu, 1 Apr 2004 11:04:52 +0200,
Pavel Machek wrote:
> 
> Hi!
> 
> 
> > > snd-via82xx=enable:1 syntax is ugly, too, and we have better syntax
> > > already. via82xx.enable=1 via82xx.ac97_quirk=2 should be possible with
> > > new param handling code.
> > 
> > oh that's good to know.
> 
> And here's a patch. It compiles.

heh, we're crossfiring :)

> @@ -82,33 +81,36 @@
>  static int joystick[SNDRV_CARDS];
>  #endif
>  static int ac97_clock[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 48000};
> -static int ac97_quirk[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = AC97_TUNE_DEFAULT};
> -static int dxs_support[SNDRV_CARDS];
> +static int ac97_quirk[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};
> +static int dxs_support[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};

i suppose that ac97_quirk=1 and dxs_support=1 work fine with your
machine?
(i don't want to change defaults for all devices yet :)


Takashi

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...]
  2004-04-01  9:15             ` Takashi Iwai
@ 2004-04-01 10:41               ` Pavel Machek
  2004-04-01 18:24               ` Pavel Machek
  1 sibling, 0 replies; 12+ messages in thread
From: Pavel Machek @ 2004-04-01 10:41 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: perex, Tjeerd.Mulder, kernel list

Hi!

> > > > snd-via82xx=enable:1 syntax is ugly, too, and we have better syntax
> > > > already. via82xx.enable=1 via82xx.ac97_quirk=2 should be possible with
> > > > new param handling code.
> > > 
> > > oh that's good to know.
> > 
> > And here's a patch. It compiles.
> 
> heh, we're crossfiring :)
> 
> > @@ -82,33 +81,36 @@
> >  static int joystick[SNDRV_CARDS];
> >  #endif
> >  static int ac97_clock[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 48000};
> > -static int ac97_quirk[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = AC97_TUNE_DEFAULT};
> > -static int dxs_support[SNDRV_CARDS];
> > +static int ac97_quirk[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};
> > +static int dxs_support[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};
> 
> i suppose that ac97_quirk=1 and dxs_support=1 work fine with your
> machine?
> (i don't want to change defaults for all devices yet :)

Oops, sorry, I was not able to test it yet.
									Pavel

-- 
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...]
  2004-04-01  9:15             ` Takashi Iwai
  2004-04-01 10:41               ` Pavel Machek
@ 2004-04-01 18:24               ` Pavel Machek
  2004-04-01 18:28                 ` Takashi Iwai
  1 sibling, 1 reply; 12+ messages in thread
From: Pavel Machek @ 2004-04-01 18:24 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: perex, Tjeerd.Mulder, kernel list

Hi!

> >  static int joystick[SNDRV_CARDS];
> >  #endif
> >  static int ac97_clock[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 48000};
> > -static int ac97_quirk[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = AC97_TUNE_DEFAULT};
> > -static int dxs_support[SNDRV_CARDS];
> > +static int ac97_quirk[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};
> > +static int dxs_support[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};
> 
> i suppose that ac97_quirk=1 and dxs_support=1 work fine with your
> machine?
> (i don't want to change defaults for all devices yet :)

ac97_quirk=1 helps (*) here. dxs_support=1 makes it sounds worse than
usual.
									Pavel

(*): Vol + PCM now controls output to headphones. Thats certainly better
than output controlled by PCM + PCM2. I *still* can't make it play on
internal speakers...
-- 
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...]
  2004-04-01 18:24               ` Pavel Machek
@ 2004-04-01 18:28                 ` Takashi Iwai
  0 siblings, 0 replies; 12+ messages in thread
From: Takashi Iwai @ 2004-04-01 18:28 UTC (permalink / raw)
  To: Pavel Machek; +Cc: perex, Tjeerd.Mulder, kernel list

At Thu, 1 Apr 2004 20:24:17 +0200,
Pavel Machek wrote:
> 
> Hi!
> 
> > >  static int joystick[SNDRV_CARDS];
> > >  #endif
> > >  static int ac97_clock[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 48000};
> > > -static int ac97_quirk[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = AC97_TUNE_DEFAULT};
> > > -static int dxs_support[SNDRV_CARDS];
> > > +static int ac97_quirk[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};
> > > +static int dxs_support[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};
> > 
> > i suppose that ac97_quirk=1 and dxs_support=1 work fine with your
> > machine?
> > (i don't want to change defaults for all devices yet :)
> 
> ac97_quirk=1 helps (*) here. dxs_support=1 makes it sounds worse than
> usual.

dxs_support=4 might help, then.
in the worst case, you can use dxs_support=2, which disables DXS
channels completely.  the multi playback won't work, though.

> (*): Vol + PCM now controls output to headphones. Thats certainly better
> than output controlled by PCM + PCM2. I *still* can't make it play on
> internal speakers...

which ac97 codec?  you can see it in
/proc/asound/card0/pcm0p/codec97#0/ac97#0-0.


Takashi

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2004-04-01 18:28 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-31 14:52 Sound on newer arima notebook Pavel Machek
2004-03-31 15:08 ` Takashi Iwai
2004-04-01  8:09   ` via82xx cmd line parsing is evil [was Re: Sound on newer arima notebook...] Pavel Machek
2004-04-01  8:23     ` Takashi Iwai
2004-04-01  8:29       ` Pavel Machek
2004-04-01  8:37         ` Takashi Iwai
2004-04-01  9:04           ` Takashi Iwai
2004-04-01  9:04           ` Pavel Machek
2004-04-01  9:15             ` Takashi Iwai
2004-04-01 10:41               ` Pavel Machek
2004-04-01 18:24               ` Pavel Machek
2004-04-01 18:28                 ` Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox