diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 29 | ||||
-rw-r--r-- | Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | 56 |
2 files changed, 35 insertions, 50 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 13cba955cb5a..2f27f391c7cc 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -167,7 +167,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
167 | spdif - Support SPDIF I/O | 167 | spdif - Support SPDIF I/O |
168 | - Default: disabled | 168 | - Default: disabled |
169 | 169 | ||
170 | Module supports autoprobe and multiple chips (max 8). | 170 | This module supports one chip and autoprobe. |
171 | 171 | ||
172 | The power-management is supported. | 172 | The power-management is supported. |
173 | 173 | ||
@@ -206,7 +206,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
206 | See "AC97 Quirk Option" section below. | 206 | See "AC97 Quirk Option" section below. |
207 | spdif_aclink - S/PDIF transfer over AC-link (default = 1) | 207 | spdif_aclink - S/PDIF transfer over AC-link (default = 1) |
208 | 208 | ||
209 | This module supports up to 8 cards and autoprobe. | 209 | This module supports one card and autoprobe. |
210 | 210 | ||
211 | ATI IXP has two different methods to control SPDIF output. One is | 211 | ATI IXP has two different methods to control SPDIF output. One is |
212 | over AC-link and another is over the "direct" SPDIF output. The | 212 | over AC-link and another is over the "direct" SPDIF output. The |
@@ -218,7 +218,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
218 | 218 | ||
219 | Module for ATI IXP 150/200/250 AC97 modem controllers. | 219 | Module for ATI IXP 150/200/250 AC97 modem controllers. |
220 | 220 | ||
221 | Module supports up to 8 cards. | 221 | This module supports one card and autoprobe. |
222 | 222 | ||
223 | Note: The default index value of this module is -2, i.e. the first | 223 | Note: The default index value of this module is -2, i.e. the first |
224 | slot is excluded. | 224 | slot is excluded. |
@@ -637,7 +637,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
637 | model - force the model name | 637 | model - force the model name |
638 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) | 638 | position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) |
639 | 639 | ||
640 | Module supports up to 8 cards. | 640 | This module supports one card and autoprobe. |
641 | 641 | ||
642 | Each codec may have a model table for different configurations. | 642 | Each codec may have a model table for different configurations. |
643 | If your machine isn't listed there, the default (usually minimal) | 643 | If your machine isn't listed there, the default (usually minimal) |
@@ -663,6 +663,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
663 | adjusted. Appearing only when compiled with | 663 | adjusted. Appearing only when compiled with |
664 | $CONFIG_SND_DEBUG=y | 664 | $CONFIG_SND_DEBUG=y |
665 | 665 | ||
666 | ALC260 | ||
667 | hp HP machines | ||
668 | fujitsu Fujitsu S7020 | ||
669 | |||
666 | CMI9880 | 670 | CMI9880 |
667 | minimal 3-jack in back | 671 | minimal 3-jack in back |
668 | min_fp 3-jack in back, 2-jack in front | 672 | min_fp 3-jack in back, 2-jack in front |
@@ -811,7 +815,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
811 | semaphores (e.g. on some ASUS laptops) | 815 | semaphores (e.g. on some ASUS laptops) |
812 | (default off) | 816 | (default off) |
813 | 817 | ||
814 | Module supports autoprobe and multiple bus-master chips (max 8). | 818 | This module supports one chip and autoprobe. |
815 | 819 | ||
816 | Note: the latest driver supports auto-detection of chip clock. | 820 | Note: the latest driver supports auto-detection of chip clock. |
817 | if you still encounter too fast playback, specify the clock | 821 | if you still encounter too fast playback, specify the clock |
@@ -830,7 +834,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
830 | 834 | ||
831 | ac97_clock - AC'97 codec clock base (0 = auto-detect) | 835 | ac97_clock - AC'97 codec clock base (0 = auto-detect) |
832 | 836 | ||
833 | This module supports up to 8 cards and autoprobe. | 837 | This module supports one card and autoprobe. |
834 | 838 | ||
835 | Note: The default index value of this module is -2, i.e. the first | 839 | Note: The default index value of this module is -2, i.e. the first |
836 | slot is excluded. | 840 | slot is excluded. |
@@ -950,8 +954,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
950 | use_cache - 0 or 1 (disabled by default) | 954 | use_cache - 0 or 1 (disabled by default) |
951 | vaio_hack - alias buffer_top=0x25a800 | 955 | vaio_hack - alias buffer_top=0x25a800 |
952 | reset_workaround - enable AC97 RESET workaround for some laptops | 956 | reset_workaround - enable AC97 RESET workaround for some laptops |
957 | reset_workaround2 - enable extended AC97 RESET workaround for some | ||
958 | other laptops | ||
953 | 959 | ||
954 | Module supports autoprobe and multiple chips (max 8). | 960 | This module supports one chip and autoprobe. |
955 | 961 | ||
956 | The power-management is supported. | 962 | The power-management is supported. |
957 | 963 | ||
@@ -980,6 +986,11 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
980 | workaround is enabled automatically. For other laptops with a | 986 | workaround is enabled automatically. For other laptops with a |
981 | hard freeze, you can try reset_workaround=1 option. | 987 | hard freeze, you can try reset_workaround=1 option. |
982 | 988 | ||
989 | Note: Dell Latitude CSx laptops have another problem regarding | ||
990 | AC97 RESET. On these laptops, reset_workaround2 option is | ||
991 | turned on as default. This option is worth to try if the | ||
992 | previous reset_workaround option doesn't help. | ||
993 | |||
983 | Note: This driver is really crappy. It's a porting from the | 994 | Note: This driver is really crappy. It's a porting from the |
984 | OSS driver, which is a result of black-magic reverse engineering. | 995 | OSS driver, which is a result of black-magic reverse engineering. |
985 | The detection of codec will fail if the driver is loaded *after* | 996 | The detection of codec will fail if the driver is loaded *after* |
@@ -1310,7 +1321,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1310 | ac97_quirk - AC'97 workaround for strange hardware | 1321 | ac97_quirk - AC'97 workaround for strange hardware |
1311 | See "AC97 Quirk Option" section below. | 1322 | See "AC97 Quirk Option" section below. |
1312 | 1323 | ||
1313 | Module supports autoprobe and multiple bus-master chips (max 8). | 1324 | This module supports one chip and autoprobe. |
1314 | 1325 | ||
1315 | Note: on some SMP motherboards like MSI 694D the interrupts might | 1326 | Note: on some SMP motherboards like MSI 694D the interrupts might |
1316 | not be generated properly. In such a case, please try to | 1327 | not be generated properly. In such a case, please try to |
@@ -1352,7 +1363,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1352 | 1363 | ||
1353 | ac97_clock - AC'97 codec clock base (default 48000Hz) | 1364 | ac97_clock - AC'97 codec clock base (default 48000Hz) |
1354 | 1365 | ||
1355 | Module supports up to 8 cards. | 1366 | This module supports one card and autoprobe. |
1356 | 1367 | ||
1357 | Note: The default index value of this module is -2, i.e. the first | 1368 | Note: The default index value of this module is -2, i.e. the first |
1358 | slot is excluded. | 1369 | slot is excluded. |
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl index 24e85520890b..260334c98d95 100644 --- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl +++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | |||
@@ -18,8 +18,8 @@ | |||
18 | </affiliation> | 18 | </affiliation> |
19 | </author> | 19 | </author> |
20 | 20 | ||
21 | <date>March 6, 2005</date> | 21 | <date>October 6, 2005</date> |
22 | <edition>0.3.4</edition> | 22 | <edition>0.3.5</edition> |
23 | 23 | ||
24 | <abstract> | 24 | <abstract> |
25 | <para> | 25 | <para> |
@@ -30,7 +30,7 @@ | |||
30 | 30 | ||
31 | <legalnotice> | 31 | <legalnotice> |
32 | <para> | 32 | <para> |
33 | Copyright (c) 2002-2004 Takashi Iwai <email>tiwai@suse.de</email> | 33 | Copyright (c) 2002-2005 Takashi Iwai <email>tiwai@suse.de</email> |
34 | </para> | 34 | </para> |
35 | 35 | ||
36 | <para> | 36 | <para> |
@@ -1433,25 +1433,10 @@ | |||
1433 | <informalexample> | 1433 | <informalexample> |
1434 | <programlisting> | 1434 | <programlisting> |
1435 | <![CDATA[ | 1435 | <![CDATA[ |
1436 | if (chip->res_port) { | 1436 | release_and_free_resource(chip->res_port); |
1437 | release_resource(chip->res_port); | ||
1438 | kfree_nocheck(chip->res_port); | ||
1439 | } | ||
1440 | ]]> | 1437 | ]]> |
1441 | </programlisting> | 1438 | </programlisting> |
1442 | </informalexample> | 1439 | </informalexample> |
1443 | |||
1444 | As you can see, the resource pointer is also to be freed | ||
1445 | via <function>kfree_nocheck()</function> after | ||
1446 | <function>release_resource()</function> is called. You | ||
1447 | cannot use <function>kfree()</function> here, because on ALSA, | ||
1448 | <function>kfree()</function> may be a wrapper to its own | ||
1449 | allocator with the memory debugging. Since the resource pointer | ||
1450 | is allocated externally outside the ALSA, it must be released | ||
1451 | via the native | ||
1452 | <function>kfree()</function>. | ||
1453 | <function>kfree_nocheck()</function> is used for that; it calls | ||
1454 | the native <function>kfree()</function> without wrapper. | ||
1455 | </para> | 1440 | </para> |
1456 | 1441 | ||
1457 | <para> | 1442 | <para> |
@@ -2190,8 +2175,7 @@ struct _snd_pcm_runtime { | |||
2190 | unsigned int rate_den; | 2175 | unsigned int rate_den; |
2191 | 2176 | ||
2192 | /* -- SW params -- */ | 2177 | /* -- SW params -- */ |
2193 | int tstamp_timespec; /* use timeval (0) or timespec (1) */ | 2178 | struct timespec tstamp_mode; /* mmap timestamp is updated */ |
2194 | snd_pcm_tstamp_t tstamp_mode; /* mmap timestamp is updated */ | ||
2195 | unsigned int period_step; | 2179 | unsigned int period_step; |
2196 | unsigned int sleep_min; /* min ticks to sleep */ | 2180 | unsigned int sleep_min; /* min ticks to sleep */ |
2197 | snd_pcm_uframes_t xfer_align; /* xfer size need to be a multiple */ | 2181 | snd_pcm_uframes_t xfer_align; /* xfer size need to be a multiple */ |
@@ -3709,8 +3693,7 @@ struct _snd_pcm_runtime { | |||
3709 | <para> | 3693 | <para> |
3710 | Here, the chip instance is retrieved via | 3694 | Here, the chip instance is retrieved via |
3711 | <function>snd_kcontrol_chip()</function> macro. This macro | 3695 | <function>snd_kcontrol_chip()</function> macro. This macro |
3712 | converts from kcontrol->private_data to the type defined by | 3696 | just accesses to kcontrol->private_data. The |
3713 | <type>chip_t</type>. The | ||
3714 | kcontrol->private_data field is | 3697 | kcontrol->private_data field is |
3715 | given as the argument of <function>snd_ctl_new()</function> | 3698 | given as the argument of <function>snd_ctl_new()</function> |
3716 | (see the later subsection | 3699 | (see the later subsection |
@@ -5998,32 +5981,23 @@ struct _snd_pcm_runtime { | |||
5998 | The first argument is the expression to evaluate, and the | 5981 | The first argument is the expression to evaluate, and the |
5999 | second argument is the action if it fails. When | 5982 | second argument is the action if it fails. When |
6000 | <constant>CONFIG_SND_DEBUG</constant>, is set, it will show an | 5983 | <constant>CONFIG_SND_DEBUG</constant>, is set, it will show an |
6001 | error message such as <computeroutput>BUG? (xxx) (called from | 5984 | error message such as <computeroutput>BUG? (xxx)</computeroutput> |
6002 | yyy)</computeroutput>. When no debug flag is set, this is | 5985 | together with stack trace. |
6003 | ignored. | ||
6004 | </para> | 5986 | </para> |
6005 | </section> | ||
6006 | |||
6007 | <section id="useful-functions-snd-runtime-check"> | ||
6008 | <title><function>snd_runtime_check()</function></title> | ||
6009 | <para> | 5987 | <para> |
6010 | This macro is quite similar with | 5988 | When no debug flag is set, this macro is ignored. |
6011 | <function>snd_assert()</function>. Unlike | ||
6012 | <function>snd_assert()</function>, the expression is always | ||
6013 | evaluated regardless of | ||
6014 | <constant>CONFIG_SND_DEBUG</constant>. When | ||
6015 | <constant>CONFIG_SND_DEBUG</constant> is set, the macro will | ||
6016 | show a message like <computeroutput>ERROR (xx) (called from | ||
6017 | yyy)</computeroutput>. | ||
6018 | </para> | 5989 | </para> |
6019 | </section> | 5990 | </section> |
6020 | 5991 | ||
6021 | <section id="useful-functions-snd-bug"> | 5992 | <section id="useful-functions-snd-bug"> |
6022 | <title><function>snd_BUG()</function></title> | 5993 | <title><function>snd_BUG()</function></title> |
6023 | <para> | 5994 | <para> |
6024 | It calls <function>snd_assert(0,)</function> -- that is, just | 5995 | It shows <computeroutput>BUG?</computeroutput> message and |
6025 | prints the error message at the point. It's useful to show that | 5996 | stack trace as well as <function>snd_assert</function> at the point. |
6026 | a fatal error happens there. | 5997 | It's useful to show that a fatal error happens there. |
5998 | </para> | ||
5999 | <para> | ||
6000 | When no debug flag is set, this macro is ignored. | ||
6027 | </para> | 6001 | </para> |
6028 | </section> | 6002 | </section> |
6029 | </chapter> | 6003 | </chapter> |