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

Commit a9c86d42 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: (377 commits)
  ASoC: au1x: PSC-AC97 bugfixes
  ALSA: dummy - Increase MAX_PCM_SUBSTREAMS to 128
  ALSA: dummy - Add debug proc file
  ALSA: Add const prefix to proc helper functions
  ALSA: Re-export snd_pcm_format_name() function
  ALSA: hda - Use auto model for HP laptops with ALC268 codec
  ALSA: cs46xx - Fix minimum period size
  ASoC: Fix WM835x Out4 capture enumeration
  ALSA: Remove unneeded ifdef from sound/core.h
  ALSA: Remove struct snd_monitor_file from public sound/core.h
  ASoC: Remove unuused hw_read_t
  sound: oxygen: work around MCE when changing volume
  ALSA: dummy - Fake buffer allocations
  ALSA: hda/realtek: Added support for CLEVO M540R subsystem, 6 channel + digital
  ASoC: fix pxa2xx-ac97.c breakage
  ALSA: dummy - Fix the timer calculation in systimer mode
  ALSA: dummy - Add more description
  ALSA: dummy - Better jiffies handling
  ALSA: dummy - Support high-res timer mode
  ALSA: Release v1.0.21
  ...
parents a12e4d30 1110afbe
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -468,3 +468,27 @@ Why: cpu_policy_rwsem has a new cleaner definition making it local to
	cpufreq core and contained inside cpufreq.c. Other dependent
	drivers should not use it in order to safely avoid lockdep issues.
Who:	Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>

----------------------------

What:	sound-slot/service-* module aliases and related clutters in
	sound/sound_core.c
When:	August 2010
Why:	OSS sound_core grabs all legacy minors (0-255) of SOUND_MAJOR
	(14) and requests modules using custom sound-slot/service-*
	module aliases.  The only benefit of doing this is allowing
	use of custom module aliases which might as well be considered
	a bug at this point.  This preemptive claiming prevents
	alternative OSS implementations.

	Till the feature is removed, the kernel will be requesting
	both sound-slot/service-* and the standard char-major-* module
	aliases and allow turning off the pre-claiming selectively via
	CONFIG_SOUND_OSS_CORE_PRECLAIM and soundcore.preclaim_oss
	kernel parameter.

	After the transition phase is complete, both the custom module
	aliases and switches to disable it will go away.  This removal
	will also allow making ALSA OSS emulation independent of
	sound_core.  The dependency will be broken then too.
Who:	Tejun Heo <tj@kernel.org>
+30 −0
Original line number Diff line number Diff line
@@ -60,6 +60,12 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
    slots	- Reserve the slot index for the given driver.
		  This option takes multiple strings.		
		  See "Module Autoloading Support" section for details.
    debug	- Specifies the debug message level
		  (0 = disable debug prints, 1 = normal debug messages,
		   2 = verbose debug messages)
		  This option appears only when CONFIG_SND_DEBUG=y.
		  This option can be dynamically changed via sysfs
		  /sys/modules/snd/parameters/debug file.
  
  Module snd-pcm-oss
  ------------------
@@ -513,6 +519,26 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
    or input, but you may use this module for any application which
    requires a sound card (like RealPlayer).

    pcm_devs       - Number of PCM devices assigned to each card
                     (default = 1, up to 4)
    pcm_substreams - Number of PCM substreams assigned to each PCM
                     (default = 8, up to 16)
    hrtimer        - Use hrtimer (=1, default) or system timer (=0)
    fake_buffer    - Fake buffer allocations (default = 1)

    When multiple PCM devices are created, snd-dummy gives different
    behavior to each PCM device:
      0 = interleaved with mmap support
      1 = non-interleaved with mmap support
      2 = interleaved without mmap 
      3 = non-interleaved without mmap

    As default, snd-dummy drivers doesn't allocate the real buffers
    but either ignores read/write or mmap a single dummy page to all
    buffer pages, in order to save the resouces.  If your apps need
    the read/ written buffer data to be consistent, pass fake_buffer=0
    option.

    The power-management is supported.

  Module snd-echo3g
@@ -768,6 +794,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
    bdl_pos_adj	- Specifies the DMA IRQ timing delay in samples.
		Passing -1 will make the driver to choose the appropriate
		value based on the controller chip.
    patch	- Specifies the early "patch" files to modify the HD-audio
    		setup before initializing the codecs.  This option is
		available only when CONFIG_SND_HDA_PATCH_LOADER=y is set.
		See HD-Audio.txt for details.
    
    [Single (global) options]
    single_cmd  - Use single immediate commands to communicate with
+24 −9
Original line number Diff line number Diff line
@@ -114,8 +114,8 @@ ALC662/663/272
  samsung-nc10	Samsung NC10 mini notebook
  auto		auto-config reading BIOS (default)

ALC882/885
==========
ALC882/883/885/888/889
======================
  3stack-dig	3-jack with SPDIF I/O
  6stack-dig	6-jack digital with SPDIF I/O
  arima		Arima W820Di1
@@ -127,12 +127,8 @@ ALC882/885
  mbp3		Macbook Pro rev3
  imac24	iMac 24'' with jack detection
  w2jc		ASUS W2JC
  auto		auto-config reading BIOS (default)

ALC883/888
==========
  3stack-dig	3-jack with SPDIF I/O
  6stack-dig	6-jack digital with SPDIF I/O
  3stack-2ch-dig	3-jack with SPDIF I/O (ALC883)
  alc883-6stack-dig	6-jack digital with SPDIF I/O (ALC883)
  3stack-6ch    3-jack 6-channel
  3stack-6ch-dig 3-jack 6-channel with SPDIF I/O
  6stack-dig-demo  6-jack digital for Intel demo board
@@ -140,6 +136,7 @@ ALC883/888
  acer-aspire	Acer Aspire 9810
  acer-aspire-4930g Acer Aspire 4930G
  acer-aspire-6530g Acer Aspire 6530G
  acer-aspire-7730g Acer Aspire 7730G
  acer-aspire-8930g Acer Aspire 8930G
  medion	Medion Laptops
  medion-md2	Medion MD2
@@ -155,10 +152,13 @@ ALC883/888
  3stack-hp	HP machines with 3stack (Lucknow, Samba boards)
  6stack-dell	Dell machines with 6stack (Inspiron 530)
  mitac		Mitac 8252D
  clevo-m540r	Clevo M540R (6ch + digital)
  clevo-m720	Clevo M720 laptop series
  fujitsu-pi2515 Fujitsu AMILO Pi2515
  fujitsu-xa3530 Fujitsu AMILO XA3530
  3stack-6ch-intel Intel DG33* boards
  intel-alc889a	Intel IbexPeak with ALC889A
  intel-x58	Intel DX58 with ALC889
  asus-p5q	ASUS P5Q-EM boards
  mb31		MacBook 3,1
  sony-vaio-tt  Sony VAIO TT
@@ -229,7 +229,7 @@ AD1984
======
  basic		default configuration
  thinkpad	Lenovo Thinkpad T61/X61
  dell		Dell T3400
  dell_desktop	Dell T3400

AD1986A
=======
@@ -258,6 +258,7 @@ Conexant 5045
  laptop-micsense   Laptop with Mic sense (old model fujitsu)
  laptop-hpmicsense Laptop with HP and Mic senses
  benq		Benq R55E
  laptop-hp530	HP 530 laptop
  test		for testing/debugging purpose, almost all controls
		can be adjusted.  Appearing only when compiled with
		$CONFIG_SND_DEBUG=y
@@ -278,9 +279,16 @@ Conexant 5051
  hp-dv6736	HP dv6736
  lenovo-x200	Lenovo X200 laptop

Conexant 5066
=============
  laptop	Basic Laptop config (default)
  dell-laptop	Dell laptops
  olpc-xo-1_5	OLPC XO 1.5

STAC9200
========
  ref		Reference board
  oqo		OQO Model 2
  dell-d21	Dell (unknown)
  dell-d22	Dell (unknown)
  dell-d23	Dell (unknown)
@@ -368,10 +376,12 @@ STAC92HD73*
===========
  ref		Reference board
  no-jd		BIOS setup but without jack-detection
  intel		Intel DG45* mobos
  dell-m6-amic	Dell desktops/laptops with analog mics
  dell-m6-dmic	Dell desktops/laptops with digital mics
  dell-m6	Dell desktops/laptops with both type of mics
  dell-eq	Dell desktops/laptops
  alienware	Alienware M17x
  auto		BIOS setup (default)

STAC92HD83*
@@ -385,3 +395,8 @@ STAC9872
========
  vaio		VAIO laptop without SPDIF
  auto		BIOS setup (default)

Cirrus Logic CS4206/4207
========================
  mbp55		MacBook Pro 5,5
  auto		BIOS setup (default)
+64 −0
Original line number Diff line number Diff line
@@ -138,6 +138,10 @@ override the BIOS setup or to provide more comprehensive features.
The driver checks PCI SSID and looks through the static configuration
table until any matching entry is found.  If you have a new machine,
you may see a message like below:
------------------------------------------------------------------------
    hda_codec: ALC880: BIOS auto-probing.
------------------------------------------------------------------------
Meanwhile, in the earlier versions, you would see a message like:
------------------------------------------------------------------------
    hda_codec: Unknown model for ALC880, trying auto-probe from BIOS...
------------------------------------------------------------------------
@@ -403,6 +407,66 @@ re-configure based on that state, run like below:
------------------------------------------------------------------------


Early Patching
~~~~~~~~~~~~~~
When CONFIG_SND_HDA_PATCH_LOADER=y is set, you can pass a "patch" as a
firmware file for modifying the HD-audio setup before initializing the
codec.  This can work basically like the reconfiguration via sysfs in
the above, but it does it before the first codec configuration.

A patch file is a plain text file which looks like below:

------------------------------------------------------------------------
  [codec]
  0x12345678 0xabcd1234 2

  [model]
  auto

  [pincfg]
  0x12 0x411111f0

  [verb]
  0x20 0x500 0x03
  0x20 0x400 0xff

  [hint]
  hp_detect = yes
------------------------------------------------------------------------

The file needs to have a line `[codec]`.  The next line should contain
three numbers indicating the codec vendor-id (0x12345678 in the
example), the codec subsystem-id (0xabcd1234) and the address (2) of
the codec.  The rest patch entries are applied to this specified codec
until another codec entry is given.

The `[model]` line allows to change the model name of the each codec.
In the example above, it will be changed to model=auto.
Note that this overrides the module option.

After the `[pincfg]` line, the contents are parsed as the initial
default pin-configurations just like `user_pin_configs` sysfs above.
The values can be shown in user_pin_configs sysfs file, too.

Similarly, the lines after `[verb]` are parsed as `init_verbs`
sysfs entries, and the lines after `[hint]` are parsed as `hints`
sysfs entries, respectively.

The hd-audio driver reads the file via request_firmware().  Thus,
a patch file has to be located on the appropriate firmware path,
typically, /lib/firmware.  For example, when you pass the option
`patch=hda-init.fw`, the file /lib/firmware/hda-init-fw must be
present.

The patch module option is specific to each card instance, and you
need to give one file name for each instance, separated by commas.
For example, if you have two cards, one for an on-board analog and one 
for an HDMI video board, you may pass patch option like below:
------------------------------------------------------------------------
    options snd-hda-intel patch=on-board-patch,hdmi-patch
------------------------------------------------------------------------


Power-Saving
~~~~~~~~~~~~
The power-saving is a kind of auto-suspend of the device.  When the
+5 −0
Original line number Diff line number Diff line
@@ -128,6 +128,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
		.rx_irq		= INT_24XX_MCBSP1_IRQ_RX,
		.tx_irq		= INT_24XX_MCBSP1_IRQ_TX,
		.ops		= &omap2_mcbsp_ops,
		.buffer_size	= 0x6F,
	},
	{
		.phys_base	= OMAP34XX_MCBSP2_BASE,
@@ -136,6 +137,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
		.rx_irq		= INT_24XX_MCBSP2_IRQ_RX,
		.tx_irq		= INT_24XX_MCBSP2_IRQ_TX,
		.ops		= &omap2_mcbsp_ops,
		.buffer_size	= 0x3FF,
	},
	{
		.phys_base	= OMAP34XX_MCBSP3_BASE,
@@ -144,6 +146,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
		.rx_irq		= INT_24XX_MCBSP3_IRQ_RX,
		.tx_irq		= INT_24XX_MCBSP3_IRQ_TX,
		.ops		= &omap2_mcbsp_ops,
		.buffer_size	= 0x6F,
	},
	{
		.phys_base	= OMAP34XX_MCBSP4_BASE,
@@ -152,6 +155,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
		.rx_irq		= INT_24XX_MCBSP4_IRQ_RX,
		.tx_irq		= INT_24XX_MCBSP4_IRQ_TX,
		.ops		= &omap2_mcbsp_ops,
		.buffer_size	= 0x6F,
	},
	{
		.phys_base	= OMAP34XX_MCBSP5_BASE,
@@ -160,6 +164,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
		.rx_irq		= INT_24XX_MCBSP5_IRQ_RX,
		.tx_irq		= INT_24XX_MCBSP5_IRQ_TX,
		.ops		= &omap2_mcbsp_ops,
		.buffer_size	= 0x6F,
	},
};
#define OMAP34XX_MCBSP_PDATA_SZ		ARRAY_SIZE(omap34xx_mcbsp_pdata)
Loading