Commit 151b6a5f1d4c547c92ec67a5a6fedc16f435956e
Exists in
master
and in
7 other branches
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: pcm - Fix race with proc files ALSA: pcm - Fix unbalanced pm_qos_request ALSA: HDA: Enable internal speaker on Dell M101z ALSA: patch_nvhdmi.c: Fix supported sample rate list. sound: Remove pr_<level> uses of KERN_<level> ALSA: hda - Add quirk for Toshiba C650D using a Conexant CX20585 ALSA: hda_intel: ALSA HD Audio patch for Intel Patsburg DeviceIDs
Showing 8 changed files Side-by-side Diff
sound/core/pcm.c
... | ... | @@ -372,14 +372,17 @@ |
372 | 372 | struct snd_info_buffer *buffer) |
373 | 373 | { |
374 | 374 | struct snd_pcm_substream *substream = entry->private_data; |
375 | - struct snd_pcm_runtime *runtime = substream->runtime; | |
375 | + struct snd_pcm_runtime *runtime; | |
376 | + | |
377 | + mutex_lock(&substream->pcm->open_mutex); | |
378 | + runtime = substream->runtime; | |
376 | 379 | if (!runtime) { |
377 | 380 | snd_iprintf(buffer, "closed\n"); |
378 | - return; | |
381 | + goto unlock; | |
379 | 382 | } |
380 | 383 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) { |
381 | 384 | snd_iprintf(buffer, "no setup\n"); |
382 | - return; | |
385 | + goto unlock; | |
383 | 386 | } |
384 | 387 | snd_iprintf(buffer, "access: %s\n", snd_pcm_access_name(runtime->access)); |
385 | 388 | snd_iprintf(buffer, "format: %s\n", snd_pcm_format_name(runtime->format)); |
386 | 389 | |
387 | 390 | |
388 | 391 | |
... | ... | @@ -398,20 +401,25 @@ |
398 | 401 | snd_iprintf(buffer, "OSS period frames: %lu\n", (unsigned long)runtime->oss.period_frames); |
399 | 402 | } |
400 | 403 | #endif |
404 | + unlock: | |
405 | + mutex_unlock(&substream->pcm->open_mutex); | |
401 | 406 | } |
402 | 407 | |
403 | 408 | static void snd_pcm_substream_proc_sw_params_read(struct snd_info_entry *entry, |
404 | 409 | struct snd_info_buffer *buffer) |
405 | 410 | { |
406 | 411 | struct snd_pcm_substream *substream = entry->private_data; |
407 | - struct snd_pcm_runtime *runtime = substream->runtime; | |
412 | + struct snd_pcm_runtime *runtime; | |
413 | + | |
414 | + mutex_lock(&substream->pcm->open_mutex); | |
415 | + runtime = substream->runtime; | |
408 | 416 | if (!runtime) { |
409 | 417 | snd_iprintf(buffer, "closed\n"); |
410 | - return; | |
418 | + goto unlock; | |
411 | 419 | } |
412 | 420 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) { |
413 | 421 | snd_iprintf(buffer, "no setup\n"); |
414 | - return; | |
422 | + goto unlock; | |
415 | 423 | } |
416 | 424 | snd_iprintf(buffer, "tstamp_mode: %s\n", snd_pcm_tstamp_mode_name(runtime->tstamp_mode)); |
417 | 425 | snd_iprintf(buffer, "period_step: %u\n", runtime->period_step); |
418 | 426 | |
419 | 427 | |
420 | 428 | |
421 | 429 | |
... | ... | @@ -421,24 +429,29 @@ |
421 | 429 | snd_iprintf(buffer, "silence_threshold: %lu\n", runtime->silence_threshold); |
422 | 430 | snd_iprintf(buffer, "silence_size: %lu\n", runtime->silence_size); |
423 | 431 | snd_iprintf(buffer, "boundary: %lu\n", runtime->boundary); |
432 | + unlock: | |
433 | + mutex_unlock(&substream->pcm->open_mutex); | |
424 | 434 | } |
425 | 435 | |
426 | 436 | static void snd_pcm_substream_proc_status_read(struct snd_info_entry *entry, |
427 | 437 | struct snd_info_buffer *buffer) |
428 | 438 | { |
429 | 439 | struct snd_pcm_substream *substream = entry->private_data; |
430 | - struct snd_pcm_runtime *runtime = substream->runtime; | |
440 | + struct snd_pcm_runtime *runtime; | |
431 | 441 | struct snd_pcm_status status; |
432 | 442 | int err; |
443 | + | |
444 | + mutex_lock(&substream->pcm->open_mutex); | |
445 | + runtime = substream->runtime; | |
433 | 446 | if (!runtime) { |
434 | 447 | snd_iprintf(buffer, "closed\n"); |
435 | - return; | |
448 | + goto unlock; | |
436 | 449 | } |
437 | 450 | memset(&status, 0, sizeof(status)); |
438 | 451 | err = snd_pcm_status(substream, &status); |
439 | 452 | if (err < 0) { |
440 | 453 | snd_iprintf(buffer, "error %d\n", err); |
441 | - return; | |
454 | + goto unlock; | |
442 | 455 | } |
443 | 456 | snd_iprintf(buffer, "state: %s\n", snd_pcm_state_name(status.state)); |
444 | 457 | snd_iprintf(buffer, "owner_pid : %d\n", pid_vnr(substream->pid)); |
... | ... | @@ -452,6 +465,8 @@ |
452 | 465 | snd_iprintf(buffer, "-----\n"); |
453 | 466 | snd_iprintf(buffer, "hw_ptr : %ld\n", runtime->status->hw_ptr); |
454 | 467 | snd_iprintf(buffer, "appl_ptr : %ld\n", runtime->control->appl_ptr); |
468 | + unlock: | |
469 | + mutex_unlock(&substream->pcm->open_mutex); | |
455 | 470 | } |
456 | 471 | |
457 | 472 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
sound/core/pcm_native.c
... | ... | @@ -1992,6 +1992,8 @@ |
1992 | 1992 | substream->ops->close(substream); |
1993 | 1993 | substream->hw_opened = 0; |
1994 | 1994 | } |
1995 | + if (pm_qos_request_active(&substream->latency_pm_qos_req)) | |
1996 | + pm_qos_remove_request(&substream->latency_pm_qos_req); | |
1995 | 1997 | if (substream->pcm_release) { |
1996 | 1998 | substream->pcm_release(substream); |
1997 | 1999 | substream->pcm_release = NULL; |
sound/pci/hda/hda_intel.c
... | ... | @@ -126,6 +126,7 @@ |
126 | 126 | "{Intel, ICH10}," |
127 | 127 | "{Intel, PCH}," |
128 | 128 | "{Intel, CPT}," |
129 | + "{Intel, PBG}," | |
129 | 130 | "{Intel, SCH}," |
130 | 131 | "{ATI, SB450}," |
131 | 132 | "{ATI, SB600}," |
... | ... | @@ -2749,6 +2750,8 @@ |
2749 | 2750 | { PCI_DEVICE(0x8086, 0x3b57), .driver_data = AZX_DRIVER_ICH }, |
2750 | 2751 | /* CPT */ |
2751 | 2752 | { PCI_DEVICE(0x8086, 0x1c20), .driver_data = AZX_DRIVER_PCH }, |
2753 | + /* PBG */ | |
2754 | + { PCI_DEVICE(0x8086, 0x1d20), .driver_data = AZX_DRIVER_PCH }, | |
2752 | 2755 | /* SCH */ |
2753 | 2756 | { PCI_DEVICE(0x8086, 0x811b), .driver_data = AZX_DRIVER_SCH }, |
2754 | 2757 | /* ATI SB 450/600 */ |
sound/pci/hda/patch_conexant.c
... | ... | @@ -3092,6 +3092,7 @@ |
3092 | 3092 | SND_PCI_QUIRK(0x1028, 0x0402, "Dell Vostro", CXT5066_DELL_VOSTO), |
3093 | 3093 | SND_PCI_QUIRK(0x1028, 0x0408, "Dell Inspiron One 19T", CXT5066_IDEAPAD), |
3094 | 3094 | SND_PCI_QUIRK(0x103c, 0x360b, "HP G60", CXT5066_HP_LAPTOP), |
3095 | + SND_PCI_QUIRK(0x1179, 0xff1e, "Toshiba Satellite C650D", CXT5066_IDEAPAD), | |
3095 | 3096 | SND_PCI_QUIRK(0x1179, 0xff50, "Toshiba Satellite P500-PSPGSC-01800T", CXT5066_OLPC_XO_1_5), |
3096 | 3097 | SND_PCI_QUIRK(0x1179, 0xffe0, "Toshiba Satellite Pro T130-15F", CXT5066_OLPC_XO_1_5), |
3097 | 3098 | SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400s", CXT5066_THINKPAD), |
sound/pci/hda/patch_nvhdmi.c
... | ... | @@ -84,7 +84,7 @@ |
84 | 84 | #else |
85 | 85 | /* support all rates and formats */ |
86 | 86 | #define SUPPORTED_RATES \ |
87 | - (SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |\ | |
87 | + (SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |\ | |
88 | 88 | SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 |\ |
89 | 89 | SNDRV_PCM_RATE_192000) |
90 | 90 | #define SUPPORTED_MAXBPS 24 |
sound/pci/hda/patch_realtek.c
... | ... | @@ -14453,6 +14453,7 @@ |
14453 | 14453 | |
14454 | 14454 | enum { |
14455 | 14455 | ALC269_FIXUP_SONY_VAIO, |
14456 | + ALC269_FIXUP_DELL_M101Z, | |
14456 | 14457 | }; |
14457 | 14458 | |
14458 | 14459 | static const struct hda_verb alc269_sony_vaio_fixup_verbs[] = { |
14459 | 14460 | |
... | ... | @@ -14464,11 +14465,20 @@ |
14464 | 14465 | [ALC269_FIXUP_SONY_VAIO] = { |
14465 | 14466 | .verbs = alc269_sony_vaio_fixup_verbs |
14466 | 14467 | }, |
14468 | + [ALC269_FIXUP_DELL_M101Z] = { | |
14469 | + .verbs = (const struct hda_verb[]) { | |
14470 | + /* Enables internal speaker */ | |
14471 | + {0x20, AC_VERB_SET_COEF_INDEX, 13}, | |
14472 | + {0x20, AC_VERB_SET_PROC_COEF, 0x4040}, | |
14473 | + {} | |
14474 | + } | |
14475 | + }, | |
14467 | 14476 | }; |
14468 | 14477 | |
14469 | 14478 | static struct snd_pci_quirk alc269_fixup_tbl[] = { |
14470 | 14479 | SND_PCI_QUIRK(0x104d, 0x9071, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), |
14471 | 14480 | SND_PCI_QUIRK(0x104d, 0x9077, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), |
14481 | + SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), | |
14472 | 14482 | {} |
14473 | 14483 | }; |
14474 | 14484 |
sound/ppc/snd_ps3.c
... | ... | @@ -579,7 +579,7 @@ |
579 | 579 | rate * delay_ms / 1000) |
580 | 580 | * substream->runtime->channels; |
581 | 581 | |
582 | - pr_debug(KERN_ERR "%s: time=%d rate=%d bytes=%ld, frames=%d, ret=%d\n", | |
582 | + pr_debug("%s: time=%d rate=%d bytes=%ld, frames=%d, ret=%d\n", | |
583 | 583 | __func__, |
584 | 584 | delay_ms, |
585 | 585 | rate, |
sound/soc/s3c24xx/s3c-dma.c
... | ... | @@ -94,8 +94,7 @@ |
94 | 94 | |
95 | 95 | if ((pos + len) > prtd->dma_end) { |
96 | 96 | len = prtd->dma_end - pos; |
97 | - pr_debug(KERN_DEBUG "%s: corrected dma len %ld\n", | |
98 | - __func__, len); | |
97 | + pr_debug("%s: corrected dma len %ld\n", __func__, len); | |
99 | 98 | } |
100 | 99 | |
101 | 100 | ret = s3c2410_dma_enqueue(prtd->params->channel, |