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

Commit 046e7d68 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound updates from Takashi Iwai:
 "This update contains a fairly wide range of changes all over in sound
  subdirectory, mainly because of UAPI header moves by David and __dev*
  annotation removals by Bill.  Other highlights are:

   - Introduced the support for wallclock timestamps in ALSA PCM core

   - Add the poll loop implementation for HD-audio jack detection

   - Yet more VGA-switcheroo fixes for HD-audio

   - New VIA HD-audio codec support

   - More fixes on resource management in USB audio and MIDI drivers

   - More quirks for USB-audio ASUS Xonar U3, Reloop Play, Focusrite,
     Roland VG-99, etc

   - Add support for FastTrack C400 usb-audio

   - Clean ups in many drivers regarding firmware loading

   - Add PSC724 Ultiimate Edge support to ice1712

   - A few hdspm driver updates

   - New Stanton SCS.1d/1m FireWire driver

   - Standardisation of the logging in ASoC codes

   - DT and dmaengine support for ASoC Atmel

   - Support for Wolfson ADSP cores

   - New drivers for Freescale/iVeia P1022 and Maxim MAX98090

   - Lots of other ASoC driver fixes and developments"

Fix up trivial conflicts.  And go out on a limb and assume the dts file
'status' field of one of the conflicting things was supposed to be
"disabled", not "disable" like in pretty much all other cases.

* tag 'sound-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (341 commits)
  ALSA: hda - Move runtime PM check to runtime_idle callback
  ALSA: hda - Add stereo-dmic fixup for Acer Aspire One 522
  ALSA: hda - Avoid doubly suspend after vga switcheroo
  ALSA: usb-audio: Enable S/PDIF on the ASUS Xonar U3
  ALSA: hda - Check validity of CORB/RIRB WP reads
  ALSA: hda - use usleep_range in link reset and change timeout check
  ALSA: HDA: VIA: Add support for codec VT1808.
  ALSA: HDA: VIA Add support for codec VT1705CF.
  ASoC: codecs: remove __dev* attributes
  ASoC: utils: remove __dev* attributes
  ASoC: ux500: remove __dev* attributes
  ASoC: txx9: remove __dev* attributes
  ASoC: tegra: remove __dev* attributes
  ASoC: spear: remove __dev* attributes
  ASoC: sh: remove __dev* attributes
  ASoC: s6000: remove __dev* attributes
  ASoC: OMAP: remove __dev* attributes
  ASoC: nuc900: remove __dev* attributes
  ASoC: mxs: remove __dev* attributes
  ASoC: kirkwood: remove __dev* attributes
  ...
parents fe504c5c 6eb827d2
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,
+15 −0
Original line number Diff line number Diff line
* Atmel SSC driver.

Required properties:
- compatible: "atmel,at91rm9200-ssc" or "atmel,at91sam9g45-ssc"
	- atmel,at91rm9200-ssc: support pdc transfer
	- atmel,at91sam9g45-ssc: support dma transfer
- reg: Should contain SSC registers location and length
- interrupts: Should contain SSC interrupt

Example:
ssc0: ssc@fffbc000 {
	compatible = "atmel,at91rm9200-ssc";
	reg = <0xfffbc000 0x4000>;
	interrupts = <14 4 5>;
};
+22 −0
Original line number Diff line number Diff line
AK4104 S/PDIF transmitter

This device supports SPI mode only.

Required properties:

  - compatible : "asahi-kasei,ak4104"

  - reg : The chip select number on the SPI bus

Optional properties:

  - reset-gpio : a GPIO spec for the reset pin. If specified, it will be
		 deasserted before communication to the device starts.

Example:

spdif: ak4104@0 {
	compatible = "asahi-kasei,ak4104";
	reg = <0>;
	spi-max-frequency = <5000000>;
};
+26 −0
Original line number Diff line number Diff line
* Atmel at91sam9g20ek wm8731 audio complex

Required properties:
  - compatible: "atmel,at91sam9g20ek-wm8731-audio"
  - atmel,model: The user-visible name of this sound complex.
  - atmel,audio-routing: A list of the connections between audio components.
  - atmel,ssc-controller: The phandle of the SSC controller
  - atmel,audio-codec: The phandle of the WM8731 audio codec
Optional properties:
  - pinctrl-names, pinctrl-0: Please refer to pinctrl-bindings.txt

Example:
sound {
	compatible = "atmel,at91sam9g20ek-wm8731-audio";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pck0_as_mck>;

	atmel,model = "wm8731 @ AT91SAMG20EK";

	atmel,audio-routing =
		"Ext Spk", "LHPOUT",
		"Int MIC", "MICIN";

	atmel,ssc-controller = <&ssc0>;
	atmel,audio-codec = <&wm8731>;
};
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ Optional properties:

 - reset-gpio: 	a GPIO spec to define which pin is connected to the chip's
		!RESET pin
 - cirrus,amuteb-eq-bmutec:	When given, the Codec's AMUTEB=BMUTEC flag
				is enabled.

Examples:

Loading