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

Commit 0280d1a0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound updates from Takashi Iwai:
 "Here is the first batch of updates for sound system on 4.4-rc1.

  Again at this time, the update looks fairly calm; no big changes in
  either ALSA core or ASoC infrastructures, rather all small cleanups,
  in addition to the new stuff as usual.

  The biggest changes are about Firewire sound devices.  It gained lots
  of new device support, and MIDI functionality.  Also there are updates
  for a few still working-in-progress stuff (topology API and ASoC
  skylake), too.  But overall, this update should give no big surprise.

  Some highlights are below:

  Core:
   - A few more Kconfig items for tinification; it's marked as EXPERT,
     so normal user should't be bothered :)
   - Refactoring with a new PCM hw_constraint helper
   - Removal of unused transfer_ack_{begin,end} PCM callbacks

  Firewire:
   - Restructuring of code subtree, lots of refactoring
   - Support AMDTP variants
   - New driver for Digidesign 002/003 family
   - Adds support for TASCAM FireOne to ALSA OXFW driver
   - Add MIDI support to TASCAM and Digi00x devices

  HD-Audio:
   - Automated modalias generation for codec drivers, finally
   - Improvement on heuristics for setting mixer name
   - A few fixes for longstanding bugs on Creative CA0132 cards
   - Addition of audio rate callback with i915 communication
   - Fix suspend issue on recent Dell XPS
   - Intel Lewisburg controller support

  ASoC:
   - Updates to the topology userspace interface
   - Big updates to the Renesas support (rcar)
   - More updates for supporting Intel Sky Lake systems
   - New drivers for Asahi Kasei Microdevices AK4613, Allwinnner A10,
     Cirrus Logic WM8998, Dialog DA7219, Nuvoton NAU8825, Rockchip
     S/PDIF, and Atmel class D amplifier

  USB-Audio:
   - A fix for newer Roland MIDI devices
   - Quirks and workarounds for Zoom R16/24 device

  Misc:
   - A few fixes for some old Cirrus CS46xx PCI sound boards
   - Yet another fixes for some old ESS Maestro3 PCI sound boards"

* tag 'sound-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (330 commits)
  ALSA: hda - Add Intel Lewisburg device IDs Audio
  ALSA: hda - Apply pin fixup for HP ProBook 6550b
  ALSA: hda - Fix lost 4k BDL boundary workaround
  ALSA: maestro3: Fix Allegro mute until master volume/mute is touched
  ALSA: maestro3: Enable docking support for Dell Latitude C810
  ALSA: firewire-digi00x: add another rawmidi character device for MIDI control ports
  ALSA: firewire-digi00x: add MIDI operations for MIDI control port
  ALSA: firewire-digi00x: rename identifiers of MIDI operation for physical ports
  ALSA: cs46xx: Fix suspend for all channels
  ALSA: cs46xx: Fix Duplicate front for CS4294 and CS4298 codecs
  ALSA: DocBook: Add soc-ops.c and soc-compress.c
  ALSA: hda - Add / fix kernel doc comments
  ALSA: Constify ratden/ratnum constraints
  ALSA: hda - Disable 64bit address for Creative HDA controllers
  ALSA: hda/realtek - Dell XPS one ALC3260 speaker no sound after resume back
  ALSA: hda/ca0132 - Convert leftover pr_info() and pr_err()
  ASoC: fsl: Use #ifdef instead of #if for CONFIG_PM_SLEEP
  ASoC: rt5645: Sort the order for register bit defines
  ASoC: dwc: add check for master/slave format
  ASoC: rt5645: Add the HWEQ for the speaker output
  ...
parents 5bc23a0c 5cf92c8b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -112,6 +112,8 @@
!Esound/soc/soc-devres.c
!Esound/soc/soc-io.c
!Esound/soc/soc-pcm.c
!Esound/soc/soc-ops.c
!Esound/soc/soc-compress.c
     </sect1>
     <sect1><title>ASoC DAPM API</title>
!Esound/soc/soc-dapm.c
+2 −17
Original line number Diff line number Diff line
@@ -2181,10 +2181,6 @@ struct _snd_pcm_runtime {
	struct snd_pcm_hardware hw;
	struct snd_pcm_hw_constraints hw_constraints;

	/* -- interrupt callbacks -- */
	void (*transfer_ack_begin)(struct snd_pcm_substream *substream);
	void (*transfer_ack_end)(struct snd_pcm_substream *substream);

	/* -- timer -- */
	unsigned int timer_resolution;	/* timer resolution */

@@ -2209,9 +2205,8 @@ struct _snd_pcm_runtime {
	  For the operators (callbacks) of each sound driver, most of
	these records are supposed to be read-only.  Only the PCM
	middle-layer changes / updates them.  The exceptions are
	the hardware description (hw), interrupt callbacks
	(transfer_ack_xxx), DMA buffer information, and the private
	data.  Besides, if you use the standard buffer allocation
	the hardware description (hw) DMA buffer information and the
	private data.  Besides, if you use the standard buffer allocation
	method via <function>snd_pcm_lib_malloc_pages()</function>,
	you don't need to set the DMA buffer information by yourself.
	</para>
@@ -2538,16 +2533,6 @@ struct _snd_pcm_runtime {
        </para>
	</section>

	<section id="pcm-interface-runtime-intr">
	<title>Interrupt Callbacks</title>
	<para>
	The field <structfield>transfer_ack_begin</structfield> and
	<structfield>transfer_ack_end</structfield> are called at
	the beginning and at the end of
	<function>snd_pcm_period_elapsed()</function>, respectively. 
	</para>
	</section>

    </section>

    <section id="pcm-interface-operators">
+17 −0
Original line number Diff line number Diff line
AK4613 I2C transmitter

This device supports I2C mode only.

Required properties:

- compatible : "asahi-kasei,ak4613"
- reg : The chip select number on the I2C bus

Example:

&i2c {
	ak4613: ak4613@0x10 {
		compatible = "asahi-kasei,ak4613";
		reg = <0x10>;
	};
};
+21 −1
Original line number Diff line number Diff line
@@ -7,7 +7,14 @@ Required properties:
  - compatible : "asahi-kasei,ak4642" or "asahi-kasei,ak4643" or "asahi-kasei,ak4648"
  - reg : The chip select number on the I2C bus

Example:
Optional properties:

  - #clock-cells :		common clock binding; shall be set to 0
  - clocks :			common clock binding; MCKI clock
  - clock-frequency :		common clock binding; frequency of MCKO
  - clock-output-names :	common clock binding; MCKO clock name

Example 1:

&i2c {
	ak4648: ak4648@0x12 {
@@ -15,3 +22,16 @@ Example:
		reg = <0x12>;
	};
};

Example 2:

&i2c {
	ak4643: codec@12 {
		compatible = "asahi-kasei,ak4643";
		reg = <0x12>;
		#clock-cells = <0>;
		clocks = <&audio_clock>;
		clock-frequency = <12288000>;
		clock-output-names = "ak4643_mcko";
	};
};
+52 −0
Original line number Diff line number Diff line
* Atmel ClassD driver under ALSA SoC architecture

Required properties:
- compatible
	Should be "atmel,sama5d2-classd".
- reg
	Should contain ClassD registers location and length.
- interrupts
	Should contain the IRQ line for the ClassD.
- dmas
	One DMA specifiers as described in atmel-dma.txt and dma.txt files.
- dma-names
	Must be "tx".
- clock-names
	Tuple listing input clock names.
	Required elements: "pclk", "gclk" and "aclk".
- clocks
	Please refer to clock-bindings.txt.

Optional properties:
- pinctrl-names, pinctrl-0
	Please refer to pinctrl-bindings.txt.
- atmel,model
	The user-visible name of this sound complex.
	The default value is "CLASSD".
- atmel,pwm-type
	PWM modulation type, "single" or "diff".
	The default value is "single".
- atmel,non-overlap-time
	Set non-overlapping time, the unit is nanosecond(ns).
	There are four values,
	<5>, <10>, <15>, <20>, the default value is <10>.
	Non-overlapping will be disabled if not specified.

Example:
classd: classd@fc048000 {
		compatible = "atmel,sama5d2-classd";
		reg = <0xfc048000 0x100>;
		interrupts = <59 IRQ_TYPE_LEVEL_HIGH 7>;
		dmas = <&dma0
			(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
			| AT91_XDMAC_DT_PERID(47))>;
		dma-names = "tx";
		clocks = <&classd_clk>, <&classd_gclk>, <&audio_pll_pmc>;
		clock-names = "pclk", "gclk", "aclk";

		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_classd_default>;
		atmel,model = "classd @ SAMA5D2-Xplained";
		atmel,pwm-type = "diff";
		atmel,non-overlap-time = <10>;
};
Loading