At Mon, 20 Jun 2005 13:26:06 -0300,
Juan Linietsky wrote:
Takashi Iwai wrote:
-Module
configuration parameters. WHY ON EARTH do I have to specify the
IO port for mpu401, joystick, etc as driver options when loading the
modules for my soundcard, else doesnt work? What year are we on?! I cant
believe that this resource allocation is not handled by ALSA or the
linux kernel!
They are very old system, indeed. (Remember they have been called
"legacy" devices even 5 years ago.)
They have neither PnP nor automatic resource allocation mechanism.
The only way is trial-and-error. We disable them per default just
because it's safer for the system (the resource confliction may lock
up your system silently). It's a usual question whether convenience
or safety.
I'd like to clarify more on this. I'm not talking about deprecated old
ISA devices
(like one of those huge soundblaster 16 cards), not even isapnp but PCI
devices
which are being sold nowadays, or integrated into mainboards, more
specifically,
I dont understand why things like this exist:
red@killy:~$ /sbin/modinfo -p snd-cmipci
[ .. omitted non relevant options .. ]
mpu_port:MPU-401 port.
fm_port:FM port.
joystick_port:Joystick port address.
red@killy:~$ /sbin/modinfo -p snd-via82xx
[ .. omitted non relevant options .. ]
mpu_port:MPU-401 port. (VT82C686x only)
red@killy:~$ /sbin/modinfo -p snd-ens1371
[ .. omitted non relevant options .. ]
joystick_port:Joystick port address.
Amongst many.
I know. But they are called "legacy" devices.
These options exists in the soundchips for
compatibility with old sound
blaster card in MS-DOS,
or win9x (which lets you access to ports directly). You can supply
basically any of the allowed
port values and they will work. They are legacy I guess, but it is still
the only way that you can
access to joystick/mpu401/opl3 in nowadays cheap soundcards.
Note that all of the above are old hardwares nowadays.
The recent cards don't have these options. They are set up via ACPI
(if any).
So, my main question is *why* isnt this autodetected
by the
driver/kernel by default?
As mentioned, it's disabled per default just for safety reason.
Technically seen, the auto-probing is possible. For example, the
auto-probing is already implemented in joystick_port options, indeed -
just pass the value 1. But, unfortunately, it's not implemented for
all mpu401 options.
In my personal
experience (and the alsa docs) these wont work until you supply some
random port. I find this
extremely user-unfriendly, because most sound users may not even know
what a port is, much less
that they have to do it. I mean, if isapnp does this kind of resource
allocation, why it cant be done for this too?
The legacy device support is much worse than ISA-PnP.
Takashi