Loading Documentation/DocBook/Makefile +2 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,8 @@ DOCBOOKS := z8530book.xml mcabook.xml device-drivers.xml \ kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \ mac80211.xml debugobjects.xml sh.xml regulator.xml mac80211.xml debugobjects.xml sh.xml regulator.xml \ alsa-driver-api.xml writing-an-alsa-driver.xml ### # The build process is as follows (targets): Loading Documentation/sound/alsa/DocBook/alsa-driver-api.tmpl→Documentation/DocBook/alsa-driver-api.tmpl +13 −4 Original line number Diff line number Diff line <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> <book> <?dbhtml filename="index.html"> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []> <!-- ****************************************************** --> <!-- Header --> <!-- ****************************************************** --> <book id="ALSA-Driver-API"> <bookinfo> <title>The ALSA Driver API</title> Loading Loading @@ -35,6 +35,8 @@ </bookinfo> <toc></toc> <chapter><title>Management of Cards and Devices</title> <sect1><title>Card Management</title> !Esound/core/init.c Loading Loading @@ -71,6 +73,10 @@ !Esound/pci/ac97/ac97_codec.c !Esound/pci/ac97/ac97_pcm.c </sect1> <sect1><title>Virtual Master Control API</title> !Esound/core/vmaster.c !Iinclude/sound/control.h </sect1> </chapter> <chapter><title>MIDI API</title> <sect1><title>Raw MIDI API</title> Loading @@ -88,6 +94,9 @@ <chapter><title>Miscellaneous Functions</title> <sect1><title>Hardware-Dependent Devices API</title> !Esound/core/hwdep.c </sect1> <sect1><title>Jack Abstraction Layer API</title> !Esound/core/jack.c </sect1> <sect1><title>ISA DMA Helpers</title> !Esound/core/isadma.c Loading Documentation/DocBook/uio-howto.tmpl +25 −4 Original line number Diff line number Diff line Loading @@ -41,6 +41,13 @@ GPL version 2. </abstract> <revhistory> <revision> <revnumber>0.8</revnumber> <date>2008-12-24</date> <authorinitials>hjk</authorinitials> <revremark>Added name attributes in mem and portio sysfs directories. </revremark> </revision> <revision> <revnumber>0.7</revnumber> <date>2008-12-23</date> Loading Loading @@ -303,10 +310,17 @@ interested in translating it, please email me appear if the size of the mapping is not 0. </para> <para> Each <filename>mapX/</filename> directory contains two read-only files that show start address and size of the memory: Each <filename>mapX/</filename> directory contains four read-only files that show attributes of the memory: </para> <itemizedlist> <listitem> <para> <filename>name</filename>: A string identifier for this mapping. This is optional, the string can be empty. Drivers can set this to make it easier for userspace to find the correct mapping. </para> </listitem> <listitem> <para> <filename>addr</filename>: The address of memory that can be mapped. Loading Loading @@ -366,10 +380,17 @@ offset = N * getpagesize(); <filename>/sys/class/uio/uioX/portio/</filename>. </para> <para> Each <filename>portX/</filename> directory contains three read-only files that show start, size, and type of the port region: Each <filename>portX/</filename> directory contains four read-only files that show name, start, size, and type of the port region: </para> <itemizedlist> <listitem> <para> <filename>name</filename>: A string identifier for this port region. The string is optional and can be empty. Drivers can set it to make it easier for userspace to find a certain port region. </para> </listitem> <listitem> <para> <filename>start</filename>: The first port of this region. Loading Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl→Documentation/DocBook/writing-an-alsa-driver.tmpl +29 −23 Original line number Diff line number Diff line <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> <book> <?dbhtml filename="index.html"> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []> <!-- ****************************************************** --> <!-- Header --> <!-- ****************************************************** --> <book id="Writing-an-ALSA-Driver"> <bookinfo> <title>Writing an ALSA Driver</title> <author> Loading Loading @@ -492,9 +492,9 @@ } /* (2) */ card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); if (card == NULL) return -ENOMEM; err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); if (err < 0) return err; /* (3) */ err = snd_mychip_create(card, pci, &chip); Loading Loading @@ -590,8 +590,9 @@ <programlisting> <![CDATA[ struct snd_card *card; int err; .... card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); ]]> </programlisting> </informalexample> Loading Loading @@ -809,26 +810,28 @@ <para> As mentioned above, to create a card instance, call <function>snd_card_new()</function>. <function>snd_card_create()</function>. <informalexample> <programlisting> <![CDATA[ struct snd_card *card; card = snd_card_new(index, id, module, extra_size); int err; err = snd_card_create(index, id, module, extra_size, &card); ]]> </programlisting> </informalexample> </para> <para> The function takes four arguments, the card-index number, the The function takes five arguments, the card-index number, the id string, the module pointer (usually <constant>THIS_MODULE</constant>), and the size of extra-data space. The last argument is used to the size of extra-data space, and the pointer to return the card instance. The extra_size argument is used to allocate card->private_data for the chip-specific data. Note that these data are allocated by <function>snd_card_new()</function>. are allocated by <function>snd_card_create()</function>. </para> </section> Loading Loading @@ -915,15 +918,16 @@ </para> <section id="card-management-chip-specific-snd-card-new"> <title>1. Allocating via <function>snd_card_new()</function>.</title> <title>1. Allocating via <function>snd_card_create()</function>.</title> <para> As mentioned above, you can pass the extra-data-length to the 4th argument of <function>snd_card_new()</function>, i.e. to the 4th argument of <function>snd_card_create()</function>, i.e. <informalexample> <programlisting> <![CDATA[ card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(struct mychip)); err = snd_card_create(index[dev], id[dev], THIS_MODULE, sizeof(struct mychip), &card); ]]> </programlisting> </informalexample> Loading Loading @@ -952,8 +956,8 @@ <para> After allocating a card instance via <function>snd_card_new()</function> (with <constant>NULL</constant> on the 4th arg), call <function>snd_card_create()</function> (with <constant>0</constant> on the 4th arg), call <function>kzalloc()</function>. <informalexample> Loading @@ -961,7 +965,7 @@ <![CDATA[ struct snd_card *card; struct mychip *chip; card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL); err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); ..... chip = kzalloc(sizeof(*chip), GFP_KERNEL); ]]> Loading Loading @@ -5750,8 +5754,9 @@ struct _snd_pcm_runtime { .... struct snd_card *card; struct mychip *chip; int err; .... card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL); err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); .... chip = kzalloc(sizeof(*chip), GFP_KERNEL); .... Loading @@ -5763,7 +5768,7 @@ struct _snd_pcm_runtime { </informalexample> When you created the chip data with <function>snd_card_new()</function>, it's anyway accessible <function>snd_card_create()</function>, it's anyway accessible via <structfield>private_data</structfield> field. <informalexample> Loading @@ -5775,9 +5780,10 @@ struct _snd_pcm_runtime { .... struct snd_card *card; struct mychip *chip; int err; .... card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(struct mychip)); err = snd_card_create(index[dev], id[dev], THIS_MODULE, sizeof(struct mychip), &card); .... chip = card->private_data; .... Loading Documentation/cpu-freq/governors.txt +22 −4 Original line number Diff line number Diff line Loading @@ -117,10 +117,28 @@ accessible parameters: sampling_rate: measured in uS (10^-6 seconds), this is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. show_sampling_rate_(min|max): the minimum and maximum sampling rates available that you may set 'sampling_rate' to. around '10000' or more. It's default value is (cmp. with users-guide.txt): transition_latency * 1000 The lowest value you can set is: transition_latency * 100 or it may get restricted to a value where it makes not sense for the kernel anymore to poll that often which depends on your HZ config variable (HZ=1000: max=20000us, HZ=250: max=5000). Be aware that transition latency is in ns and sampling_rate is in us, so you get the same sysfs value by default. Sampling rate should always get adjusted considering the transition latency To set the sampling rate 750 times as high as the transition latency in the bash (as said, 1000 is default), do: echo `$(($(cat cpuinfo_transition_latency) * 750 / 1000)) \ >ondemand/sampling_rate show_sampling_rate_(min|max): THIS INTERFACE IS DEPRECATED, DON'T USE IT. You can use wider ranges now and the general cpuinfo_transition_latency variable (cmp. with user-guide.txt) can be used to obtain exactly the same info: show_sampling_rate_min = transtition_latency * 500 / 1000 show_sampling_rate_max = transtition_latency * 500000 / 1000 (divided by 1000 is to illustrate that sampling rate is in us and transition latency is exported ns). up_threshold: defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on Loading Loading
Documentation/DocBook/Makefile +2 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,8 @@ DOCBOOKS := z8530book.xml mcabook.xml device-drivers.xml \ kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \ mac80211.xml debugobjects.xml sh.xml regulator.xml mac80211.xml debugobjects.xml sh.xml regulator.xml \ alsa-driver-api.xml writing-an-alsa-driver.xml ### # The build process is as follows (targets): Loading
Documentation/sound/alsa/DocBook/alsa-driver-api.tmpl→Documentation/DocBook/alsa-driver-api.tmpl +13 −4 Original line number Diff line number Diff line <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> <book> <?dbhtml filename="index.html"> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []> <!-- ****************************************************** --> <!-- Header --> <!-- ****************************************************** --> <book id="ALSA-Driver-API"> <bookinfo> <title>The ALSA Driver API</title> Loading Loading @@ -35,6 +35,8 @@ </bookinfo> <toc></toc> <chapter><title>Management of Cards and Devices</title> <sect1><title>Card Management</title> !Esound/core/init.c Loading Loading @@ -71,6 +73,10 @@ !Esound/pci/ac97/ac97_codec.c !Esound/pci/ac97/ac97_pcm.c </sect1> <sect1><title>Virtual Master Control API</title> !Esound/core/vmaster.c !Iinclude/sound/control.h </sect1> </chapter> <chapter><title>MIDI API</title> <sect1><title>Raw MIDI API</title> Loading @@ -88,6 +94,9 @@ <chapter><title>Miscellaneous Functions</title> <sect1><title>Hardware-Dependent Devices API</title> !Esound/core/hwdep.c </sect1> <sect1><title>Jack Abstraction Layer API</title> !Esound/core/jack.c </sect1> <sect1><title>ISA DMA Helpers</title> !Esound/core/isadma.c Loading
Documentation/DocBook/uio-howto.tmpl +25 −4 Original line number Diff line number Diff line Loading @@ -41,6 +41,13 @@ GPL version 2. </abstract> <revhistory> <revision> <revnumber>0.8</revnumber> <date>2008-12-24</date> <authorinitials>hjk</authorinitials> <revremark>Added name attributes in mem and portio sysfs directories. </revremark> </revision> <revision> <revnumber>0.7</revnumber> <date>2008-12-23</date> Loading Loading @@ -303,10 +310,17 @@ interested in translating it, please email me appear if the size of the mapping is not 0. </para> <para> Each <filename>mapX/</filename> directory contains two read-only files that show start address and size of the memory: Each <filename>mapX/</filename> directory contains four read-only files that show attributes of the memory: </para> <itemizedlist> <listitem> <para> <filename>name</filename>: A string identifier for this mapping. This is optional, the string can be empty. Drivers can set this to make it easier for userspace to find the correct mapping. </para> </listitem> <listitem> <para> <filename>addr</filename>: The address of memory that can be mapped. Loading Loading @@ -366,10 +380,17 @@ offset = N * getpagesize(); <filename>/sys/class/uio/uioX/portio/</filename>. </para> <para> Each <filename>portX/</filename> directory contains three read-only files that show start, size, and type of the port region: Each <filename>portX/</filename> directory contains four read-only files that show name, start, size, and type of the port region: </para> <itemizedlist> <listitem> <para> <filename>name</filename>: A string identifier for this port region. The string is optional and can be empty. Drivers can set it to make it easier for userspace to find a certain port region. </para> </listitem> <listitem> <para> <filename>start</filename>: The first port of this region. Loading
Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl→Documentation/DocBook/writing-an-alsa-driver.tmpl +29 −23 Original line number Diff line number Diff line <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> <book> <?dbhtml filename="index.html"> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []> <!-- ****************************************************** --> <!-- Header --> <!-- ****************************************************** --> <book id="Writing-an-ALSA-Driver"> <bookinfo> <title>Writing an ALSA Driver</title> <author> Loading Loading @@ -492,9 +492,9 @@ } /* (2) */ card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); if (card == NULL) return -ENOMEM; err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); if (err < 0) return err; /* (3) */ err = snd_mychip_create(card, pci, &chip); Loading Loading @@ -590,8 +590,9 @@ <programlisting> <![CDATA[ struct snd_card *card; int err; .... card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); ]]> </programlisting> </informalexample> Loading Loading @@ -809,26 +810,28 @@ <para> As mentioned above, to create a card instance, call <function>snd_card_new()</function>. <function>snd_card_create()</function>. <informalexample> <programlisting> <![CDATA[ struct snd_card *card; card = snd_card_new(index, id, module, extra_size); int err; err = snd_card_create(index, id, module, extra_size, &card); ]]> </programlisting> </informalexample> </para> <para> The function takes four arguments, the card-index number, the The function takes five arguments, the card-index number, the id string, the module pointer (usually <constant>THIS_MODULE</constant>), and the size of extra-data space. The last argument is used to the size of extra-data space, and the pointer to return the card instance. The extra_size argument is used to allocate card->private_data for the chip-specific data. Note that these data are allocated by <function>snd_card_new()</function>. are allocated by <function>snd_card_create()</function>. </para> </section> Loading Loading @@ -915,15 +918,16 @@ </para> <section id="card-management-chip-specific-snd-card-new"> <title>1. Allocating via <function>snd_card_new()</function>.</title> <title>1. Allocating via <function>snd_card_create()</function>.</title> <para> As mentioned above, you can pass the extra-data-length to the 4th argument of <function>snd_card_new()</function>, i.e. to the 4th argument of <function>snd_card_create()</function>, i.e. <informalexample> <programlisting> <![CDATA[ card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(struct mychip)); err = snd_card_create(index[dev], id[dev], THIS_MODULE, sizeof(struct mychip), &card); ]]> </programlisting> </informalexample> Loading Loading @@ -952,8 +956,8 @@ <para> After allocating a card instance via <function>snd_card_new()</function> (with <constant>NULL</constant> on the 4th arg), call <function>snd_card_create()</function> (with <constant>0</constant> on the 4th arg), call <function>kzalloc()</function>. <informalexample> Loading @@ -961,7 +965,7 @@ <![CDATA[ struct snd_card *card; struct mychip *chip; card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL); err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); ..... chip = kzalloc(sizeof(*chip), GFP_KERNEL); ]]> Loading Loading @@ -5750,8 +5754,9 @@ struct _snd_pcm_runtime { .... struct snd_card *card; struct mychip *chip; int err; .... card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL); err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); .... chip = kzalloc(sizeof(*chip), GFP_KERNEL); .... Loading @@ -5763,7 +5768,7 @@ struct _snd_pcm_runtime { </informalexample> When you created the chip data with <function>snd_card_new()</function>, it's anyway accessible <function>snd_card_create()</function>, it's anyway accessible via <structfield>private_data</structfield> field. <informalexample> Loading @@ -5775,9 +5780,10 @@ struct _snd_pcm_runtime { .... struct snd_card *card; struct mychip *chip; int err; .... card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(struct mychip)); err = snd_card_create(index[dev], id[dev], THIS_MODULE, sizeof(struct mychip), &card); .... chip = card->private_data; .... Loading
Documentation/cpu-freq/governors.txt +22 −4 Original line number Diff line number Diff line Loading @@ -117,10 +117,28 @@ accessible parameters: sampling_rate: measured in uS (10^-6 seconds), this is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. Typically this is set to values of around '10000' or more. show_sampling_rate_(min|max): the minimum and maximum sampling rates available that you may set 'sampling_rate' to. around '10000' or more. It's default value is (cmp. with users-guide.txt): transition_latency * 1000 The lowest value you can set is: transition_latency * 100 or it may get restricted to a value where it makes not sense for the kernel anymore to poll that often which depends on your HZ config variable (HZ=1000: max=20000us, HZ=250: max=5000). Be aware that transition latency is in ns and sampling_rate is in us, so you get the same sysfs value by default. Sampling rate should always get adjusted considering the transition latency To set the sampling rate 750 times as high as the transition latency in the bash (as said, 1000 is default), do: echo `$(($(cat cpuinfo_transition_latency) * 750 / 1000)) \ >ondemand/sampling_rate show_sampling_rate_(min|max): THIS INTERFACE IS DEPRECATED, DON'T USE IT. You can use wider ranges now and the general cpuinfo_transition_latency variable (cmp. with user-guide.txt) can be used to obtain exactly the same info: show_sampling_rate_min = transtition_latency * 500 / 1000 show_sampling_rate_max = transtition_latency * 500000 / 1000 (divided by 1000 is to illustrate that sampling rate is in us and transition latency is exported ns). up_threshold: defines what the average CPU usage between the samplings of 'sampling_rate' needs to be for the kernel to make a decision on Loading