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

Commit 7f06a8b2 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: (250 commits)
  ALSA: hda: Storage class should be before const qualifier
  ASoC: tpa6130a2: Remove CPVSS and HPVdd supplies
  ASoC: tpa6130a2: Define output pins with SND_SOC_DAPM_OUTPUT
  ASoC: sdp4430 - add sdp4430 pcm ops to DAI.
  ASoC: TWL6040: Enable earphone path in codec
  ASoC: SDP4430: Add support for Earphone speaker
  ASoC: SDP4430: Add sdp4430 machine driver
  ASoC: tlv320dac33: Avoid powering off while in BIAS_OFF
  ASoC: tlv320dac33: Use dev_dbg in dac33_hard_power function
  ALSA: sound/pci/asihpi: Use kzalloc
  ALSA: hdmi - dont fail on extra nodes
  ALSA: intelhdmi - add id for the CougarPoint chipset
  ALSA: intelhdmi - user friendly codec name
  ALSA: intelhdmi - add dependency on SND_DYNAMIC_MINORS
  ALSA: asihpi: incorrect range check
  ALSA: asihpi: testing the wrong variable
  ALSA: es1688: add pedantic range checks
  ARM: McBSP: Add support for omap4 in McBSP driver
  ARM: McBSP: Fix request for irq in OMAP4
  OMAP: McBSP: Add 32-bit mode support
  ...
parents c3ad33c9 d71f4cec
Loading
Loading
Loading
Loading
+17 −10
Original line number Diff line number Diff line
@@ -5518,34 +5518,41 @@ struct _snd_pcm_runtime {
]]>
        </programlisting>
      </informalexample>

      For the raw data, <structfield>size</structfield> field must be
      set properly.  This specifies the maximum size of the proc file access.
    </para>

    <para>
      The callback is much more complicated than the text-file
      version. You need to use a low-level I/O functions such as
      The read/write callbacks of raw mode are more direct than the text mode.
      You need to use a low-level I/O functions such as
      <function>copy_from/to_user()</function> to transfer the
      data.

      <informalexample>
        <programlisting>
<![CDATA[
  static long my_file_io_read(struct snd_info_entry *entry,
  static ssize_t my_file_io_read(struct snd_info_entry *entry,
                              void *file_private_data,
                              struct file *file,
                              char *buf,
                              unsigned long count,
                              unsigned long pos)
                              size_t count,
                              loff_t pos)
  {
          long size = count;
          if (pos + size > local_max_size)
                  size = local_max_size - pos;
          if (copy_to_user(buf, local_data + pos, size))
          if (copy_to_user(buf, local_data + pos, count))
                  return -EFAULT;
          return size;
          return count;
  }
]]>
        </programlisting>
      </informalexample>

      If the size of the info entry has been set up properly,
      <structfield>count</structfield> and <structfield>pos</structfield> are
      guaranteed to fit within 0 and the given size.
      You don't have to check the range in the callbacks unless any
      other condition is required.

    </para>

  </chapter>
+18 −13
Original line number Diff line number Diff line
@@ -227,6 +227,16 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.

    The power-management is supported.

  Module snd-asihpi
  -----------------

    Module for AudioScience ASI soundcards

    enable_hpi_hwdep	- enable HPI hwdep for AudioScience soundcard

    This module supports multiple cards.
    The driver requires the firmware loader support on kernel.

  Module snd-atiixp
  -----------------

@@ -622,28 +632,23 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
    
    The power-management is supported.

  Module snd-es968
  ----------------

    Module for sound cards based on ESS ES968 chip (PnP only).

    This module supports multiple cards, PnP and autoprobe.
    
    The power-management is supported.

  Module snd-es1688
  -----------------

    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)
    isapnp	- ISA PnP detection - 0 = disable, 1 = enable (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)
    fm_port	- port # for OPL3 (option; share the same port as default)

    with isapnp=0, the following additional options are available:
    port	- port # for ES-1688 chip (0x220,0x240,0x260)
    irq		- IRQ # for ES-1688 chip (5,7,9,10)
    dma8	- DMA # for ES-1688 chip (0,1,3)

    This module supports multiple cards and autoprobe (without MPU-401 port).
    This module supports multiple cards and autoprobe (without MPU-401 port)
    and PnP with the ES968 chip.

  Module snd-es18xx
  -----------------
+3 −1
Original line number Diff line number Diff line
@@ -204,7 +204,6 @@ generic parser regardless of the codec. Usually the codec-specific
parser is much better than the generic parser (as now).  Thus this
option is more about the debugging purpose.


Speaker and Headphone Output
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
One of the most frequent (and obvious) bugs with HD-audio is the
@@ -600,6 +599,9 @@ probing, the proc file is available, so you can get the raw codec
information before modified by the driver.  Of course, the driver
isn't usable with `probe_only=1`.  But you can continue the
configuration via hwdep sysfs file if hda-reconfig option is enabled.
Using `probe_only` mask 2 skips the reset of HDA codecs (use
`probe_only=3` as module option). The hwdep interface can be used
to determine the BIOS codec initialization.


hda-verb
+4 −0
Original line number Diff line number Diff line
@@ -600,7 +600,11 @@ static __init void dm365_evm_init(void)
	/* maybe setup mmc1/etc ... _after_ mmc0 */
	evm_init_cpld();

#ifdef CONFIG_SND_DM365_AIC3X_CODEC
	dm365_init_asp(&dm365_evm_snd_data);
#elif defined(CONFIG_SND_DM365_VOICE_CODEC)
	dm365_init_vc(&dm365_evm_snd_data);
#endif
	dm365_init_rtc();
	dm365_init_ks(&dm365evm_ks_data);

+4 −8
Original line number Diff line number Diff line
@@ -187,32 +187,28 @@ static struct omap_mcbsp_platform_data omap44xx_mcbsp_pdata[] = {
		.phys_base      = OMAP44XX_MCBSP1_BASE,
		.dma_rx_sync    = OMAP44XX_DMA_MCBSP1_RX,
		.dma_tx_sync    = OMAP44XX_DMA_MCBSP1_TX,
		.rx_irq         = INT_24XX_MCBSP1_IRQ_RX,
		.tx_irq         = INT_24XX_MCBSP1_IRQ_TX,
		.tx_irq         = OMAP44XX_IRQ_MCBSP1,
		.ops            = &omap2_mcbsp_ops,
	},
	{
		.phys_base      = OMAP44XX_MCBSP2_BASE,
		.dma_rx_sync    = OMAP44XX_DMA_MCBSP2_RX,
		.dma_tx_sync    = OMAP44XX_DMA_MCBSP2_TX,
		.rx_irq         = INT_24XX_MCBSP2_IRQ_RX,
		.tx_irq         = INT_24XX_MCBSP2_IRQ_TX,
		.tx_irq         = OMAP44XX_IRQ_MCBSP2,
		.ops            = &omap2_mcbsp_ops,
	},
	{
		.phys_base      = OMAP44XX_MCBSP3_BASE,
		.dma_rx_sync    = OMAP44XX_DMA_MCBSP3_RX,
		.dma_tx_sync    = OMAP44XX_DMA_MCBSP3_TX,
		.rx_irq         = INT_24XX_MCBSP3_IRQ_RX,
		.tx_irq         = INT_24XX_MCBSP3_IRQ_TX,
		.tx_irq         = OMAP44XX_IRQ_MCBSP3,
		.ops            = &omap2_mcbsp_ops,
	},
	{
		.phys_base      = OMAP44XX_MCBSP4_BASE,
		.dma_rx_sync    = OMAP44XX_DMA_MCBSP4_RX,
		.dma_tx_sync    = OMAP44XX_DMA_MCBSP4_TX,
		.rx_irq         = INT_24XX_MCBSP4_IRQ_RX,
		.tx_irq         = INT_24XX_MCBSP4_IRQ_TX,
		.tx_irq         = OMAP44XX_IRQ_MCBSP4,
		.ops            = &omap2_mcbsp_ops,
	},
};
Loading