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

Commit e4980371 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (297 commits)
  ALSA: asihpi - Replace with snd_ctl_boolean_mono_info()
  ALSA: asihpi - HPI version 4.08
  ALSA: asihpi - Add volume mute controls
  ALSA: asihpi - Control name updates
  ALSA: asihpi - Use size_t for sizeof result
  ALSA: asihpi - Explicitly include mutex.h
  ALSA: asihpi - Add new node and message defines
  ALSA: asihpi - Make local function static
  ALSA: asihpi - Fix minor typos and spelling
  ALSA: asihpi - Remove unused structures, macros and functions
  ALSA: asihpi - Remove spurious adapter index check
  ALSA: asihpi - Revise snd_pcm_debug_name, get rid of DEBUG_NAME macro
  ALSA: asihpi - DSP code loader API now independent of OS
  ALSA: asihpi - Remove controlex structs and associated special data transfer code
  ALSA: asihpi - Increase request and response buffer sizes
  ALSA: asihpi - Give more meaningful name to hpi request message type
  ALSA: usb-audio - Add quirk for  Roland / BOSS BR-800
  ALSA: hda - Remove a superfluous argument of via_auto_init_output()
  ALSA: hda - Fix indep-HP path (de-)activation for VT1708* codecs
  ALSA: hda - Add documentation for codec-specific mixer controls
  ...
parents 9d1c0213 76531d41
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -1164,7 +1164,7 @@
          }
          chip->port = pci_resource_start(pci, 0);
          if (request_irq(pci->irq, snd_mychip_interrupt,
                          IRQF_SHARED, "My Chip", chip)) {
                          IRQF_SHARED, KBUILD_MODNAME, chip)) {
                  printk(KERN_ERR "cannot grab irq %d\n", pci->irq);
                  snd_mychip_free(chip);
                  return -EBUSY;
@@ -1197,7 +1197,7 @@

  /* pci_driver definition */
  static struct pci_driver driver = {
          .name = "My Own Chip",
          .name = KBUILD_MODNAME,
          .id_table = snd_mychip_ids,
          .probe = snd_mychip_probe,
          .remove = __devexit_p(snd_mychip_remove),
@@ -1340,7 +1340,7 @@
          <programlisting>
<![CDATA[
  if (request_irq(pci->irq, snd_mychip_interrupt,
                  IRQF_SHARED, "My Chip", chip)) {
                  IRQF_SHARED, KBUILD_MODNAME, chip)) {
          printk(KERN_ERR "cannot grab irq %d\n", pci->irq);
          snd_mychip_free(chip);
          return -EBUSY;
@@ -1616,7 +1616,7 @@
          <programlisting>
<![CDATA[
  static struct pci_driver driver = {
          .name = "My Own Chip",
          .name = KBUILD_MODNAME,
          .id_table = snd_mychip_ids,
          .probe = snd_mychip_probe,
          .remove = __devexit_p(snd_mychip_remove),
@@ -5816,7 +5816,7 @@ struct _snd_pcm_runtime {
        <programlisting>
<![CDATA[
  static struct pci_driver driver = {
          .name = "My Chip",
          .name = KBUILD_MODNAME,
          .id_table = snd_my_ids,
          .probe = snd_my_probe,
          .remove = __devexit_p(snd_my_remove),
+100 −0
Original line number Diff line number Diff line
This file explains the codec-specific mixer controls.

Realtek codecs
--------------

* Channel Mode
  This is an enum control to change the surround-channel setup,
  appears only when the surround channels are available.
  It gives the number of channels to be used, "2ch", "4ch", "6ch",
  and "8ch".  According to the configuration, this also controls the
  jack-retasking of multi-I/O jacks.

* Auto-Mute Mode
  This is an enum control to change the auto-mute behavior of the
  headphone and line-out jacks.  If built-in speakers and headphone
  and/or line-out jacks are available on a machine, this controls
  appears.
  When there are only either headphones or line-out jacks, it gives
  "Disabled" and "Enabled" state.  When enabled, the speaker is muted
  automatically when a jack is plugged.

  When both headphone and line-out jacks are present, it gives
  "Disabled", "Speaker Only" and "Line-Out+Speaker".  When
  speaker-only is chosen, plugging into a headphone or a line-out jack
  mutes the speakers, but not line-outs.  When line-out+speaker is
  selected, plugging to a headphone jack mutes both speakers and
  line-outs.


IDT/Sigmatel codecs
-------------------

* Analog Loopback
  This control enables/disables the analog-loopback circuit.  This
  appears only when "loopback" is set to true in a codec hint
  (see HD-Audio.txt).  Note that on some codecs the analog-loopback
  and the normal PCM playback are exclusive, i.e. when this is on, you
  won't hear any PCM stream.

* Swap Center/LFE
  Swaps the center and LFE channel order.  Normally, the left
  corresponds to the center and the right to the LFE.  When this is
  ON, the left to the LFE and the right to the center.

* Headphone as Line Out
  When this control is ON, treat the headphone jacks as line-out
  jacks.  That is, the headphone won't auto-mute the other line-outs,
  and no HP-amp is set to the pins.

* Mic Jack Mode, Line Jack Mode, etc
  These enum controls the direction and the bias of the input jack
  pins.  Depending on the jack type, it can set as "Mic In" and "Line 
  In", for determining the input bias, or it can be set to "Line Out"
  when the pin is a multi-I/O jack for surround channels.


VIA codecs
----------

* Smart 5.1
  An enum control to re-task the multi-I/O jacks for surround outputs.
  When it's ON, the corresponding input jacks (usually a line-in and a
  mic-in) are switched as the surround and the CLFE output jacks.

* Independent HP
  When this enum control is enabled, the headphone output is routed
  from an individual stream (the third PCM such as hw:0,2) instead of
  the primary stream.  In the case the headphone DAC is shared with a
  side or a CLFE-channel DAC, the DAC is switched to the headphone
  automatically.

* Loopback Mixing
  An enum control to determine whether the analog-loopback route is
  enabled or not.  When it's enabled, the analog-loopback is mixed to
  the front-channel.  Also, the same route is used for the headphone
  and speaker outputs.  As a side-effect, when this mode is set, the
  individual volume controls will be no longer available for
  headphones and speakers because there is only one DAC connected to a
  mixer widget.

* Dynamic Power-Control
  This control determines whether the dynamic power-control per jack
  detection is enabled or not.  When enabled, the widgets power state
  (D0/D3) are changed dynamically depending on the jack plugging
  state for saving power consumptions.  However, if your system
  doesn't provide a proper jack-detection, this won't work; in such a
  case, turn this control OFF.

* Jack Detect
  This control is provided only for VT1708 codec which gives no proper
  unsolicited event per jack plug.  When this is on, the driver polls
  the jack detection so that the headphone auto-mute can work, while 
  turning this off would reduce the power consumption.


Conexant codecs
---------------

* Auto-Mute Mode
  See Reatek codecs.
+2 −0
Original line number Diff line number Diff line
@@ -534,6 +534,8 @@ L: device-drivers-devel@blackfin.uclinux.org
L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
W:	http://wiki.analog.com/
S:	Supported
F:	sound/soc/codecs/adau*
F:	sound/soc/codecs/adav*
F:	sound/soc/codecs/ad1*
F:	sound/soc/codecs/ssm*

+1 −0
Original line number Diff line number Diff line
@@ -1308,6 +1308,7 @@
#define PCI_SUBDEVICE_ID_CREATIVE_SB08801	0x0041
#define PCI_SUBDEVICE_ID_CREATIVE_SB08802	0x0042
#define PCI_SUBDEVICE_ID_CREATIVE_SB08803	0x0043
#define PCI_SUBDEVICE_ID_CREATIVE_SB1270	0x0062
#define PCI_SUBDEVICE_ID_CREATIVE_HENDRIX	0x6000

#define PCI_VENDOR_ID_ECTIVA		0x1102 /* duplicate: CREATIVE */
+3 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include <linux/spinlock.h>
#include <linux/wait.h>
#include <linux/mutex.h>
#include <linux/workqueue.h>

#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
#include "seq_device.h"
@@ -63,6 +64,7 @@ struct snd_rawmidi_global_ops {
};

struct snd_rawmidi_runtime {
	struct snd_rawmidi_substream *substream;
	unsigned int drain: 1,	/* drain stage */
		     oss: 1;	/* OSS compatible mode */
	/* midi stream buffer */
@@ -79,7 +81,7 @@ struct snd_rawmidi_runtime {
	/* event handler (new bytes, input only) */
	void (*event)(struct snd_rawmidi_substream *substream);
	/* defers calls to event [input] or ops->trigger [output] */
	struct tasklet_struct tasklet;
	struct work_struct event_work;
	/* private data */
	void *private_data;
	void (*private_free)(struct snd_rawmidi_substream *substream);
Loading