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 Original line Diff line number Diff line
@@ -433,7 +433,7 @@
  /* chip-specific constructor
  /* chip-specific constructor
   * (see "Management of Cards and Components")
   * (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 pci_dev *pci,
                               struct mychip **rchip)
                               struct mychip **rchip)
  {
  {
@@ -475,7 +475,7 @@
  }
  }


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


  /* destructor -- see the "Destructor" sub-section */
  /* 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));
          snd_card_free(pci_get_drvdata(pci));
          pci_set_drvdata(pci, NULL);
          pci_set_drvdata(pci, NULL);
@@ -542,9 +542,8 @@
      <para>
      <para>
        The real constructor of PCI drivers is the <function>probe</function> callback.
        The real constructor of PCI drivers is the <function>probe</function> callback.
      The <function>probe</function> callback and other component-constructors which are called
      The <function>probe</function> callback and other component-constructors which are called
      from the <function>probe</function> callback should be defined with
      from the <function>probe</function> callback cannot be used with
      the <parameter>__devinit</parameter> prefix. You 
      the <parameter>__init</parameter> prefix
      cannot use the <parameter>__init</parameter> prefix for them,
      because any PCI device could be a hotplug device. 
      because any PCI device could be a hotplug device. 
      </para>
      </para>


@@ -728,7 +727,7 @@
        <informalexample>
        <informalexample>
          <programlisting>
          <programlisting>
<![CDATA[
<![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));
          snd_card_free(pci_get_drvdata(pci));
          pci_set_drvdata(pci, NULL);
          pci_set_drvdata(pci, NULL);
@@ -1058,14 +1057,6 @@
      components are released automatically by this call. 
      components are released automatically by this call. 
      </para>
      </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>
      <para>
      For a device which allows hotplugging, you can use
      For a device which allows hotplugging, you can use
      <function>snd_card_free_when_closed</function>.  This one will
      <function>snd_card_free_when_closed</function>.  This one will
@@ -1120,7 +1111,7 @@
  }
  }


  /* chip-specific constructor */
  /* 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 pci_dev *pci,
                               struct mychip **rchip)
                               struct mychip **rchip)
  {
  {
@@ -1200,7 +1191,7 @@
          .name = KBUILD_MODNAME,
          .name = KBUILD_MODNAME,
          .id_table = snd_mychip_ids,
          .id_table = snd_mychip_ids,
          .probe = snd_mychip_probe,
          .probe = snd_mychip_probe,
          .remove = __devexit_p(snd_mychip_remove),
          .remove = snd_mychip_remove,
  };
  };


  /* module initialization */
  /* module initialization */
@@ -1464,11 +1455,6 @@
        </informalexample>
        </informalexample>
      </para>
      </para>


      <para>
      Again, remember that you cannot
      use the <parameter>__devexit</parameter> prefix for this destructor. 
      </para>

      <para>
      <para>
      We didn't implement the hardware disabling part in the above.
      We didn't implement the hardware disabling part in the above.
      If you need to do this, please note that the destructor may be
      If you need to do this, please note that the destructor may be
@@ -1619,7 +1605,7 @@
          .name = KBUILD_MODNAME,
          .name = KBUILD_MODNAME,
          .id_table = snd_mychip_ids,
          .id_table = snd_mychip_ids,
          .probe = snd_mychip_probe,
          .probe = snd_mychip_probe,
          .remove = __devexit_p(snd_mychip_remove),
          .remove = snd_mychip_remove,
  };
  };
]]>
]]>
          </programlisting>
          </programlisting>
@@ -1630,11 +1616,7 @@
        The <structfield>probe</structfield> and
        The <structfield>probe</structfield> and
      <structfield>remove</structfield> functions have already
      <structfield>remove</structfield> functions have already
      been defined in the previous sections.
      been defined in the previous sections.
      The <structfield>remove</structfield> function should
      The <structfield>name</structfield>
      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> 
      field is the name string of this device. Note that you must not
      field is the name string of this device. Note that you must not
      use a slash <quote>/</quote> in this string. 
      use a slash <quote>/</quote> in this string. 
      </para>
      </para>
@@ -1665,9 +1647,7 @@
      <para>
      <para>
        Note that these module entries are tagged with
        Note that these module entries are tagged with
      <parameter>__init</parameter> and 
      <parameter>__init</parameter> and 
      <parameter>__exit</parameter> prefixes, not
      <parameter>__exit</parameter> prefixes.
      <parameter>__devinit</parameter> nor
      <parameter>__devexit</parameter>.
      </para>
      </para>


      <para>
      <para>
@@ -1918,7 +1898,7 @@
   */
   */


  /* create a pcm device */
  /* 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;
          struct snd_pcm *pcm;
          int err;
          int err;
@@ -1957,7 +1937,7 @@
        <informalexample>
        <informalexample>
          <programlisting>
          <programlisting>
<![CDATA[
<![CDATA[
  static int __devinit snd_mychip_new_pcm(struct mychip *chip)
  static int snd_mychip_new_pcm(struct mychip *chip)
  {
  {
          struct snd_pcm *pcm;
          struct snd_pcm *pcm;
          int err;
          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;
          struct snd_pcm *pcm;
          ....
          ....
@@ -3399,7 +3379,7 @@ struct _snd_pcm_runtime {
	  <title>Definition of a Control</title>
	  <title>Definition of a Control</title>
          <programlisting>
          <programlisting>
<![CDATA[
<![CDATA[
  static struct snd_kcontrol_new my_control __devinitdata = {
  static struct snd_kcontrol_new my_control = {
          .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
          .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
          .name = "PCM Playback Switch",
          .name = "PCM Playback Switch",
          .index = 0,
          .index = 0,
@@ -3414,13 +3394,6 @@ struct _snd_pcm_runtime {
        </example>
        </example>
      </para>
      </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>
      <para>
        The <structfield>iface</structfield> field specifies the control
        The <structfield>iface</structfield> field specifies the control
      type, <constant>SNDRV_CTL_ELEM_IFACE_XXX</constant>, which
      type, <constant>SNDRV_CTL_ELEM_IFACE_XXX</constant>, which
@@ -3847,10 +3820,8 @@ struct _snd_pcm_runtime {


      <para>
      <para>
        <function>snd_ctl_new1()</function> allocates a new
        <function>snd_ctl_new1()</function> allocates a new
      <structname>snd_kcontrol</structname> instance (that's why the definition
      <structname>snd_kcontrol</structname> instance,
      of <parameter>my_control</parameter> can be with
      and <function>snd_ctl_add</function> assigns the given
      the <parameter>__devinitdata</parameter> 
      prefix), and <function>snd_ctl_add</function> assigns the given
      control component to the card. 
      control component to the card. 
      </para>
      </para>
    </section>
    </section>
@@ -3896,7 +3867,7 @@ struct _snd_pcm_runtime {
<![CDATA[
<![CDATA[
  static DECLARE_TLV_DB_SCALE(db_scale_my_control, -4050, 150, 0);
  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 |
          .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
                    SNDRV_CTL_ELEM_ACCESS_TLV_READ,
                    SNDRV_CTL_ELEM_ACCESS_TLV_READ,
@@ -5761,7 +5732,7 @@ struct _snd_pcm_runtime {
      <informalexample>
      <informalexample>
        <programlisting>
        <programlisting>
<![CDATA[
<![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)
                              const struct pci_device_id *pci_id)
  {
  {
          ....
          ....
@@ -5787,7 +5758,7 @@ struct _snd_pcm_runtime {
      <informalexample>
      <informalexample>
        <programlisting>
        <programlisting>
<![CDATA[
<![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)
                              const struct pci_device_id *pci_id)
  {
  {
          ....
          ....
@@ -5825,7 +5796,7 @@ struct _snd_pcm_runtime {
          .name = KBUILD_MODNAME,
          .name = KBUILD_MODNAME,
          .id_table = snd_my_ids,
          .id_table = snd_my_ids,
          .probe = snd_my_probe,
          .probe = snd_my_probe,
          .remove = __devexit_p(snd_my_remove),
          .remove = snd_my_remove,
  #ifdef CONFIG_PM
  #ifdef CONFIG_PM
          .suspend = snd_my_suspend,
          .suspend = snd_my_suspend,
          .resume = snd_my_resume,
          .resume = snd_my_resume,