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

Commit 50201253 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: (430 commits)
  ALSA: hda - Add quirk for Acer Ferrari 5000
  ALSA: hda - Use cached calls to get widget caps and pin caps
  ALSA: hda - Don't create empty/single-item input source
  ALSA: hda - Fix the wrong pin-cap check in patch_realtek.c
  ALSA: hda - Cache pin-cap values
  ALSA: hda - Avoid output amp manipulation to digital mic pins
  ALSA: hda - Add function id to proc output
  ALSA: pcm - Safer boundary checks
  ALSA: hda - Detect digital-mic inputs on ALC663 / ALC272
  ALSA: sound/ali5451: typo: s/resouces/resources/
  ALSA: hda - Don't show the current connection for power widgets
  ALSA: Fix wrong pointer to dev_err() in arm/pxa2xx-ac97-lib.c
  ASoC: Declare Headset as Mic and Headphone widgets for SDP3430
  ASoC: OMAP: N810: Add more jack functions
  ASoC: OMAP: N810: Mark not connected input pins
  ASoC: Add FLL support for WM8400
  ALSA: hda - Don't reset stream at each prepare callback
  ALSA: hda - Don't reset BDL unnecessarily
  ALSA: pcm - Fix delta calculation at boundary overlap
  ALSA: pcm - Reset invalid position even without debug option
  ...
parents 562f477a c441c297
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -12,7 +12,8 @@ DOCBOOKS := z8530book.xml mcabook.xml device-drivers.xml \
	    kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \
	    gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
	    genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
	    mac80211.xml debugobjects.xml sh.xml regulator.xml
	    mac80211.xml debugobjects.xml sh.xml regulator.xml \
	    alsa-driver-api.xml writing-an-alsa-driver.xml

###
# The build process is as follows (targets):
+13 −4
Original line number Diff line number Diff line
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">

<book>
<?dbhtml filename="index.html">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
	"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>

<!-- ****************************************************** -->
<!-- Header  -->
<!-- ****************************************************** -->
<book id="ALSA-Driver-API">
  <bookinfo>
    <title>The ALSA Driver API</title>

@@ -35,6 +35,8 @@

  </bookinfo>

<toc></toc>

  <chapter><title>Management of Cards and Devices</title>
     <sect1><title>Card Management</title>
!Esound/core/init.c
@@ -71,6 +73,10 @@
!Esound/pci/ac97/ac97_codec.c
!Esound/pci/ac97/ac97_pcm.c
     </sect1>
     <sect1><title>Virtual Master Control API</title>
!Esound/core/vmaster.c
!Iinclude/sound/control.h
     </sect1>
  </chapter>
  <chapter><title>MIDI API</title>
     <sect1><title>Raw MIDI API</title>
@@ -88,6 +94,9 @@
  <chapter><title>Miscellaneous Functions</title>
     <sect1><title>Hardware-Dependent Devices API</title>
!Esound/core/hwdep.c
     </sect1>
     <sect1><title>Jack Abstraction Layer API</title>
!Esound/core/jack.c
     </sect1>
     <sect1><title>ISA DMA Helpers</title>
!Esound/core/isadma.c
+29 −23
Original line number Diff line number Diff line
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">

<book>
<?dbhtml filename="index.html">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
	"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>

<!-- ****************************************************** -->
<!-- Header  -->
<!-- ****************************************************** -->
<book id="Writing-an-ALSA-Driver">
  <bookinfo>
    <title>Writing an ALSA Driver</title>
    <author>
@@ -492,9 +492,9 @@
          }

          /* (2) */
          card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0);
          if (card == NULL)
                  return -ENOMEM;
          err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card);
          if (err < 0)
                  return err;

          /* (3) */
          err = snd_mychip_create(card, pci, &chip);
@@ -590,8 +590,9 @@
            <programlisting>
<![CDATA[
  struct snd_card *card;
  int err;
  ....
  card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0);
  err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card);
]]>
            </programlisting>
          </informalexample>
@@ -809,26 +810,28 @@

      <para>
        As mentioned above, to create a card instance, call
      <function>snd_card_new()</function>.
      <function>snd_card_create()</function>.

        <informalexample>
          <programlisting>
<![CDATA[
  struct snd_card *card;
  card = snd_card_new(index, id, module, extra_size);
  int err;
  err = snd_card_create(index, id, module, extra_size, &card);
]]>
          </programlisting>
        </informalexample>
      </para>

      <para>
        The function takes four arguments, the card-index number, the
        The function takes five arguments, the card-index number, the
        id string, the module pointer (usually
        <constant>THIS_MODULE</constant>),
        and the size of extra-data space.  The last argument is used to
        the size of extra-data space, and the pointer to return the
        card instance.  The extra_size argument is used to
        allocate card-&gt;private_data for the
        chip-specific data.  Note that these data
        are allocated by <function>snd_card_new()</function>.
        are allocated by <function>snd_card_create()</function>.
      </para>
    </section>

@@ -915,15 +918,16 @@
      </para>

      <section id="card-management-chip-specific-snd-card-new">
        <title>1. Allocating via <function>snd_card_new()</function>.</title>
        <title>1. Allocating via <function>snd_card_create()</function>.</title>
        <para>
          As mentioned above, you can pass the extra-data-length
	  to the 4th argument of <function>snd_card_new()</function>, i.e.
	  to the 4th argument of <function>snd_card_create()</function>, i.e.

          <informalexample>
            <programlisting>
<![CDATA[
  card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(struct mychip));
  err = snd_card_create(index[dev], id[dev], THIS_MODULE,
                        sizeof(struct mychip), &card);
]]>
            </programlisting>
          </informalexample>
@@ -952,8 +956,8 @@

        <para>
          After allocating a card instance via
          <function>snd_card_new()</function> (with
          <constant>NULL</constant> on the 4th arg), call
          <function>snd_card_create()</function> (with
          <constant>0</constant> on the 4th arg), call
          <function>kzalloc()</function>. 

          <informalexample>
@@ -961,7 +965,7 @@
<![CDATA[
  struct snd_card *card;
  struct mychip *chip;
  card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL);
  err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card);
  .....
  chip = kzalloc(sizeof(*chip), GFP_KERNEL);
]]>
@@ -5750,8 +5754,9 @@ struct _snd_pcm_runtime {
          ....
          struct snd_card *card;
          struct mychip *chip;
          int err;
          ....
          card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL);
          err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card);
          ....
          chip = kzalloc(sizeof(*chip), GFP_KERNEL);
          ....
@@ -5763,7 +5768,7 @@ struct _snd_pcm_runtime {
      </informalexample>

	When you created the chip data with
	<function>snd_card_new()</function>, it's anyway accessible
	<function>snd_card_create()</function>, it's anyway accessible
	via <structfield>private_data</structfield> field.

      <informalexample>
@@ -5775,9 +5780,10 @@ struct _snd_pcm_runtime {
          ....
          struct snd_card *card;
          struct mychip *chip;
          int err;
          ....
          card = snd_card_new(index[dev], id[dev], THIS_MODULE,
                              sizeof(struct mychip));
          err = snd_card_create(index[dev], id[dev], THIS_MODULE,
                                sizeof(struct mychip), &card);
          ....
          chip = card->private_data;
          ....
+61 −26
Original line number Diff line number Diff line
@@ -346,6 +346,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
    sbirq	- IRQ # for CMI8330 chip (SB16)
    sbdma8	- 8bit DMA # for CMI8330 chip (SB16)
    sbdma16	- 16bit DMA # for CMI8330 chip (SB16)
    fmport	- (optional) OPL3 I/O port
    mpuport	- (optional) MPU401 I/O port
    mpuirq	- (optional) MPU401 irq #

    This module supports multiple cards and autoprobe.

@@ -388,34 +391,11 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

    The power-management is supported.
    
  Module snd-cs4232
  -----------------

    Module for sound cards based on CS4232/CS4232A ISA chips.

    isapnp	- ISA PnP detection - 0 = disable, 1 = enable (default)

    with isapnp=0, the following options are available:

    port	- port # for CS4232 chip (PnP setup - 0x534)
    cport	- control port # for CS4232 chip (PnP setup - 0x120,0x210,0xf00)
    mpu_port	- port # for MPU-401 UART (PnP setup - 0x300), -1 = disable
    fm_port	- FM port # for CS4232 chip (PnP setup - 0x388), -1 = disable
    irq		- IRQ # for CS4232 chip (5,7,9,11,12,15)
    mpu_irq	- IRQ # for MPU-401 UART (9,11,12,15)
    dma1	- first DMA # for CS4232 chip (0,1,3)
    dma2	- second DMA # for Yamaha CS4232 chip (0,1,3), -1 = disable
    
    This module supports multiple cards. This module does not support autoprobe
    (if ISA PnP is not used) thus main port must be specified!!! Other ports are
    optional.

    The power-management is supported.
    
  Module snd-cs4236
  -----------------

    Module for sound cards based on CS4235/CS4236/CS4236B/CS4237B/
    Module for sound cards based on CS4232/CS4232A,
    	       	     	   	   CS4235/CS4236/CS4236B/CS4237B/
                                   CS4238B/CS4239 ISA chips.

    isapnp	- ISA PnP detection - 0 = disable, 1 = enable (default)
@@ -437,6 +417,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

    The power-management is supported.

    This module is aliased as snd-cs4232 since it provides the old
    snd-cs4232 functionality, too.

  Module snd-cs4281
  -----------------

@@ -606,6 +589,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
    Module for ESS AudioDrive ES-1688 and ES-688 sound cards.

    port	- port # for ES-1688 chip (0x220,0x240,0x260)
    fm_port	- port # for OPL3 (option; share the same port as default)
    mpu_port	- port # for MPU-401 port (0x300,0x310,0x320,0x330), -1 = disable (default)
    irq		- IRQ # for ES-1688 chip (5,7,9,10)
    mpu_irq	- IRQ # for MPU-401 port (5,7,9,10)
@@ -757,6 +741,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
    model	- force the model name
    position_fix - Fix DMA pointer (0 = auto, 1 = use LPIB, 2 = POSBUF)
    probe_mask  - Bitmask to probe codecs (default = -1, meaning all slots)
    		  When the bit 8 (0x100) is set, the lower 8 bits are used
		  as the "fixed" codec slots; i.e. the driver probes the
		  slots regardless what hardware reports back
    probe_only	- Only probing and no codec initialization (default=off);
		  Useful to check the initial codec status for debugging
    bdl_pos_adj	- Specifies the DMA IRQ timing delay in samples.
@@ -1185,6 +1172,54 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

    This module supports multiple devices and PnP.
    
  Module snd-msnd-classic
  -----------------------

    Module for Turtle Beach MultiSound Classic, Tahiti or Monterey
    soundcards.

    io		- Port # for msnd-classic card
    irq		- IRQ # for msnd-classic card
    mem		- Memory address (0xb0000, 0xc8000, 0xd0000, 0xd8000,
		  0xe0000 or 0xe8000)
    write_ndelay - enable write ndelay (default = 1)
    calibrate_signal - calibrate signal (default = 0)
    isapnp	- ISA PnP detection - 0 = disable, 1 = enable (default)
    digital	- Digital daughterboard present (default = 0)
    cfg		- Config port (0x250, 0x260 or 0x270) default = PnP
    reset	- Reset all devices
    mpu_io	- MPU401 I/O port
    mpu_irq	- MPU401 irq#
    ide_io0	- IDE port #0
    ide_io1	- IDE port #1
    ide_irq	- IDE irq#
    joystick_io	- Joystick I/O port

    The driver requires firmware files "turtlebeach/msndinit.bin" and
    "turtlebeach/msndperm.bin" in the proper firmware directory.

    See Documentation/sound/oss/MultiSound for important information
    about this driver.  Note that it has been discontinued, but the 
    Voyetra Turtle Beach knowledge base entry for it is still available
    at
	http://www.turtlebeach.com/site/kb_ftp/790.asp

  Module snd-msnd-pinnacle
  ------------------------

    Module for Turtle Beach MultiSound Pinnacle/Fiji soundcards.

    io		- Port # for pinnacle/fiji card
    irq		- IRQ # for pinnalce/fiji card
    mem		- Memory address (0xb0000, 0xc8000, 0xd0000, 0xd8000,
		  0xe0000 or 0xe8000)
    write_ndelay - enable write ndelay (default = 1)
    calibrate_signal - calibrate signal (default = 0)
    isapnp	- ISA PnP detection - 0 = disable, 1 = enable (default)

    The driver requires firmware files "turtlebeach/pndspini.bin" and
    "turtlebeach/pndsperm.bin" in the proper firmware directory.

  Module snd-mtpav
  ----------------

@@ -1824,7 +1859,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
  -------------------

    Module for sound cards based on the Asus AV100/AV200 chips,
    i.e., Xonar D1, DX, D2, D2X and HDAV1.3 (Deluxe).
    i.e., Xonar D1, DX, D2, D2X, HDAV1.3 (Deluxe), and Essence STX.

    This module supports autoprobe and multiple cards.

+18 −3
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ ALC262
  sony-assamd	Sony ASSAMD
  toshiba-s06	Toshiba S06
  toshiba-rx1	Toshiba RX1
  tyan		Tyan Thunder n6650W (S2915-E)
  ultra		Samsung Q1 Ultra Vista model
  lenovo-3000	Lenovo 3000 y410
  nec		NEC Versa S9100
@@ -261,6 +262,8 @@ Conexant 5051
=============
  laptop	Basic Laptop config (default)
  hp		HP Spartan laptop
  hp-dv6736	HP dv6736
  lenovo-x200	Lenovo X200 laptop

STAC9200
========
@@ -278,6 +281,7 @@ STAC9200
  gateway-m4	Gateway laptops with EAPD control
  gateway-m4-2	Gateway laptops with EAPD control
  panasonic	Panasonic CF-74
  auto		BIOS setup (default)

STAC9205/9254
=============
@@ -285,6 +289,8 @@ STAC9205/9254
  dell-m42	Dell (unknown)
  dell-m43	Dell Precision
  dell-m44	Dell Inspiron
  eapd		Keep EAPD on (e.g. Gateway T1616)
  auto		BIOS setup (default)

STAC9220/9221
=============
@@ -308,6 +314,7 @@ STAC9220/9221
  dell-d82	Dell (unknown)
  dell-m81	Dell (unknown)
  dell-m82	Dell XPS M1210
  auto		BIOS setup (default)

STAC9202/9250/9251
==================
@@ -319,6 +326,7 @@ STAC9202/9250/9251
  m3		Some Gateway MX series laptops
  m5		Some Gateway MX series laptops (MP6954)
  m6		Some Gateway NX series laptops
  auto		BIOS setup (default)

STAC9227/9228/9229/927x
=======================
@@ -328,6 +336,7 @@ STAC9227/9228/9229/927x
  5stack	D965 5stack + SPDIF
  dell-3stack	Dell Dimension E520
  dell-bios	Fixes with Dell BIOS setup
  auto		BIOS setup (default)

STAC92HD71B*
============
@@ -335,7 +344,10 @@ STAC92HD71B*
  dell-m4-1	Dell desktops
  dell-m4-2	Dell desktops
  dell-m4-3	Dell desktops
  hp-m4		HP dv laptops
  hp-m4		HP mini 1000
  hp-dv5	HP dv series
  hp-hdx	HP HDX series
  auto		BIOS setup (default)

STAC92HD73*
===========
@@ -345,13 +357,16 @@ STAC92HD73*
  dell-m6-dmic	Dell desktops/laptops with digital mics
  dell-m6	Dell desktops/laptops with both type of mics
  dell-eq	Dell desktops/laptops
  auto		BIOS setup (default)

STAC92HD83*
===========
  ref		Reference board
  mic-ref	Reference board with power managment for ports
  dell-s14	Dell laptop
  auto		BIOS setup (default)

STAC9872
========
  vaio		Setup for VAIO FE550G/SZ110
  vaio-ar Setup for VAIO AR
  vaio		VAIO laptop without SPDIF
  auto		BIOS setup (default)
Loading