mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 15:54:15 +08:00
ALSA: DocBook: Remove the description of __dev*
Remove obsoleted __devinit* and __devexit* from the example codes and the descriptions, or modified the descriptions a bit to match with the current situation. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
6a0f56a784
commit
090015aeef
@ -433,9 +433,9 @@
|
||||
/* chip-specific constructor
|
||||
* (see "Management of Cards and Components")
|
||||
*/
|
||||
static int __devinit snd_mychip_create(struct snd_card *card,
|
||||
struct pci_dev *pci,
|
||||
struct mychip **rchip)
|
||||
static int snd_mychip_create(struct snd_card *card,
|
||||
struct pci_dev *pci,
|
||||
struct mychip **rchip)
|
||||
{
|
||||
struct mychip *chip;
|
||||
int err;
|
||||
@ -475,8 +475,8 @@
|
||||
}
|
||||
|
||||
/* constructor -- see "Constructor" sub-section */
|
||||
static int __devinit snd_mychip_probe(struct pci_dev *pci,
|
||||
const struct pci_device_id *pci_id)
|
||||
static int snd_mychip_probe(struct pci_dev *pci,
|
||||
const struct pci_device_id *pci_id)
|
||||
{
|
||||
static int dev;
|
||||
struct snd_card *card;
|
||||
@ -526,7 +526,7 @@
|
||||
}
|
||||
|
||||
/* destructor -- see the "Destructor" sub-section */
|
||||
static void __devexit snd_mychip_remove(struct pci_dev *pci)
|
||||
static void snd_mychip_remove(struct pci_dev *pci)
|
||||
{
|
||||
snd_card_free(pci_get_drvdata(pci));
|
||||
pci_set_drvdata(pci, NULL);
|
||||
@ -542,9 +542,8 @@
|
||||
<para>
|
||||
The real constructor of PCI drivers is the <function>probe</function> callback.
|
||||
The <function>probe</function> callback and other component-constructors which are called
|
||||
from the <function>probe</function> callback should be defined with
|
||||
the <parameter>__devinit</parameter> prefix. You
|
||||
cannot use the <parameter>__init</parameter> prefix for them,
|
||||
from the <function>probe</function> callback cannot be used with
|
||||
the <parameter>__init</parameter> prefix
|
||||
because any PCI device could be a hotplug device.
|
||||
</para>
|
||||
|
||||
@ -728,7 +727,7 @@
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
static void __devexit snd_mychip_remove(struct pci_dev *pci)
|
||||
static void snd_mychip_remove(struct pci_dev *pci)
|
||||
{
|
||||
snd_card_free(pci_get_drvdata(pci));
|
||||
pci_set_drvdata(pci, NULL);
|
||||
@ -1058,14 +1057,6 @@
|
||||
components are released automatically by this call.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
As further notes, the destructors (both
|
||||
<function>snd_mychip_dev_free</function> and
|
||||
<function>snd_mychip_free</function>) cannot be defined with
|
||||
the <parameter>__devexit</parameter> prefix, because they may be
|
||||
called from the constructor, too, at the false path.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For a device which allows hotplugging, you can use
|
||||
<function>snd_card_free_when_closed</function>. This one will
|
||||
@ -1120,9 +1111,9 @@
|
||||
}
|
||||
|
||||
/* chip-specific constructor */
|
||||
static int __devinit snd_mychip_create(struct snd_card *card,
|
||||
struct pci_dev *pci,
|
||||
struct mychip **rchip)
|
||||
static int snd_mychip_create(struct snd_card *card,
|
||||
struct pci_dev *pci,
|
||||
struct mychip **rchip)
|
||||
{
|
||||
struct mychip *chip;
|
||||
int err;
|
||||
@ -1200,7 +1191,7 @@
|
||||
.name = KBUILD_MODNAME,
|
||||
.id_table = snd_mychip_ids,
|
||||
.probe = snd_mychip_probe,
|
||||
.remove = __devexit_p(snd_mychip_remove),
|
||||
.remove = snd_mychip_remove,
|
||||
};
|
||||
|
||||
/* module initialization */
|
||||
@ -1464,11 +1455,6 @@
|
||||
</informalexample>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Again, remember that you cannot
|
||||
use the <parameter>__devexit</parameter> prefix for this destructor.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
We didn't implement the hardware disabling part in the above.
|
||||
If you need to do this, please note that the destructor may be
|
||||
@ -1619,7 +1605,7 @@
|
||||
.name = KBUILD_MODNAME,
|
||||
.id_table = snd_mychip_ids,
|
||||
.probe = snd_mychip_probe,
|
||||
.remove = __devexit_p(snd_mychip_remove),
|
||||
.remove = snd_mychip_remove,
|
||||
};
|
||||
]]>
|
||||
</programlisting>
|
||||
@ -1630,11 +1616,7 @@
|
||||
The <structfield>probe</structfield> and
|
||||
<structfield>remove</structfield> functions have already
|
||||
been defined in the previous sections.
|
||||
The <structfield>remove</structfield> function should
|
||||
be defined with the
|
||||
<function>__devexit_p()</function> macro, so that it's not
|
||||
defined for built-in (and non-hot-pluggable) case. The
|
||||
<structfield>name</structfield>
|
||||
The <structfield>name</structfield>
|
||||
field is the name string of this device. Note that you must not
|
||||
use a slash <quote>/</quote> in this string.
|
||||
</para>
|
||||
@ -1665,9 +1647,7 @@
|
||||
<para>
|
||||
Note that these module entries are tagged with
|
||||
<parameter>__init</parameter> and
|
||||
<parameter>__exit</parameter> prefixes, not
|
||||
<parameter>__devinit</parameter> nor
|
||||
<parameter>__devexit</parameter>.
|
||||
<parameter>__exit</parameter> prefixes.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -1918,7 +1898,7 @@
|
||||
*/
|
||||
|
||||
/* create a pcm device */
|
||||
static int __devinit snd_mychip_new_pcm(struct mychip *chip)
|
||||
static int snd_mychip_new_pcm(struct mychip *chip)
|
||||
{
|
||||
struct snd_pcm *pcm;
|
||||
int err;
|
||||
@ -1957,7 +1937,7 @@
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
static int __devinit snd_mychip_new_pcm(struct mychip *chip)
|
||||
static int snd_mychip_new_pcm(struct mychip *chip)
|
||||
{
|
||||
struct snd_pcm *pcm;
|
||||
int err;
|
||||
@ -2124,7 +2104,7 @@
|
||||
....
|
||||
}
|
||||
|
||||
static int __devinit snd_mychip_new_pcm(struct mychip *chip)
|
||||
static int snd_mychip_new_pcm(struct mychip *chip)
|
||||
{
|
||||
struct snd_pcm *pcm;
|
||||
....
|
||||
@ -3399,7 +3379,7 @@ struct _snd_pcm_runtime {
|
||||
<title>Definition of a Control</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
static struct snd_kcontrol_new my_control __devinitdata = {
|
||||
static struct snd_kcontrol_new my_control = {
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = "PCM Playback Switch",
|
||||
.index = 0,
|
||||
@ -3414,13 +3394,6 @@ struct _snd_pcm_runtime {
|
||||
</example>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Most likely the control is created via
|
||||
<function>snd_ctl_new1()</function>, and in such a case, you can
|
||||
add the <parameter>__devinitdata</parameter> prefix to the
|
||||
definition as above.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <structfield>iface</structfield> field specifies the control
|
||||
type, <constant>SNDRV_CTL_ELEM_IFACE_XXX</constant>, which
|
||||
@ -3847,10 +3820,8 @@ struct _snd_pcm_runtime {
|
||||
|
||||
<para>
|
||||
<function>snd_ctl_new1()</function> allocates a new
|
||||
<structname>snd_kcontrol</structname> instance (that's why the definition
|
||||
of <parameter>my_control</parameter> can be with
|
||||
the <parameter>__devinitdata</parameter>
|
||||
prefix), and <function>snd_ctl_add</function> assigns the given
|
||||
<structname>snd_kcontrol</structname> instance,
|
||||
and <function>snd_ctl_add</function> assigns the given
|
||||
control component to the card.
|
||||
</para>
|
||||
</section>
|
||||
@ -3896,7 +3867,7 @@ struct _snd_pcm_runtime {
|
||||
<![CDATA[
|
||||
static DECLARE_TLV_DB_SCALE(db_scale_my_control, -4050, 150, 0);
|
||||
|
||||
static struct snd_kcontrol_new my_control __devinitdata = {
|
||||
static struct snd_kcontrol_new my_control = {
|
||||
...
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
|
||||
SNDRV_CTL_ELEM_ACCESS_TLV_READ,
|
||||
@ -5761,8 +5732,8 @@ struct _snd_pcm_runtime {
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
static int __devinit snd_mychip_probe(struct pci_dev *pci,
|
||||
const struct pci_device_id *pci_id)
|
||||
static int snd_mychip_probe(struct pci_dev *pci,
|
||||
const struct pci_device_id *pci_id)
|
||||
{
|
||||
....
|
||||
struct snd_card *card;
|
||||
@ -5787,8 +5758,8 @@ struct _snd_pcm_runtime {
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
static int __devinit snd_mychip_probe(struct pci_dev *pci,
|
||||
const struct pci_device_id *pci_id)
|
||||
static int snd_mychip_probe(struct pci_dev *pci,
|
||||
const struct pci_device_id *pci_id)
|
||||
{
|
||||
....
|
||||
struct snd_card *card;
|
||||
@ -5825,7 +5796,7 @@ struct _snd_pcm_runtime {
|
||||
.name = KBUILD_MODNAME,
|
||||
.id_table = snd_my_ids,
|
||||
.probe = snd_my_probe,
|
||||
.remove = __devexit_p(snd_my_remove),
|
||||
.remove = snd_my_remove,
|
||||
#ifdef CONFIG_PM
|
||||
.suspend = snd_my_suspend,
|
||||
.resume = snd_my_resume,
|
||||
|
Loading…
Reference in New Issue
Block a user