Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: sound: virtuoso: revert "do not overwrite EEPROM on Xonar D2/D2X" ALSA: jack - Use card->shortname for input name ALSA: usb-audio - Workaround for misdetected sample rate with CM6207 ALSA: usb-audio - Fix non-continuous rate detection sound: usb-audio: fix uninitialized variable with M-Audio MIDI interfaces Revert "Sound: hda - Restore PCI configuration space with interrupts off"
This commit is contained in:
Коммит
a1342d3b8e
|
@ -47,7 +47,7 @@ static int snd_jack_dev_register(struct snd_device *device)
|
|||
int err;
|
||||
|
||||
snprintf(jack->name, sizeof(jack->name), "%s %s",
|
||||
card->longname, jack->id);
|
||||
card->shortname, jack->id);
|
||||
jack->input_dev->name = jack->name;
|
||||
|
||||
/* Default to the sound card device. */
|
||||
|
|
|
@ -1947,16 +1947,13 @@ static int azx_suspend(struct pci_dev *pci, pm_message_t state)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int azx_resume_early(struct pci_dev *pci)
|
||||
{
|
||||
return pci_restore_state(pci);
|
||||
}
|
||||
|
||||
static int azx_resume(struct pci_dev *pci)
|
||||
{
|
||||
struct snd_card *card = pci_get_drvdata(pci);
|
||||
struct azx *chip = card->private_data;
|
||||
|
||||
pci_set_power_state(pci, PCI_D0);
|
||||
pci_restore_state(pci);
|
||||
if (pci_enable_device(pci) < 0) {
|
||||
printk(KERN_ERR "hda-intel: pci_enable_device failed, "
|
||||
"disabling device\n");
|
||||
|
@ -2468,7 +2465,6 @@ static struct pci_driver driver = {
|
|||
.remove = __devexit_p(azx_remove),
|
||||
#ifdef CONFIG_PM
|
||||
.suspend = azx_suspend,
|
||||
.resume_early = azx_resume_early,
|
||||
.resume = azx_resume,
|
||||
#endif
|
||||
};
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
* SPI 0 -> 1st PCM1796 (front)
|
||||
* SPI 1 -> 2nd PCM1796 (surround)
|
||||
* SPI 2 -> 3rd PCM1796 (center/LFE)
|
||||
* SPI 4 -> 4th PCM1796 (back) and EEPROM self-destruct (do not use!)
|
||||
* SPI 4 -> 4th PCM1796 (back)
|
||||
*
|
||||
* GPIO 2 -> M0 of CS5381
|
||||
* GPIO 3 -> M1 of CS5381
|
||||
|
@ -207,12 +207,6 @@ static void xonar_gpio_changed(struct oxygen *chip);
|
|||
static inline void pcm1796_write_spi(struct oxygen *chip, unsigned int codec,
|
||||
u8 reg, u8 value)
|
||||
{
|
||||
/*
|
||||
* We don't want to do writes on SPI 4 because the EEPROM, which shares
|
||||
* the same pin, might get confused and broken. We'd better take care
|
||||
* that the driver works with the default register values ...
|
||||
*/
|
||||
#if 0
|
||||
/* maps ALSA channel pair number to SPI output */
|
||||
static const u8 codec_map[4] = {
|
||||
0, 1, 2, 4
|
||||
|
@ -223,7 +217,6 @@ static inline void pcm1796_write_spi(struct oxygen *chip, unsigned int codec,
|
|||
(codec_map[codec] << OXYGEN_SPI_CODEC_SHIFT) |
|
||||
OXYGEN_SPI_CEN_LATCH_CLOCK_HI,
|
||||
(reg << 8) | value);
|
||||
#endif
|
||||
}
|
||||
|
||||
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);
|
|||
|
||||
static int xonar_d2_control_filter(struct snd_kcontrol_new *template)
|
||||
{
|
||||
if (!strncmp(template->name, "Master Playback ", 16))
|
||||
/* disable volume/mute because they would require SPI writes */
|
||||
return 1;
|
||||
if (!strncmp(template->name, "CD Capture ", 11))
|
||||
/* CD in is actually connected to the video in pin */
|
||||
template->private_value ^= AC97_CD ^ AC97_VIDEO;
|
||||
|
@ -850,8 +840,9 @@ static const struct oxygen_model model_xonar_d2 = {
|
|||
.dac_volume_min = 0x0f,
|
||||
.dac_volume_max = 0xff,
|
||||
.misc_flags = OXYGEN_MISC_MIDI,
|
||||
.function_flags = OXYGEN_FUNCTION_SPI,
|
||||
.dac_i2s_format = OXYGEN_I2S_FORMAT_I2S,
|
||||
.function_flags = OXYGEN_FUNCTION_SPI |
|
||||
OXYGEN_FUNCTION_ENABLE_SPI_4_5,
|
||||
.dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
|
||||
.adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
|
||||
};
|
||||
|
||||
|
|
|
@ -2524,7 +2524,6 @@ static int parse_audio_format_rates(struct snd_usb_audio *chip, struct audioform
|
|||
* build the rate table and bitmap flags
|
||||
*/
|
||||
int r, idx;
|
||||
unsigned int nonzero_rates = 0;
|
||||
|
||||
fp->rate_table = kmalloc(sizeof(int) * nr_rates, GFP_KERNEL);
|
||||
if (fp->rate_table == NULL) {
|
||||
|
@ -2532,24 +2531,27 @@ static int parse_audio_format_rates(struct snd_usb_audio *chip, struct audioform
|
|||
return -1;
|
||||
}
|
||||
|
||||
fp->nr_rates = nr_rates;
|
||||
fp->rate_min = fp->rate_max = combine_triple(&fmt[8]);
|
||||
fp->nr_rates = 0;
|
||||
fp->rate_min = fp->rate_max = 0;
|
||||
for (r = 0, idx = offset + 1; r < nr_rates; r++, idx += 3) {
|
||||
unsigned int rate = combine_triple(&fmt[idx]);
|
||||
if (!rate)
|
||||
continue;
|
||||
/* C-Media CM6501 mislabels its 96 kHz altsetting */
|
||||
if (rate == 48000 && nr_rates == 1 &&
|
||||
chip->usb_id == USB_ID(0x0d8c, 0x0201) &&
|
||||
(chip->usb_id == USB_ID(0x0d8c, 0x0201) ||
|
||||
chip->usb_id == USB_ID(0x0d8c, 0x0102)) &&
|
||||
fp->altsetting == 5 && fp->maxpacksize == 392)
|
||||
rate = 96000;
|
||||
fp->rate_table[r] = rate;
|
||||
nonzero_rates |= rate;
|
||||
if (rate < fp->rate_min)
|
||||
fp->rate_table[fp->nr_rates] = rate;
|
||||
if (!fp->rate_min || rate < fp->rate_min)
|
||||
fp->rate_min = rate;
|
||||
else if (rate > fp->rate_max)
|
||||
if (!fp->rate_max || rate > fp->rate_max)
|
||||
fp->rate_max = rate;
|
||||
fp->rates |= snd_pcm_rate_to_rate_bit(rate);
|
||||
fp->nr_rates++;
|
||||
}
|
||||
if (!nonzero_rates) {
|
||||
if (!fp->nr_rates) {
|
||||
hwc_debug("All rates were zero. Skipping format!\n");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -1625,6 +1625,7 @@ static int snd_usbmidi_create_endpoints_midiman(struct snd_usb_midi* umidi,
|
|||
}
|
||||
|
||||
ep_info.out_ep = get_endpoint(hostif, 2)->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK;
|
||||
ep_info.out_interval = 0;
|
||||
ep_info.out_cables = endpoint->out_cables & 0x5555;
|
||||
err = snd_usbmidi_out_endpoint_create(umidi, &ep_info, &umidi->endpoints[0]);
|
||||
if (err < 0)
|
||||
|
|
Загрузка…
Ссылка в новой задаче