aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2008-01-21 02:45:37 -0500
committerJaroslav Kysela <perex@perex.cz>2008-01-31 11:30:06 -0500
commit44fb7aae82b37f5bb66cb1423e2babb11d90969e (patch)
tree031a965cf320c285f811e5b3de17152984ee4abf
parentdb2396d4959340dbe2b617bde3beb2268f1e3658 (diff)
[ALSA] oxygen: remove MIDI autodetection
The MIDI bit in the MISC register is set by default and cannot be used to detect the presence of a MIDI port. Instead, add a parameter to the oxygen_pci_probe() function so that model drivers can specify this. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r--sound/pci/oxygen/oxygen.c2
-rw-r--r--sound/pci/oxygen/oxygen.h2
-rw-r--r--sound/pci/oxygen/oxygen_lib.c6
-rw-r--r--sound/pci/oxygen/virtuoso.c2
4 files changed, 7 insertions, 5 deletions
diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
index e0e54ab51e5c..b11341f01c1d 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -327,7 +327,7 @@ static int __devinit generic_oxygen_probe(struct pci_dev *pci,
327 return -ENOENT; 327 return -ENOENT;
328 } 328 }
329 model = pci_id->driver_data ? &model_meridian : &model_generic; 329 model = pci_id->driver_data ? &model_meridian : &model_generic;
330 err = oxygen_pci_probe(pci, index[dev], id[dev], model); 330 err = oxygen_pci_probe(pci, index[dev], id[dev], 1, model);
331 if (err >= 0) 331 if (err >= 0)
332 ++dev; 332 ++dev;
333 return err; 333 return err;
diff --git a/sound/pci/oxygen/oxygen.h b/sound/pci/oxygen/oxygen.h
index 98cccc6ce9dc..1c402cbc1c37 100644
--- a/sound/pci/oxygen/oxygen.h
+++ b/sound/pci/oxygen/oxygen.h
@@ -92,7 +92,7 @@ struct oxygen_model {
92 92
93/* oxygen_lib.c */ 93/* oxygen_lib.c */
94 94
95int oxygen_pci_probe(struct pci_dev *pci, int index, char *id, 95int oxygen_pci_probe(struct pci_dev *pci, int index, char *id, int midi,
96 const struct oxygen_model *model); 96 const struct oxygen_model *model);
97void oxygen_pci_remove(struct pci_dev *pci); 97void oxygen_pci_remove(struct pci_dev *pci);
98 98
diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c
index bd0050b12149..b7079adc3d92 100644
--- a/sound/pci/oxygen/oxygen_lib.c
+++ b/sound/pci/oxygen/oxygen_lib.c
@@ -306,7 +306,7 @@ static void oxygen_card_free(struct snd_card *card)
306} 306}
307 307
308int __devinit oxygen_pci_probe(struct pci_dev *pci, int index, char *id, 308int __devinit oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
309 const struct oxygen_model *model) 309 int midi, const struct oxygen_model *model)
310{ 310{
311 struct snd_card *card; 311 struct snd_card *card;
312 struct oxygen *chip; 312 struct oxygen *chip;
@@ -374,7 +374,9 @@ int __devinit oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
374 if (err < 0) 374 if (err < 0)
375 goto err_card; 375 goto err_card;
376 376
377 if (oxygen_read8(chip, OXYGEN_MISC) & OXYGEN_MISC_MIDI) { 377 oxygen_write8_masked(chip, OXYGEN_MISC,
378 midi ? OXYGEN_MISC_MIDI : 0, OXYGEN_MISC_MIDI);
379 if (midi) {
378 err = snd_mpu401_uart_new(card, 0, MPU401_HW_CMIPCI, 380 err = snd_mpu401_uart_new(card, 0, MPU401_HW_CMIPCI,
379 chip->addr + OXYGEN_MPU401, 381 chip->addr + OXYGEN_MPU401,
380 MPU401_INFO_INTEGRATED, 0, 0, 382 MPU401_INFO_INTEGRATED, 0, 0,
diff --git a/sound/pci/oxygen/virtuoso.c b/sound/pci/oxygen/virtuoso.c
index 1a0367b7ae35..73975711c074 100644
--- a/sound/pci/oxygen/virtuoso.c
+++ b/sound/pci/oxygen/virtuoso.c
@@ -266,7 +266,7 @@ static int __devinit xonar_probe(struct pci_dev *pci,
266 ++dev; 266 ++dev;
267 return -ENOENT; 267 return -ENOENT;
268 } 268 }
269 err = oxygen_pci_probe(pci, index[dev], id[dev], &model_xonar); 269 err = oxygen_pci_probe(pci, index[dev], id[dev], 1, &model_xonar);
270 if (err >= 0) 270 if (err >= 0)
271 ++dev; 271 ++dev;
272 return err; 272 return err;