提交 6cec5083 编写于 作者: L Linus Torvalds

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:
  ALSA: hda - Add missing COEF initialization for ALC887
  ALSA: hda - Add missing initialization for ALC272
  sound: usb-audio: handle wMaxPacketSize for FIXED_ENDPOINT devices
  ALSA: hda - Fix misc workqueue issues
  ALSA: hda - Add quirk for FSC Amilo Xi2550
...@@ -487,7 +487,6 @@ int /*__devinit*/ snd_hda_bus_new(struct snd_card *card, ...@@ -487,7 +487,6 @@ int /*__devinit*/ snd_hda_bus_new(struct snd_card *card,
{ {
struct hda_bus *bus; struct hda_bus *bus;
int err; int err;
char qname[8];
static struct snd_device_ops dev_ops = { static struct snd_device_ops dev_ops = {
.dev_register = snd_hda_bus_dev_register, .dev_register = snd_hda_bus_dev_register,
.dev_free = snd_hda_bus_dev_free, .dev_free = snd_hda_bus_dev_free,
...@@ -517,10 +516,12 @@ int /*__devinit*/ snd_hda_bus_new(struct snd_card *card, ...@@ -517,10 +516,12 @@ int /*__devinit*/ snd_hda_bus_new(struct snd_card *card,
mutex_init(&bus->cmd_mutex); mutex_init(&bus->cmd_mutex);
INIT_LIST_HEAD(&bus->codec_list); INIT_LIST_HEAD(&bus->codec_list);
snprintf(qname, sizeof(qname), "hda%d", card->number); snprintf(bus->workq_name, sizeof(bus->workq_name),
bus->workq = create_workqueue(qname); "hd-audio%d", card->number);
bus->workq = create_singlethread_workqueue(bus->workq_name);
if (!bus->workq) { if (!bus->workq) {
snd_printk(KERN_ERR "cannot create workqueue %s\n", qname); snd_printk(KERN_ERR "cannot create workqueue %s\n",
bus->workq_name);
kfree(bus); kfree(bus);
return -ENOMEM; return -ENOMEM;
} }
......
...@@ -614,6 +614,7 @@ struct hda_bus { ...@@ -614,6 +614,7 @@ struct hda_bus {
/* unsolicited event queue */ /* unsolicited event queue */
struct hda_bus_unsolicited *unsol; struct hda_bus_unsolicited *unsol;
char workq_name[16];
struct workqueue_struct *workq; /* common workqueue for codecs */ struct workqueue_struct *workq; /* common workqueue for codecs */
/* assigned PCMs */ /* assigned PCMs */
......
...@@ -1037,6 +1037,7 @@ static void alc_subsystem_id(struct hda_codec *codec, ...@@ -1037,6 +1037,7 @@ static void alc_subsystem_id(struct hda_codec *codec,
case 0x10ec0267: case 0x10ec0267:
case 0x10ec0268: case 0x10ec0268:
case 0x10ec0269: case 0x10ec0269:
case 0x10ec0272:
case 0x10ec0660: case 0x10ec0660:
case 0x10ec0662: case 0x10ec0662:
case 0x10ec0663: case 0x10ec0663:
...@@ -1065,6 +1066,7 @@ static void alc_subsystem_id(struct hda_codec *codec, ...@@ -1065,6 +1066,7 @@ static void alc_subsystem_id(struct hda_codec *codec,
case 0x10ec0882: case 0x10ec0882:
case 0x10ec0883: case 0x10ec0883:
case 0x10ec0885: case 0x10ec0885:
case 0x10ec0887:
case 0x10ec0889: case 0x10ec0889:
snd_hda_codec_write(codec, 0x20, 0, snd_hda_codec_write(codec, 0x20, 0,
AC_VERB_SET_COEF_INDEX, 7); AC_VERB_SET_COEF_INDEX, 7);
...@@ -8515,6 +8517,8 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = { ...@@ -8515,6 +8517,8 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
SND_PCI_QUIRK(0x1558, 0, "Clevo laptop", ALC883_LAPTOP_EAPD), SND_PCI_QUIRK(0x1558, 0, "Clevo laptop", ALC883_LAPTOP_EAPD),
SND_PCI_QUIRK(0x15d9, 0x8780, "Supermicro PDSBA", ALC883_3ST_6ch), SND_PCI_QUIRK(0x15d9, 0x8780, "Supermicro PDSBA", ALC883_3ST_6ch),
SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_MEDION), SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_MEDION),
SND_PCI_QUIRK(0x1734, 0x1107, "FSC AMILO Xi2550",
ALC883_FUJITSU_PI2515),
SND_PCI_QUIRK(0x1734, 0x1108, "Fujitsu AMILO Pi2515", ALC883_FUJITSU_PI2515), SND_PCI_QUIRK(0x1734, 0x1108, "Fujitsu AMILO Pi2515", ALC883_FUJITSU_PI2515),
SND_PCI_QUIRK(0x1734, 0x113d, "Fujitsu AMILO Xa3530", SND_PCI_QUIRK(0x1734, 0x113d, "Fujitsu AMILO Xa3530",
ALC888_FUJITSU_XA3530), ALC888_FUJITSU_XA3530),
......
...@@ -2966,6 +2966,7 @@ static int create_fixed_stream_quirk(struct snd_usb_audio *chip, ...@@ -2966,6 +2966,7 @@ static int create_fixed_stream_quirk(struct snd_usb_audio *chip,
return -EINVAL; return -EINVAL;
} }
alts = &iface->altsetting[fp->altset_idx]; alts = &iface->altsetting[fp->altset_idx];
fp->maxpacksize = le16_to_cpu(get_endpoint(alts, 0)->wMaxPacketSize);
usb_set_interface(chip->dev, fp->iface, 0); usb_set_interface(chip->dev, fp->iface, 0);
init_usb_pitch(chip->dev, fp->iface, alts, fp); init_usb_pitch(chip->dev, fp->iface, alts, fp);
init_usb_sample_rate(chip->dev, fp->iface, alts, fp, fp->rate_max); init_usb_sample_rate(chip->dev, fp->iface, alts, fp, fp->rate_max);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册