Skip to content

Commit a9c86d4

Browse files
committed
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: (377 commits) ASoC: au1x: PSC-AC97 bugfixes ALSA: dummy - Increase MAX_PCM_SUBSTREAMS to 128 ALSA: dummy - Add debug proc file ALSA: Add const prefix to proc helper functions ALSA: Re-export snd_pcm_format_name() function ALSA: hda - Use auto model for HP laptops with ALC268 codec ALSA: cs46xx - Fix minimum period size ASoC: Fix WM835x Out4 capture enumeration ALSA: Remove unneeded ifdef from sound/core.h ALSA: Remove struct snd_monitor_file from public sound/core.h ASoC: Remove unuused hw_read_t sound: oxygen: work around MCE when changing volume ALSA: dummy - Fake buffer allocations ALSA: hda/realtek: Added support for CLEVO M540R subsystem, 6 channel + digital ASoC: fix pxa2xx-ac97.c breakage ALSA: dummy - Fix the timer calculation in systimer mode ALSA: dummy - Add more description ALSA: dummy - Better jiffies handling ALSA: dummy - Support high-res timer mode ALSA: Release v1.0.21 ...
2 parents a12e4d3 + 1110afb commit a9c86d4

221 files changed

Lines changed: 30847 additions & 7107 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎Documentation/feature-removal-schedule.txt‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,3 +468,27 @@ Why: cpu_policy_rwsem has a new cleaner definition making it local to
468468
cpufreq core and contained inside cpufreq.c. Other dependent
469469
drivers should not use it in order to safely avoid lockdep issues.
470470
Who: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
471+
472+
----------------------------
473+
474+
What: sound-slot/service-* module aliases and related clutters in
475+
sound/sound_core.c
476+
When: August 2010
477+
Why: OSS sound_core grabs all legacy minors (0-255) of SOUND_MAJOR
478+
(14) and requests modules using custom sound-slot/service-*
479+
module aliases. The only benefit of doing this is allowing
480+
use of custom module aliases which might as well be considered
481+
a bug at this point. This preemptive claiming prevents
482+
alternative OSS implementations.
483+
484+
Till the feature is removed, the kernel will be requesting
485+
both sound-slot/service-* and the standard char-major-* module
486+
aliases and allow turning off the pre-claiming selectively via
487+
CONFIG_SOUND_OSS_CORE_PRECLAIM and soundcore.preclaim_oss
488+
kernel parameter.
489+
490+
After the transition phase is complete, both the custom module
491+
aliases and switches to disable it will go away. This removal
492+
will also allow making ALSA OSS emulation independent of
493+
sound_core. The dependency will be broken then too.
494+
Who: Tejun Heo <tj@kernel.org>

‎Documentation/sound/alsa/ALSA-Configuration.txt‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,12 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
6060
slots - Reserve the slot index for the given driver.
6161
This option takes multiple strings.
6262
See "Module Autoloading Support" section for details.
63+
debug - Specifies the debug message level
64+
(0 = disable debug prints, 1 = normal debug messages,
65+
2 = verbose debug messages)
66+
This option appears only when CONFIG_SND_DEBUG=y.
67+
This option can be dynamically changed via sysfs
68+
/sys/modules/snd/parameters/debug file.
6369

6470
Module snd-pcm-oss
6571
------------------
@@ -513,6 +519,26 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
513519
or input, but you may use this module for any application which
514520
requires a sound card (like RealPlayer).
515521

522+
pcm_devs - Number of PCM devices assigned to each card
523+
(default = 1, up to 4)
524+
pcm_substreams - Number of PCM substreams assigned to each PCM
525+
(default = 8, up to 16)
526+
hrtimer - Use hrtimer (=1, default) or system timer (=0)
527+
fake_buffer - Fake buffer allocations (default = 1)
528+
529+
When multiple PCM devices are created, snd-dummy gives different
530+
behavior to each PCM device:
531+
0 = interleaved with mmap support
532+
1 = non-interleaved with mmap support
533+
2 = interleaved without mmap
534+
3 = non-interleaved without mmap
535+
536+
As default, snd-dummy drivers doesn't allocate the real buffers
537+
but either ignores read/write or mmap a single dummy page to all
538+
buffer pages, in order to save the resouces. If your apps need
539+
the read/ written buffer data to be consistent, pass fake_buffer=0
540+
option.
541+
516542
The power-management is supported.
517543

518544
Module snd-echo3g
@@ -768,6 +794,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
768794
bdl_pos_adj - Specifies the DMA IRQ timing delay in samples.
769795
Passing -1 will make the driver to choose the appropriate
770796
value based on the controller chip.
797+
patch - Specifies the early "patch" files to modify the HD-audio
798+
setup before initializing the codecs. This option is
799+
available only when CONFIG_SND_HDA_PATCH_LOADER=y is set.
800+
See HD-Audio.txt for details.
771801

772802
[Single (global) options]
773803
single_cmd - Use single immediate commands to communicate with

‎Documentation/sound/alsa/HD-Audio-Models.txt‎

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ ALC662/663/272
114114
samsung-nc10 Samsung NC10 mini notebook
115115
auto auto-config reading BIOS (default)
116116

117-
ALC882/885
118-
==========
117+
ALC882/883/885/888/889
118+
======================
119119
3stack-dig 3-jack with SPDIF I/O
120120
6stack-dig 6-jack digital with SPDIF I/O
121121
arima Arima W820Di1
@@ -127,19 +127,16 @@ ALC882/885
127127
mbp3 Macbook Pro rev3
128128
imac24 iMac 24'' with jack detection
129129
w2jc ASUS W2JC
130-
auto auto-config reading BIOS (default)
131-
132-
ALC883/888
133-
==========
134-
3stack-dig 3-jack with SPDIF I/O
135-
6stack-dig 6-jack digital with SPDIF I/O
130+
3stack-2ch-dig 3-jack with SPDIF I/O (ALC883)
131+
alc883-6stack-dig 6-jack digital with SPDIF I/O (ALC883)
136132
3stack-6ch 3-jack 6-channel
137133
3stack-6ch-dig 3-jack 6-channel with SPDIF I/O
138134
6stack-dig-demo 6-jack digital for Intel demo board
139135
acer Acer laptops (Travelmate 3012WTMi, Aspire 5600, etc)
140136
acer-aspire Acer Aspire 9810
141137
acer-aspire-4930g Acer Aspire 4930G
142138
acer-aspire-6530g Acer Aspire 6530G
139+
acer-aspire-7730g Acer Aspire 7730G
143140
acer-aspire-8930g Acer Aspire 8930G
144141
medion Medion Laptops
145142
medion-md2 Medion MD2
@@ -155,10 +152,13 @@ ALC883/888
155152
3stack-hp HP machines with 3stack (Lucknow, Samba boards)
156153
6stack-dell Dell machines with 6stack (Inspiron 530)
157154
mitac Mitac 8252D
155+
clevo-m540r Clevo M540R (6ch + digital)
158156
clevo-m720 Clevo M720 laptop series
159157
fujitsu-pi2515 Fujitsu AMILO Pi2515
160158
fujitsu-xa3530 Fujitsu AMILO XA3530
161159
3stack-6ch-intel Intel DG33* boards
160+
intel-alc889a Intel IbexPeak with ALC889A
161+
intel-x58 Intel DX58 with ALC889
162162
asus-p5q ASUS P5Q-EM boards
163163
mb31 MacBook 3,1
164164
sony-vaio-tt Sony VAIO TT
@@ -229,7 +229,7 @@ AD1984
229229
======
230230
basic default configuration
231231
thinkpad Lenovo Thinkpad T61/X61
232-
dell Dell T3400
232+
dell_desktop Dell T3400
233233

234234
AD1986A
235235
=======
@@ -258,6 +258,7 @@ Conexant 5045
258258
laptop-micsense Laptop with Mic sense (old model fujitsu)
259259
laptop-hpmicsense Laptop with HP and Mic senses
260260
benq Benq R55E
261+
laptop-hp530 HP 530 laptop
261262
test for testing/debugging purpose, almost all controls
262263
can be adjusted. Appearing only when compiled with
263264
$CONFIG_SND_DEBUG=y
@@ -278,9 +279,16 @@ Conexant 5051
278279
hp-dv6736 HP dv6736
279280
lenovo-x200 Lenovo X200 laptop
280281

282+
Conexant 5066
283+
=============
284+
laptop Basic Laptop config (default)
285+
dell-laptop Dell laptops
286+
olpc-xo-1_5 OLPC XO 1.5
287+
281288
STAC9200
282289
========
283290
ref Reference board
291+
oqo OQO Model 2
284292
dell-d21 Dell (unknown)
285293
dell-d22 Dell (unknown)
286294
dell-d23 Dell (unknown)
@@ -368,10 +376,12 @@ STAC92HD73*
368376
===========
369377
ref Reference board
370378
no-jd BIOS setup but without jack-detection
379+
intel Intel DG45* mobos
371380
dell-m6-amic Dell desktops/laptops with analog mics
372381
dell-m6-dmic Dell desktops/laptops with digital mics
373382
dell-m6 Dell desktops/laptops with both type of mics
374383
dell-eq Dell desktops/laptops
384+
alienware Alienware M17x
375385
auto BIOS setup (default)
376386

377387
STAC92HD83*
@@ -385,3 +395,8 @@ STAC9872
385395
========
386396
vaio VAIO laptop without SPDIF
387397
auto BIOS setup (default)
398+
399+
Cirrus Logic CS4206/4207
400+
========================
401+
mbp55 MacBook Pro 5,5
402+
auto BIOS setup (default)

‎Documentation/sound/alsa/HD-Audio.txt‎

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ override the BIOS setup or to provide more comprehensive features.
138138
The driver checks PCI SSID and looks through the static configuration
139139
table until any matching entry is found. If you have a new machine,
140140
you may see a message like below:
141+
------------------------------------------------------------------------
142+
hda_codec: ALC880: BIOS auto-probing.
143+
------------------------------------------------------------------------
144+
Meanwhile, in the earlier versions, you would see a message like:
141145
------------------------------------------------------------------------
142146
hda_codec: Unknown model for ALC880, trying auto-probe from BIOS...
143147
------------------------------------------------------------------------
@@ -403,6 +407,66 @@ re-configure based on that state, run like below:
403407
------------------------------------------------------------------------
404408

405409

410+
Early Patching
411+
~~~~~~~~~~~~~~
412+
When CONFIG_SND_HDA_PATCH_LOADER=y is set, you can pass a "patch" as a
413+
firmware file for modifying the HD-audio setup before initializing the
414+
codec. This can work basically like the reconfiguration via sysfs in
415+
the above, but it does it before the first codec configuration.
416+
417+
A patch file is a plain text file which looks like below:
418+
419+
------------------------------------------------------------------------
420+
[codec]
421+
0x12345678 0xabcd1234 2
422+
423+
[model]
424+
auto
425+
426+
[pincfg]
427+
0x12 0x411111f0
428+
429+
[verb]
430+
0x20 0x500 0x03
431+
0x20 0x400 0xff
432+
433+
[hint]
434+
hp_detect = yes
435+
------------------------------------------------------------------------
436+
437+
The file needs to have a line `[codec]`. The next line should contain
438+
three numbers indicating the codec vendor-id (0x12345678 in the
439+
example), the codec subsystem-id (0xabcd1234) and the address (2) of
440+
the codec. The rest patch entries are applied to this specified codec
441+
until another codec entry is given.
442+
443+
The `[model]` line allows to change the model name of the each codec.
444+
In the example above, it will be changed to model=auto.
445+
Note that this overrides the module option.
446+
447+
After the `[pincfg]` line, the contents are parsed as the initial
448+
default pin-configurations just like `user_pin_configs` sysfs above.
449+
The values can be shown in user_pin_configs sysfs file, too.
450+
451+
Similarly, the lines after `[verb]` are parsed as `init_verbs`
452+
sysfs entries, and the lines after `[hint]` are parsed as `hints`
453+
sysfs entries, respectively.
454+
455+
The hd-audio driver reads the file via request_firmware(). Thus,
456+
a patch file has to be located on the appropriate firmware path,
457+
typically, /lib/firmware. For example, when you pass the option
458+
`patch=hda-init.fw`, the file /lib/firmware/hda-init-fw must be
459+
present.
460+
461+
The patch module option is specific to each card instance, and you
462+
need to give one file name for each instance, separated by commas.
463+
For example, if you have two cards, one for an on-board analog and one
464+
for an HDMI video board, you may pass patch option like below:
465+
------------------------------------------------------------------------
466+
options snd-hda-intel patch=on-board-patch,hdmi-patch
467+
------------------------------------------------------------------------
468+
469+
406470
Power-Saving
407471
~~~~~~~~~~~~
408472
The power-saving is a kind of auto-suspend of the device. When the

‎arch/arm/mach-omap2/mcbsp.c‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
128128
.rx_irq = INT_24XX_MCBSP1_IRQ_RX,
129129
.tx_irq = INT_24XX_MCBSP1_IRQ_TX,
130130
.ops = &omap2_mcbsp_ops,
131+
.buffer_size = 0x6F,
131132
},
132133
{
133134
.phys_base = OMAP34XX_MCBSP2_BASE,
@@ -136,6 +137,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
136137
.rx_irq = INT_24XX_MCBSP2_IRQ_RX,
137138
.tx_irq = INT_24XX_MCBSP2_IRQ_TX,
138139
.ops = &omap2_mcbsp_ops,
140+
.buffer_size = 0x3FF,
139141
},
140142
{
141143
.phys_base = OMAP34XX_MCBSP3_BASE,
@@ -144,6 +146,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
144146
.rx_irq = INT_24XX_MCBSP3_IRQ_RX,
145147
.tx_irq = INT_24XX_MCBSP3_IRQ_TX,
146148
.ops = &omap2_mcbsp_ops,
149+
.buffer_size = 0x6F,
147150
},
148151
{
149152
.phys_base = OMAP34XX_MCBSP4_BASE,
@@ -152,6 +155,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
152155
.rx_irq = INT_24XX_MCBSP4_IRQ_RX,
153156
.tx_irq = INT_24XX_MCBSP4_IRQ_TX,
154157
.ops = &omap2_mcbsp_ops,
158+
.buffer_size = 0x6F,
155159
},
156160
{
157161
.phys_base = OMAP34XX_MCBSP5_BASE,
@@ -160,6 +164,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
160164
.rx_irq = INT_24XX_MCBSP5_IRQ_RX,
161165
.tx_irq = INT_24XX_MCBSP5_IRQ_TX,
162166
.ops = &omap2_mcbsp_ops,
167+
.buffer_size = 0x6F,
163168
},
164169
};
165170
#define OMAP34XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap34xx_mcbsp_pdata)

‎arch/arm/mach-pxa/include/mach/audio.h‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33

44
#include <sound/core.h>
55
#include <sound/pcm.h>
6+
#include <sound/ac97_codec.h>
67

78
/*
89
* @reset_gpio: AC97 reset gpio (normally gpio113 or gpio95)
910
* a -1 value means no gpio will be used for reset
11+
* @codec_pdata: AC97 codec platform_data
1012
1113
* reset_gpio should only be specified for pxa27x CPUs where a silicon
1214
* bug prevents correct operation of the reset line. If not specified,
@@ -20,6 +22,7 @@ typedef struct {
2022
void (*resume)(void *);
2123
void *priv;
2224
int reset_gpio;
25+
void *codec_pdata[AC97_BUS_MAX_DEVICES];
2326
} pxa2xx_audio_ops_t;
2427

2528
extern void pxa_set_ac97_info(pxa2xx_audio_ops_t *ops);

‎arch/arm/plat-omap/dma.c‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,6 +1127,11 @@ int omap_dma_running(void)
11271127
void omap_dma_link_lch(int lch_head, int lch_queue)
11281128
{
11291129
if (omap_dma_in_1510_mode()) {
1130+
if (lch_head == lch_queue) {
1131+
dma_write(dma_read(CCR(lch_head)) | (3 << 8),
1132+
CCR(lch_head));
1133+
return;
1134+
}
11301135
printk(KERN_ERR "DMA linking is not supported in 1510 mode\n");
11311136
BUG();
11321137
return;
@@ -1149,6 +1154,11 @@ EXPORT_SYMBOL(omap_dma_link_lch);
11491154
void omap_dma_unlink_lch(int lch_head, int lch_queue)
11501155
{
11511156
if (omap_dma_in_1510_mode()) {
1157+
if (lch_head == lch_queue) {
1158+
dma_write(dma_read(CCR(lch_head)) & ~(3 << 8),
1159+
CCR(lch_head));
1160+
return;
1161+
}
11521162
printk(KERN_ERR "DMA linking is not supported in 1510 mode\n");
11531163
BUG();
11541164
return;

0 commit comments

Comments
 (0)