Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 090015ae authored by Takashi Iwai's avatar Takashi Iwai
Browse files

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: default avatarTakashi Iwai <tiwai@suse.de>
parent 6a0f56a7
Loading
Loading
Loading
Loading
+28 −57
Original line number Diff line number Diff line
@@ -433,7 +433,7 @@
  /* chip-specific constructor
   * (see "Management of Cards and Components")
   */
  static int __devinit snd_mychip_create(struct snd_card *card,
  static int snd_mychip_create(struct snd_card *card,
                               struct pci_dev *pci,
                               struct mychip **rchip)
  {
@@ -475,7 +475,7 @@
  }

  /* constructor -- see "Constructor" sub-section */
  static int __devinit snd_mychip_probe(struct pci_dev *pci,
  static int snd_mychip_probe(struct pci_dev *pci,
                              const struct pci_device_id *pci_id)
  {
          static int dev;
@@ -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,7 +1111,7 @@
  }

  /* chip-specific constructor */
  static int __devinit snd_mychip_create(struct snd_card *card,
  static int snd_mychip_create(struct snd_card *card,
                               struct pci_dev *pci,
                               struct mychip **rchip)
  {
@@ -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,7 +5732,7 @@ struct _snd_pcm_runtime {
      <informalexample>
        <programlisting>
<![CDATA[
  static int __devinit snd_mychip_probe(struct pci_dev *pci,
  static int snd_mychip_probe(struct pci_dev *pci,
                              const struct pci_device_id *pci_id)
  {
          ....
@@ -5787,7 +5758,7 @@ struct _snd_pcm_runtime {
      <informalexample>
        <programlisting>
<![CDATA[
  static int __devinit snd_mychip_probe(struct pci_dev *pci,
  static int snd_mychip_probe(struct pci_dev *pci,
                              const struct pci_device_id *pci_id)
  {
          ....
@@ -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,