forked from Minki/linux
ALSA: hda - Fix misc workqueue issues
Some fixes regarding snd-hda-intel workqueue: - Use create_singlethread_workqueue() instead of create_workqueue() as per-CPU work isn't required. - Allocate workq name string properly - Renamed the workq name to "hd-audio*" to be more obvious. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
f67d8176ba
commit
e8c0ee5d77
@ -487,7 +487,6 @@ int /*__devinit*/ snd_hda_bus_new(struct snd_card *card,
|
||||
{
|
||||
struct hda_bus *bus;
|
||||
int err;
|
||||
char qname[8];
|
||||
static struct snd_device_ops dev_ops = {
|
||||
.dev_register = snd_hda_bus_dev_register,
|
||||
.dev_free = snd_hda_bus_dev_free,
|
||||
@ -517,10 +516,12 @@ int /*__devinit*/ snd_hda_bus_new(struct snd_card *card,
|
||||
mutex_init(&bus->cmd_mutex);
|
||||
INIT_LIST_HEAD(&bus->codec_list);
|
||||
|
||||
snprintf(qname, sizeof(qname), "hda%d", card->number);
|
||||
bus->workq = create_workqueue(qname);
|
||||
snprintf(bus->workq_name, sizeof(bus->workq_name),
|
||||
"hd-audio%d", card->number);
|
||||
bus->workq = create_singlethread_workqueue(bus->workq_name);
|
||||
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);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
@ -614,6 +614,7 @@ struct hda_bus {
|
||||
|
||||
/* unsolicited event queue */
|
||||
struct hda_bus_unsolicited *unsol;
|
||||
char workq_name[16];
|
||||
struct workqueue_struct *workq; /* common workqueue for codecs */
|
||||
|
||||
/* assigned PCMs */
|
||||
|
Loading…
Reference in New Issue
Block a user