diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/core/jack.c | 2 | ||||
-rw-r--r-- | sound/core/oss/rate.c | 2 | ||||
-rw-r--r-- | sound/oss/dmasound/dmasound_atari.c | 16 | ||||
-rw-r--r-- | sound/pci/aw2/aw2-alsa.c | 2 | ||||
-rw-r--r-- | sound/pci/emu10k1/emu10k1_main.c | 1 | ||||
-rw-r--r-- | sound/pci/hda/hda_hwdep.c | 15 | ||||
-rw-r--r-- | sound/pci/hda/hda_intel.c | 10 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 4 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 2 | ||||
-rw-r--r-- | sound/pci/oxygen/virtuoso.c | 17 | ||||
-rw-r--r-- | sound/pci/pcxhr/pcxhr.h | 12 | ||||
-rw-r--r-- | sound/usb/usbaudio.c | 20 | ||||
-rw-r--r-- | sound/usb/usbmidi.c | 1 |
13 files changed, 51 insertions, 53 deletions
diff --git a/sound/core/jack.c b/sound/core/jack.c index dd4a12dc09aa..077a85262c1c 100644 --- a/sound/core/jack.c +++ b/sound/core/jack.c | |||
@@ -47,7 +47,7 @@ static int snd_jack_dev_register(struct snd_device *device) | |||
47 | int err; | 47 | int err; |
48 | 48 | ||
49 | snprintf(jack->name, sizeof(jack->name), "%s %s", | 49 | snprintf(jack->name, sizeof(jack->name), "%s %s", |
50 | card->longname, jack->id); | 50 | card->shortname, jack->id); |
51 | jack->input_dev->name = jack->name; | 51 | jack->input_dev->name = jack->name; |
52 | 52 | ||
53 | /* Default to the sound card device. */ | 53 | /* Default to the sound card device. */ |
diff --git a/sound/core/oss/rate.c b/sound/core/oss/rate.c index a466443c4a26..2fa9299a440d 100644 --- a/sound/core/oss/rate.c +++ b/sound/core/oss/rate.c | |||
@@ -157,7 +157,7 @@ static void resample_shrink(struct snd_pcm_plugin *plugin, | |||
157 | while (dst_frames1 > 0) { | 157 | while (dst_frames1 > 0) { |
158 | S1 = S2; | 158 | S1 = S2; |
159 | if (src_frames1-- > 0) { | 159 | if (src_frames1-- > 0) { |
160 | S1 = *src; | 160 | S2 = *src; |
161 | src += src_step; | 161 | src += src_step; |
162 | } | 162 | } |
163 | if (pos & ~R_MASK) { | 163 | if (pos & ~R_MASK) { |
diff --git a/sound/oss/dmasound/dmasound_atari.c b/sound/oss/dmasound/dmasound_atari.c index 57d9f154c88b..38931f2f6967 100644 --- a/sound/oss/dmasound/dmasound_atari.c +++ b/sound/oss/dmasound/dmasound_atari.c | |||
@@ -847,23 +847,23 @@ static int __init AtaIrqInit(void) | |||
847 | of events. So all we need to keep the music playing is | 847 | of events. So all we need to keep the music playing is |
848 | to provide the sound hardware with new data upon | 848 | to provide the sound hardware with new data upon |
849 | an interrupt from timer A. */ | 849 | an interrupt from timer A. */ |
850 | mfp.tim_ct_a = 0; /* ++roman: Stop timer before programming! */ | 850 | st_mfp.tim_ct_a = 0; /* ++roman: Stop timer before programming! */ |
851 | mfp.tim_dt_a = 1; /* Cause interrupt after first event. */ | 851 | st_mfp.tim_dt_a = 1; /* Cause interrupt after first event. */ |
852 | mfp.tim_ct_a = 8; /* Turn on event counting. */ | 852 | st_mfp.tim_ct_a = 8; /* Turn on event counting. */ |
853 | /* Register interrupt handler. */ | 853 | /* Register interrupt handler. */ |
854 | if (request_irq(IRQ_MFP_TIMA, AtaInterrupt, IRQ_TYPE_SLOW, "DMA sound", | 854 | if (request_irq(IRQ_MFP_TIMA, AtaInterrupt, IRQ_TYPE_SLOW, "DMA sound", |
855 | AtaInterrupt)) | 855 | AtaInterrupt)) |
856 | return 0; | 856 | return 0; |
857 | mfp.int_en_a |= 0x20; /* Turn interrupt on. */ | 857 | st_mfp.int_en_a |= 0x20; /* Turn interrupt on. */ |
858 | mfp.int_mk_a |= 0x20; | 858 | st_mfp.int_mk_a |= 0x20; |
859 | return 1; | 859 | return 1; |
860 | } | 860 | } |
861 | 861 | ||
862 | #ifdef MODULE | 862 | #ifdef MODULE |
863 | static void AtaIrqCleanUp(void) | 863 | static void AtaIrqCleanUp(void) |
864 | { | 864 | { |
865 | mfp.tim_ct_a = 0; /* stop timer */ | 865 | st_mfp.tim_ct_a = 0; /* stop timer */ |
866 | mfp.int_en_a &= ~0x20; /* turn interrupt off */ | 866 | st_mfp.int_en_a &= ~0x20; /* turn interrupt off */ |
867 | free_irq(IRQ_MFP_TIMA, AtaInterrupt); | 867 | free_irq(IRQ_MFP_TIMA, AtaInterrupt); |
868 | } | 868 | } |
869 | #endif /* MODULE */ | 869 | #endif /* MODULE */ |
@@ -1599,7 +1599,7 @@ static int __init dmasound_atari_init(void) | |||
1599 | is_falcon = 0; | 1599 | is_falcon = 0; |
1600 | } else | 1600 | } else |
1601 | return -ENODEV; | 1601 | return -ENODEV; |
1602 | if ((mfp.int_en_a & mfp.int_mk_a & 0x20) == 0) | 1602 | if ((st_mfp.int_en_a & st_mfp.int_mk_a & 0x20) == 0) |
1603 | return dmasound_init(); | 1603 | return dmasound_init(); |
1604 | else { | 1604 | else { |
1605 | printk("DMA sound driver: Timer A interrupt already in use\n"); | 1605 | printk("DMA sound driver: Timer A interrupt already in use\n"); |
diff --git a/sound/pci/aw2/aw2-alsa.c b/sound/pci/aw2/aw2-alsa.c index 3f00ddf450f8..c7c54e7748e9 100644 --- a/sound/pci/aw2/aw2-alsa.c +++ b/sound/pci/aw2/aw2-alsa.c | |||
@@ -165,7 +165,7 @@ module_param_array(enable, bool, NULL, 0444); | |||
165 | MODULE_PARM_DESC(enable, "Enable Audiowerk2 soundcard."); | 165 | MODULE_PARM_DESC(enable, "Enable Audiowerk2 soundcard."); |
166 | 166 | ||
167 | static struct pci_device_id snd_aw2_ids[] = { | 167 | static struct pci_device_id snd_aw2_ids[] = { |
168 | {PCI_VENDOR_ID_SAA7146, PCI_DEVICE_ID_SAA7146, PCI_ANY_ID, PCI_ANY_ID, | 168 | {PCI_VENDOR_ID_SAA7146, PCI_DEVICE_ID_SAA7146, 0, 0, |
169 | 0, 0, 0}, | 169 | 0, 0, 0}, |
170 | {0} | 170 | {0} |
171 | }; | 171 | }; |
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index 7958006a1d66..101a1c13a20d 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c | |||
@@ -1528,6 +1528,7 @@ static struct snd_emu_chip_details emu_chip_details[] = { | |||
1528 | .ca0151_chip = 1, | 1528 | .ca0151_chip = 1, |
1529 | .spk71 = 1, | 1529 | .spk71 = 1, |
1530 | .spdif_bug = 1, | 1530 | .spdif_bug = 1, |
1531 | .invert_shared_spdif = 1, /* digital/analog switch swapped */ | ||
1531 | .ac97_chip = 1} , | 1532 | .ac97_chip = 1} , |
1532 | {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x10021102, | 1533 | {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x10021102, |
1533 | .driver = "Audigy2", .name = "SB Audigy 2 Platinum [SB0240P]", | 1534 | .driver = "Audigy2", .name = "SB Audigy 2 Platinum [SB0240P]", |
diff --git a/sound/pci/hda/hda_hwdep.c b/sound/pci/hda/hda_hwdep.c index 482fb0304ca9..4ae51dcb81af 100644 --- a/sound/pci/hda/hda_hwdep.c +++ b/sound/pci/hda/hda_hwdep.c | |||
@@ -277,18 +277,19 @@ static ssize_t init_verbs_store(struct device *dev, | |||
277 | { | 277 | { |
278 | struct snd_hwdep *hwdep = dev_get_drvdata(dev); | 278 | struct snd_hwdep *hwdep = dev_get_drvdata(dev); |
279 | struct hda_codec *codec = hwdep->private_data; | 279 | struct hda_codec *codec = hwdep->private_data; |
280 | char *p; | 280 | struct hda_verb *v; |
281 | struct hda_verb verb, *v; | 281 | int nid, verb, param; |
282 | 282 | ||
283 | verb.nid = simple_strtoul(buf, &p, 0); | 283 | if (sscanf(buf, "%i %i %i", &nid, &verb, ¶m) != 3) |
284 | verb.verb = simple_strtoul(p, &p, 0); | 284 | return -EINVAL; |
285 | verb.param = simple_strtoul(p, &p, 0); | 285 | if (!nid || !verb) |
286 | if (!verb.nid || !verb.verb || !verb.param) | ||
287 | return -EINVAL; | 286 | return -EINVAL; |
288 | v = snd_array_new(&codec->init_verbs); | 287 | v = snd_array_new(&codec->init_verbs); |
289 | if (!v) | 288 | if (!v) |
290 | return -ENOMEM; | 289 | return -ENOMEM; |
291 | *v = verb; | 290 | v->nid = nid; |
291 | v->verb = verb; | ||
292 | v->param = param; | ||
292 | return count; | 293 | return count; |
293 | } | 294 | } |
294 | 295 | ||
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 11e791b965f6..5e909e0da04b 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -1947,16 +1947,13 @@ static int azx_suspend(struct pci_dev *pci, pm_message_t state) | |||
1947 | return 0; | 1947 | return 0; |
1948 | } | 1948 | } |
1949 | 1949 | ||
1950 | static int azx_resume_early(struct pci_dev *pci) | ||
1951 | { | ||
1952 | return pci_restore_state(pci); | ||
1953 | } | ||
1954 | |||
1955 | static int azx_resume(struct pci_dev *pci) | 1950 | static int azx_resume(struct pci_dev *pci) |
1956 | { | 1951 | { |
1957 | struct snd_card *card = pci_get_drvdata(pci); | 1952 | struct snd_card *card = pci_get_drvdata(pci); |
1958 | struct azx *chip = card->private_data; | 1953 | struct azx *chip = card->private_data; |
1959 | 1954 | ||
1955 | pci_set_power_state(pci, PCI_D0); | ||
1956 | pci_restore_state(pci); | ||
1960 | if (pci_enable_device(pci) < 0) { | 1957 | if (pci_enable_device(pci) < 0) { |
1961 | printk(KERN_ERR "hda-intel: pci_enable_device failed, " | 1958 | printk(KERN_ERR "hda-intel: pci_enable_device failed, " |
1962 | "disabling device\n"); | 1959 | "disabling device\n"); |
@@ -2098,6 +2095,8 @@ static struct snd_pci_quirk probe_mask_list[] __devinitdata = { | |||
2098 | SND_PCI_QUIRK(0x1028, 0x20ac, "Dell Studio Desktop", 0x01), | 2095 | SND_PCI_QUIRK(0x1028, 0x20ac, "Dell Studio Desktop", 0x01), |
2099 | /* including bogus ALC268 in slot#2 that conflicts with ALC888 */ | 2096 | /* including bogus ALC268 in slot#2 that conflicts with ALC888 */ |
2100 | SND_PCI_QUIRK(0x17c0, 0x4085, "Medion MD96630", 0x01), | 2097 | SND_PCI_QUIRK(0x17c0, 0x4085, "Medion MD96630", 0x01), |
2098 | /* conflict of ALC268 in slot#3 (digital I/O); a temporary fix */ | ||
2099 | SND_PCI_QUIRK(0x1179, 0xff00, "Toshiba laptop", 0x03), | ||
2101 | {} | 2100 | {} |
2102 | }; | 2101 | }; |
2103 | 2102 | ||
@@ -2468,7 +2467,6 @@ static struct pci_driver driver = { | |||
2468 | .remove = __devexit_p(azx_remove), | 2467 | .remove = __devexit_p(azx_remove), |
2469 | #ifdef CONFIG_PM | 2468 | #ifdef CONFIG_PM |
2470 | .suspend = azx_suspend, | 2469 | .suspend = azx_suspend, |
2471 | .resume_early = azx_resume_early, | ||
2472 | .resume = azx_resume, | 2470 | .resume = azx_resume, |
2473 | #endif | 2471 | #endif |
2474 | }; | 2472 | }; |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index ed8fcbd60003..6c26afcb8262 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -7017,6 +7017,7 @@ static int patch_alc882(struct hda_codec *codec) | |||
7017 | case 0x106b3e00: /* iMac 24 Aluminium */ | 7017 | case 0x106b3e00: /* iMac 24 Aluminium */ |
7018 | board_config = ALC885_IMAC24; | 7018 | board_config = ALC885_IMAC24; |
7019 | break; | 7019 | break; |
7020 | case 0x106b00a0: /* MacBookPro3,1 - Another revision */ | ||
7020 | case 0x106b00a1: /* Macbook (might be wrong - PCI SSID?) */ | 7021 | case 0x106b00a1: /* Macbook (might be wrong - PCI SSID?) */ |
7021 | case 0x106b00a4: /* MacbookPro4,1 */ | 7022 | case 0x106b00a4: /* MacbookPro4,1 */ |
7022 | case 0x106b2c00: /* Macbook Pro rev3 */ | 7023 | case 0x106b2c00: /* Macbook Pro rev3 */ |
@@ -8469,6 +8470,8 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = { | |||
8469 | ALC888_ACER_ASPIRE_4930G), | 8470 | ALC888_ACER_ASPIRE_4930G), |
8470 | SND_PCI_QUIRK(0x1025, 0x015e, "Acer Aspire 6930G", | 8471 | SND_PCI_QUIRK(0x1025, 0x015e, "Acer Aspire 6930G", |
8471 | ALC888_ACER_ASPIRE_4930G), | 8472 | ALC888_ACER_ASPIRE_4930G), |
8473 | SND_PCI_QUIRK(0x1025, 0x0166, "Acer Aspire 6530G", | ||
8474 | ALC888_ACER_ASPIRE_4930G), | ||
8472 | SND_PCI_QUIRK(0x1025, 0, "Acer laptop", ALC883_ACER), /* default Acer */ | 8475 | SND_PCI_QUIRK(0x1025, 0, "Acer laptop", ALC883_ACER), /* default Acer */ |
8473 | SND_PCI_QUIRK(0x1028, 0x020d, "Dell Inspiron 530", ALC888_6ST_DELL), | 8476 | SND_PCI_QUIRK(0x1028, 0x020d, "Dell Inspiron 530", ALC888_6ST_DELL), |
8474 | SND_PCI_QUIRK(0x103c, 0x2a3d, "HP Pavillion", ALC883_6ST_DIG), | 8477 | SND_PCI_QUIRK(0x103c, 0x2a3d, "HP Pavillion", ALC883_6ST_DIG), |
@@ -10554,6 +10557,7 @@ static struct snd_pci_quirk alc262_cfg_tbl[] = { | |||
10554 | SND_PCI_QUIRK(0x103c, 0x1309, "HP xw4*00", ALC262_HP_BPC), | 10557 | SND_PCI_QUIRK(0x103c, 0x1309, "HP xw4*00", ALC262_HP_BPC), |
10555 | SND_PCI_QUIRK(0x103c, 0x130a, "HP xw6*00", ALC262_HP_BPC), | 10558 | SND_PCI_QUIRK(0x103c, 0x130a, "HP xw6*00", ALC262_HP_BPC), |
10556 | SND_PCI_QUIRK(0x103c, 0x130b, "HP xw8*00", ALC262_HP_BPC), | 10559 | SND_PCI_QUIRK(0x103c, 0x130b, "HP xw8*00", ALC262_HP_BPC), |
10560 | SND_PCI_QUIRK(0x103c, 0x170b, "HP xw*", ALC262_HP_BPC), | ||
10557 | SND_PCI_QUIRK(0x103c, 0x2800, "HP D7000", ALC262_HP_BPC_D7000_WL), | 10561 | SND_PCI_QUIRK(0x103c, 0x2800, "HP D7000", ALC262_HP_BPC_D7000_WL), |
10558 | SND_PCI_QUIRK(0x103c, 0x2801, "HP D7000", ALC262_HP_BPC_D7000_WF), | 10562 | SND_PCI_QUIRK(0x103c, 0x2801, "HP D7000", ALC262_HP_BPC_D7000_WF), |
10559 | SND_PCI_QUIRK(0x103c, 0x2802, "HP D7000", ALC262_HP_BPC_D7000_WL), | 10563 | SND_PCI_QUIRK(0x103c, 0x2802, "HP D7000", ALC262_HP_BPC_D7000_WL), |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 8027edf3c8f2..3bc427645da8 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -4989,7 +4989,7 @@ again: | |||
4989 | case STAC_DELL_M4_3: | 4989 | case STAC_DELL_M4_3: |
4990 | spec->num_dmics = 1; | 4990 | spec->num_dmics = 1; |
4991 | spec->num_smuxes = 0; | 4991 | spec->num_smuxes = 0; |
4992 | spec->num_dmuxes = 0; | 4992 | spec->num_dmuxes = 1; |
4993 | break; | 4993 | break; |
4994 | default: | 4994 | default: |
4995 | spec->num_dmics = STAC92HD71BXX_NUM_DMICS; | 4995 | spec->num_dmics = STAC92HD71BXX_NUM_DMICS; |
diff --git a/sound/pci/oxygen/virtuoso.c b/sound/pci/oxygen/virtuoso.c index 18c7c91786bc..6c870c12a177 100644 --- a/sound/pci/oxygen/virtuoso.c +++ b/sound/pci/oxygen/virtuoso.c | |||
@@ -26,7 +26,7 @@ | |||
26 | * SPI 0 -> 1st PCM1796 (front) | 26 | * SPI 0 -> 1st PCM1796 (front) |
27 | * SPI 1 -> 2nd PCM1796 (surround) | 27 | * SPI 1 -> 2nd PCM1796 (surround) |
28 | * SPI 2 -> 3rd PCM1796 (center/LFE) | 28 | * SPI 2 -> 3rd PCM1796 (center/LFE) |
29 | * SPI 4 -> 4th PCM1796 (back) and EEPROM self-destruct (do not use!) | 29 | * SPI 4 -> 4th PCM1796 (back) |
30 | * | 30 | * |
31 | * GPIO 2 -> M0 of CS5381 | 31 | * GPIO 2 -> M0 of CS5381 |
32 | * GPIO 3 -> M1 of CS5381 | 32 | * GPIO 3 -> M1 of CS5381 |
@@ -207,12 +207,6 @@ static void xonar_gpio_changed(struct oxygen *chip); | |||
207 | static inline void pcm1796_write_spi(struct oxygen *chip, unsigned int codec, | 207 | static inline void pcm1796_write_spi(struct oxygen *chip, unsigned int codec, |
208 | u8 reg, u8 value) | 208 | u8 reg, u8 value) |
209 | { | 209 | { |
210 | /* | ||
211 | * We don't want to do writes on SPI 4 because the EEPROM, which shares | ||
212 | * the same pin, might get confused and broken. We'd better take care | ||
213 | * that the driver works with the default register values ... | ||
214 | */ | ||
215 | #if 0 | ||
216 | /* maps ALSA channel pair number to SPI output */ | 210 | /* maps ALSA channel pair number to SPI output */ |
217 | static const u8 codec_map[4] = { | 211 | static const u8 codec_map[4] = { |
218 | 0, 1, 2, 4 | 212 | 0, 1, 2, 4 |
@@ -223,7 +217,6 @@ static inline void pcm1796_write_spi(struct oxygen *chip, unsigned int codec, | |||
223 | (codec_map[codec] << OXYGEN_SPI_CODEC_SHIFT) | | 217 | (codec_map[codec] << OXYGEN_SPI_CODEC_SHIFT) | |
224 | OXYGEN_SPI_CEN_LATCH_CLOCK_HI, | 218 | OXYGEN_SPI_CEN_LATCH_CLOCK_HI, |
225 | (reg << 8) | value); | 219 | (reg << 8) | value); |
226 | #endif | ||
227 | } | 220 | } |
228 | 221 | ||
229 | static inline void pcm1796_write_i2c(struct oxygen *chip, unsigned int codec, | 222 | static inline void pcm1796_write_i2c(struct oxygen *chip, unsigned int codec, |
@@ -757,9 +750,6 @@ static const DECLARE_TLV_DB_SCALE(cs4362a_db_scale, -12700, 100, 0); | |||
757 | 750 | ||
758 | static int xonar_d2_control_filter(struct snd_kcontrol_new *template) | 751 | static int xonar_d2_control_filter(struct snd_kcontrol_new *template) |
759 | { | 752 | { |
760 | if (!strncmp(template->name, "Master Playback ", 16)) | ||
761 | /* disable volume/mute because they would require SPI writes */ | ||
762 | return 1; | ||
763 | if (!strncmp(template->name, "CD Capture ", 11)) | 753 | if (!strncmp(template->name, "CD Capture ", 11)) |
764 | /* CD in is actually connected to the video in pin */ | 754 | /* CD in is actually connected to the video in pin */ |
765 | template->private_value ^= AC97_CD ^ AC97_VIDEO; | 755 | template->private_value ^= AC97_CD ^ AC97_VIDEO; |
@@ -850,8 +840,9 @@ static const struct oxygen_model model_xonar_d2 = { | |||
850 | .dac_volume_min = 0x0f, | 840 | .dac_volume_min = 0x0f, |
851 | .dac_volume_max = 0xff, | 841 | .dac_volume_max = 0xff, |
852 | .misc_flags = OXYGEN_MISC_MIDI, | 842 | .misc_flags = OXYGEN_MISC_MIDI, |
853 | .function_flags = OXYGEN_FUNCTION_SPI, | 843 | .function_flags = OXYGEN_FUNCTION_SPI | |
854 | .dac_i2s_format = OXYGEN_I2S_FORMAT_I2S, | 844 | OXYGEN_FUNCTION_ENABLE_SPI_4_5, |
845 | .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST, | ||
855 | .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, | 846 | .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, |
856 | }; | 847 | }; |
857 | 848 | ||
diff --git a/sound/pci/pcxhr/pcxhr.h b/sound/pci/pcxhr/pcxhr.h index 84131a916c92..69d87dee6995 100644 --- a/sound/pci/pcxhr/pcxhr.h +++ b/sound/pci/pcxhr/pcxhr.h | |||
@@ -97,12 +97,12 @@ struct pcxhr_mgr { | |||
97 | int capture_chips; | 97 | int capture_chips; |
98 | int fw_file_set; | 98 | int fw_file_set; |
99 | int firmware_num; | 99 | int firmware_num; |
100 | int is_hr_stereo:1; | 100 | unsigned int is_hr_stereo:1; |
101 | int board_has_aes1:1; /* if 1 board has AES1 plug and SRC */ | 101 | unsigned int board_has_aes1:1; /* if 1 board has AES1 plug and SRC */ |
102 | int board_has_analog:1; /* if 0 the board is digital only */ | 102 | unsigned int board_has_analog:1; /* if 0 the board is digital only */ |
103 | int board_has_mic:1; /* if 1 the board has microphone input */ | 103 | unsigned int board_has_mic:1; /* if 1 the board has microphone input */ |
104 | int board_aes_in_192k:1;/* if 1 the aes input plugs do support 192kHz */ | 104 | unsigned int board_aes_in_192k:1;/* if 1 the aes input plugs do support 192kHz */ |
105 | int mono_capture:1; /* if 1 the board does mono capture */ | 105 | unsigned int mono_capture:1; /* if 1 the board does mono capture */ |
106 | 106 | ||
107 | struct snd_dma_buffer hostport; | 107 | struct snd_dma_buffer hostport; |
108 | 108 | ||
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c index 2ab83129d9b0..19e37451c216 100644 --- a/sound/usb/usbaudio.c +++ b/sound/usb/usbaudio.c | |||
@@ -2524,7 +2524,6 @@ static int parse_audio_format_rates(struct snd_usb_audio *chip, struct audioform | |||
2524 | * build the rate table and bitmap flags | 2524 | * build the rate table and bitmap flags |
2525 | */ | 2525 | */ |
2526 | int r, idx; | 2526 | int r, idx; |
2527 | unsigned int nonzero_rates = 0; | ||
2528 | 2527 | ||
2529 | fp->rate_table = kmalloc(sizeof(int) * nr_rates, GFP_KERNEL); | 2528 | fp->rate_table = kmalloc(sizeof(int) * nr_rates, GFP_KERNEL); |
2530 | if (fp->rate_table == NULL) { | 2529 | if (fp->rate_table == NULL) { |
@@ -2532,24 +2531,27 @@ static int parse_audio_format_rates(struct snd_usb_audio *chip, struct audioform | |||
2532 | return -1; | 2531 | return -1; |
2533 | } | 2532 | } |
2534 | 2533 | ||
2535 | fp->nr_rates = nr_rates; | 2534 | fp->nr_rates = 0; |
2536 | fp->rate_min = fp->rate_max = combine_triple(&fmt[8]); | 2535 | fp->rate_min = fp->rate_max = 0; |
2537 | for (r = 0, idx = offset + 1; r < nr_rates; r++, idx += 3) { | 2536 | for (r = 0, idx = offset + 1; r < nr_rates; r++, idx += 3) { |
2538 | unsigned int rate = combine_triple(&fmt[idx]); | 2537 | unsigned int rate = combine_triple(&fmt[idx]); |
2538 | if (!rate) | ||
2539 | continue; | ||
2539 | /* C-Media CM6501 mislabels its 96 kHz altsetting */ | 2540 | /* C-Media CM6501 mislabels its 96 kHz altsetting */ |
2540 | if (rate == 48000 && nr_rates == 1 && | 2541 | if (rate == 48000 && nr_rates == 1 && |
2541 | chip->usb_id == USB_ID(0x0d8c, 0x0201) && | 2542 | (chip->usb_id == USB_ID(0x0d8c, 0x0201) || |
2543 | chip->usb_id == USB_ID(0x0d8c, 0x0102)) && | ||
2542 | fp->altsetting == 5 && fp->maxpacksize == 392) | 2544 | fp->altsetting == 5 && fp->maxpacksize == 392) |
2543 | rate = 96000; | 2545 | rate = 96000; |
2544 | fp->rate_table[r] = rate; | 2546 | fp->rate_table[fp->nr_rates] = rate; |
2545 | nonzero_rates |= rate; | 2547 | if (!fp->rate_min || rate < fp->rate_min) |
2546 | if (rate < fp->rate_min) | ||
2547 | fp->rate_min = rate; | 2548 | fp->rate_min = rate; |
2548 | else if (rate > fp->rate_max) | 2549 | if (!fp->rate_max || rate > fp->rate_max) |
2549 | fp->rate_max = rate; | 2550 | fp->rate_max = rate; |
2550 | fp->rates |= snd_pcm_rate_to_rate_bit(rate); | 2551 | fp->rates |= snd_pcm_rate_to_rate_bit(rate); |
2552 | fp->nr_rates++; | ||
2551 | } | 2553 | } |
2552 | if (!nonzero_rates) { | 2554 | if (!fp->nr_rates) { |
2553 | hwc_debug("All rates were zero. Skipping format!\n"); | 2555 | hwc_debug("All rates were zero. Skipping format!\n"); |
2554 | return -1; | 2556 | return -1; |
2555 | } | 2557 | } |
diff --git a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c index 320641ab5be7..26bad373fe65 100644 --- a/sound/usb/usbmidi.c +++ b/sound/usb/usbmidi.c | |||
@@ -1625,6 +1625,7 @@ static int snd_usbmidi_create_endpoints_midiman(struct snd_usb_midi* umidi, | |||
1625 | } | 1625 | } |
1626 | 1626 | ||
1627 | ep_info.out_ep = get_endpoint(hostif, 2)->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; | 1627 | ep_info.out_ep = get_endpoint(hostif, 2)->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; |
1628 | ep_info.out_interval = 0; | ||
1628 | ep_info.out_cables = endpoint->out_cables & 0x5555; | 1629 | ep_info.out_cables = endpoint->out_cables & 0x5555; |
1629 | err = snd_usbmidi_out_endpoint_create(umidi, &ep_info, &umidi->endpoints[0]); | 1630 | err = snd_usbmidi_out_endpoint_create(umidi, &ep_info, &umidi->endpoints[0]); |
1630 | if (err < 0) | 1631 | if (err < 0) |