Re: Disable MIDI port creation with ICE1724

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/08/2007 03:32 AM, James Roberts wrote:

I need to disable the creation of the ICEnsemble ICE1724 midi device on my system. I am using a off-brand card (see below) and accessing the midi device crashes the system hard.

I have explored udev rules, kernel opts, etc ad nauseum to do this.

To be clear I do not want to use the midi capabilities of the sound card at all, but want to keep the sound capabilities.

lspci:
00:09.0 Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01)

amidi -l:
Dir Device    Name
IO  hw:0,0    ICEnsemble ICE1724 MIDI   <- this must be gone forever!
IO  hw:1,0,0  BCF2000 MIDI 1
IO  hw:1,0,1  BCF2000 MIDI 2
 O  hw:1,0,2  BCF2000 MIDI 3


It appears to get assigned to midiC0D0

Am I better off going the udev route and trying to somehow assign a null value somewhere or is there a way to prevent alsa from creating it?

Maybe an alias?

Sounds like this may warrent a module parameter. Trivial, untested version below, but this needs a module maintainer to decide if there may be better ways to discriminate. Crossposted to alsa-devel...

(against 2.6.22.x).

Rene.

diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c
index ee620de..1d64dcc 100644
--- a/sound/pci/ice1712/ice1724.c
+++ b/sound/pci/ice1712/ice1724.c
@@ -75,6 +75,7 @@ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
 static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;		/* Enable this card */
 static char *model[SNDRV_CARDS];
+static int no_mpu401[SNDRV_CARDS];
 
 module_param_array(index, int, NULL, 0444);
 MODULE_PARM_DESC(index, "Index value for ICE1724 soundcard.");
@@ -84,6 +85,8 @@ module_param_array(enable, bool, NULL, 0444);
 MODULE_PARM_DESC(enable, "Enable ICE1724 soundcard.");
 module_param_array(model, charp, NULL, 0444);
 MODULE_PARM_DESC(model, "Use the given board model.");
+module_param_array(no_mpu401, int, NULL, 0444);
+MODULE_PARM_DESC(no_mpu401, "Mmf mmmff mmfmf mff mmfmmff.");
 
 
 /* Both VT1720 and VT1724 have the same PCI IDs */
@@ -2398,7 +2401,7 @@ static int __devinit snd_vt1724_probe(struct pci_dev *pci,
 		}
 	}
 
-	if (! c->no_mpu401) {
+	if (! c->no_mpu401 && ! no_mpu401[dev]) {
 		if (ice->eeprom.data[ICE_EEP2_SYSCONF] & VT1724_CFG_MPU401) {
 			if ((err = snd_mpu401_uart_new(card, 0, MPU401_HW_ICE1712,
 						       ICEREG1724(ice, MPU_CTRL),
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user

[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux