aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-10-10 22:13:25 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-10-10 22:13:25 -0400
commita2ce35273c2f1aa0dcddd8822681d64ee5f31852 (patch)
treefac2b4d526b6ca6657ea7c1b0a25efe76a3a0b5e /sound/usb
parentbf65dea87e87c53ba4f97c6432761498bc977efd (diff)
parentfd1a2a90d08b0052fa52bd36cebd0592c9e537c2 (diff)
Merge tag 'sound-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai: "This time it's a relatively calm update batch, but the amount isn't too small in the end. Here we go over some highlights: ALSA core: - One major change is the support of nonatomic PCM operations. This allows the trigger and other callbacks to call schedule(), which would be useful for mailbox type communications. Already some drivers (Digigram ones) have been converted to use together with threaded irqs as an example. - Improvement / fixes of DSD PCM format support HD-audio: - Large volume of rewrites are found in Realtek codec driver for converting Dell and HP quirks to generic forms. - Inverted dmic code cleanup from David. - Realtek COEF access has been optimized. - Now HD-audio jack infrastructure allows multiple callbacks, which fixes / simplifies the jack-dependent power controls on STAC/IDT and VIA codecs. - Many additional device-specific fixups as usual - A few deadcode cleanups, CA0132 code cleanup, etc. ASoC: - More componentization work from Lars-Peter, this time mainly cleaning up the suspend and bias level transition callbacks. - Real system support for the Intel drivers and a bunch of fixes and enhancements for the associated CODEC drivers, this is going to need a lot quirks over time due to the lack of any firmware description of the boards. - Jack detect support for simple card from Dylan Reid. - A bunch of small fixes and enhancements for the Freescale drivers. - New drivers for Analog Devices SSM4567, Cirrus Logic CS35L32, Everest Semiconductor ES8328 and Freescale cards using the ASRC in newer i.MX processors. - A few simple-card fixes, mostly cleanups but also a fix for interaction between GPIO 0 and simple-card. Misc: - Virtuoso / Oxygen updates by Clemens - USB-audio: Yamaha MOTIF XF MIDI port name fixes - Conversion of kernel messages to standard dev_*() in ctxfi driver" * tag 'sound-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (251 commits) ASoC: mc13783: Ensure we only try to dereference valid of_nodes ASoC: rockchip-i2s: fix infinite loop in rockchip_snd_txctrl ALSA: hda - Add dock port support to Thinkpad L440 (71aa:501e) ALSA: Allow pass NULL dev for snd_pci_quirk_lookup() ASoC: imx-es8328: Fix of_node_put() call with uninitialized object ASoC: soc-pcm: fix sig_bits determination in soc_pcm_apply_msb() ASoC: simple-card: Initialize headphone and mic GPIO numbers ASoC: imx-es8328: Fix missing return code in imx_es8328_probe() ALSA: hda - Add dock support for Thinkpad T440 (17aa:2212) ALSA: usb: caiaq: check for cdev->n_streams > 1 ASoC: 88pm860x-codec: Fix possibly missing string termination ASoC: core: fix use after free in snd_soc_remove_platform() ASoC: soc-dapm: fix use after free ALSA: hda - Make the inv dmic handling for Realtek use generic parser ALSA: hda - Add Inverted Internal mic for Samsung Ativ book 9 (NP900X3G) ALSA: hda - Add inverted internal mic for Asus Aspire 4830T ASoC: Intel: byt-rt5640: fix coccinelle warnings ASoC: fsl_esai doc: Add "fsl,vf610-esai" as compatible string ASoC: da732x: Remove unnecessary KERN_ERR in pr_err() ASoC: simple-card: Fix detect gpio documentation. ...
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/caiaq/audio.c5
-rw-r--r--sound/usb/midi.c11
-rw-r--r--sound/usb/quirks.c16
3 files changed, 32 insertions, 0 deletions
diff --git a/sound/usb/caiaq/audio.c b/sound/usb/caiaq/audio.c
index 7103b0908d13..272844746135 100644
--- a/sound/usb/caiaq/audio.c
+++ b/sound/usb/caiaq/audio.c
@@ -816,6 +816,11 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *cdev)
816 return -EINVAL; 816 return -EINVAL;
817 } 817 }
818 818
819 if (cdev->n_streams < 2) {
820 dev_err(dev, "bogus number of streams: %d\n", cdev->n_streams);
821 return -EINVAL;
822 }
823
819 ret = snd_pcm_new(cdev->chip.card, cdev->product_name, 0, 824 ret = snd_pcm_new(cdev->chip.card, cdev->product_name, 0,
820 cdev->n_audio_out, cdev->n_audio_in, &cdev->pcm); 825 cdev->n_audio_out, cdev->n_audio_in, &cdev->pcm);
821 826
diff --git a/sound/usb/midi.c b/sound/usb/midi.c
index b2b6f398a4e1..d3d49525a16b 100644
--- a/sound/usb/midi.c
+++ b/sound/usb/midi.c
@@ -1506,6 +1506,12 @@ static struct port_info {
1506 PORT_INFO(vendor, product, num, name, 0, \ 1506 PORT_INFO(vendor, product, num, name, 0, \
1507 SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC | \ 1507 SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC | \
1508 SNDRV_SEQ_PORT_TYPE_HARDWARE) 1508 SNDRV_SEQ_PORT_TYPE_HARDWARE)
1509#define GM_SYNTH_PORT(vendor, product, num, name, voices) \
1510 PORT_INFO(vendor, product, num, name, voices, \
1511 SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC | \
1512 SNDRV_SEQ_PORT_TYPE_MIDI_GM | \
1513 SNDRV_SEQ_PORT_TYPE_HARDWARE | \
1514 SNDRV_SEQ_PORT_TYPE_SYNTHESIZER)
1509#define ROLAND_SYNTH_PORT(vendor, product, num, name, voices) \ 1515#define ROLAND_SYNTH_PORT(vendor, product, num, name, voices) \
1510 PORT_INFO(vendor, product, num, name, voices, \ 1516 PORT_INFO(vendor, product, num, name, voices, \
1511 SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC | \ 1517 SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC | \
@@ -1525,6 +1531,11 @@ static struct port_info {
1525 SNDRV_SEQ_PORT_TYPE_MIDI_MT32 | \ 1531 SNDRV_SEQ_PORT_TYPE_MIDI_MT32 | \
1526 SNDRV_SEQ_PORT_TYPE_HARDWARE | \ 1532 SNDRV_SEQ_PORT_TYPE_HARDWARE | \
1527 SNDRV_SEQ_PORT_TYPE_SYNTHESIZER) 1533 SNDRV_SEQ_PORT_TYPE_SYNTHESIZER)
1534 /* Yamaha MOTIF XF */
1535 GM_SYNTH_PORT(0x0499, 0x105c, 0, "%s Tone Generator", 128),
1536 CONTROL_PORT(0x0499, 0x105c, 1, "%s Remote Control"),
1537 EXTERNAL_PORT(0x0499, 0x105c, 2, "%s Thru"),
1538 CONTROL_PORT(0x0499, 0x105c, 3, "%s Editor"),
1528 /* Roland UA-100 */ 1539 /* Roland UA-100 */
1529 CONTROL_PORT(0x0582, 0x0000, 2, "%s Control"), 1540 CONTROL_PORT(0x0582, 0x0000, 2, "%s Control"),
1530 /* Roland SC-8850 */ 1541 /* Roland SC-8850 */
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 19a921eb75f1..d2aa45a8d895 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1174,5 +1174,21 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
1174 } 1174 }
1175 } 1175 }
1176 1176
1177 /* XMOS based USB DACs */
1178 switch (chip->usb_id) {
1179 /* iFi Audio micro/nano iDSD */
1180 case USB_ID(0x20b1, 0x3008):
1181 if (fp->altsetting == 2)
1182 return SNDRV_PCM_FMTBIT_DSD_U32_LE;
1183 break;
1184 /* DIYINHK DSD DXD 384kHz USB to I2S/DSD */
1185 case USB_ID(0x20b1, 0x2009):
1186 if (fp->altsetting == 3)
1187 return SNDRV_PCM_FMTBIT_DSD_U32_LE;
1188 break;
1189 default:
1190 break;
1191 }
1192
1177 return 0; 1193 return 0;
1178} 1194}