Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'sound-fix-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"Here are a collection of small fixes tha have been gathered for
4.4-rc1. The only significant changes are those in PCI drivers
Kconfig, to use "depends on" instead of "select" for CONFIG_ZONE_DMA.
A reverse select is often more user-friendly, but in this case, it
makes hard to manage with the conflict with ZONE_DEVICE, so changed in
such a way for now.

Others are all small fixes and quirks: an error check in soundcore
reigster_chrdev(), HD-audio HDMI/DP phantom jack fix, Intel Broxton DP
quirk, USB-audio DSD device quirk, some constifications, etc"

* tag 'sound-fix-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: pci: depend on ZONE_DMA
ALSA: hda - Simplify phantom jack handling for HDMI/DP
ALSA: hda/hdmi - apply Skylake fix-ups to Broxton display codec
ALSA: ctxfi: constify rsc ops structures
ALSA: usb: Add native DSD support for Aune X1S
ALSA: oxfw: add an comment to Kconfig for TASCAM FireOne
sound: fix check for error condition of register_chrdev()

+43 -51
+1
sound/firewire/Kconfig
··· 38 38 * Mackie(Loud) Tapco Link.Firewire 39 39 * Mackie(Loud) d.2 pro/d.4 pro 40 40 * Mackie(Loud) U.420/U.420d 41 + * TASCAM FireOne 41 42 42 43 To compile this driver as a module, choose M here: the module 43 44 will be called snd-oxfw.
+12 -12
sound/pci/Kconfig
··· 25 25 select SND_PCM 26 26 select SND_AC97_CODEC 27 27 select SND_OPL3_LIB 28 - select ZONE_DMA 28 + depends on ZONE_DMA 29 29 help 30 30 Say 'Y' or 'M' to include support for Avance Logic ALS300/ALS300+ 31 31 ··· 50 50 tristate "ALi M5451 PCI Audio Controller" 51 51 select SND_MPU401_UART 52 52 select SND_AC97_CODEC 53 - select ZONE_DMA 53 + depends on ZONE_DMA 54 54 help 55 55 Say Y here to include support for the integrated AC97 sound 56 56 device on motherboards using the ALi M5451 Audio Controller ··· 155 155 select SND_PCM 156 156 select SND_RAWMIDI 157 157 select SND_AC97_CODEC 158 - select ZONE_DMA 158 + depends on ZONE_DMA 159 159 help 160 160 Say Y here to include support for Aztech AZF3328 (PCI168) 161 161 soundcards. ··· 463 463 select SND_HWDEP 464 464 select SND_RAWMIDI 465 465 select SND_AC97_CODEC 466 - select ZONE_DMA 466 + depends on ZONE_DMA 467 467 help 468 468 Say Y to include support for Sound Blaster PCI 512, Live!, 469 469 Audigy and E-mu APS (partially supported) soundcards. ··· 479 479 tristate "Emu10k1X (Dell OEM Version)" 480 480 select SND_AC97_CODEC 481 481 select SND_RAWMIDI 482 - select ZONE_DMA 482 + depends on ZONE_DMA 483 483 help 484 484 Say Y here to include support for the Dell OEM version of the 485 485 Sound Blaster Live!. ··· 513 513 select SND_OPL3_LIB 514 514 select SND_MPU401_UART 515 515 select SND_AC97_CODEC 516 - select ZONE_DMA 516 + depends on ZONE_DMA 517 517 help 518 518 Say Y here to include support for soundcards based on ESS Solo-1 519 519 (ES1938, ES1946, ES1969) chips. ··· 525 525 tristate "ESS ES1968/1978 (Maestro-1/2/2E)" 526 526 select SND_MPU401_UART 527 527 select SND_AC97_CODEC 528 - select ZONE_DMA 528 + depends on ZONE_DMA 529 529 help 530 530 Say Y here to include support for soundcards based on ESS Maestro 531 531 1/2/2E chips. ··· 612 612 select SND_MPU401_UART 613 613 select SND_AC97_CODEC 614 614 select BITREVERSE 615 - select ZONE_DMA 615 + depends on ZONE_DMA 616 616 help 617 617 Say Y here to include support for soundcards based on the 618 618 ICE1712 (Envy24) chip. ··· 700 700 config SND_MAESTRO3 701 701 tristate "ESS Allegro/Maestro3" 702 702 select SND_AC97_CODEC 703 - select ZONE_DMA 703 + depends on ZONE_DMA 704 704 help 705 705 Say Y here to include support for soundcards based on ESS Maestro 3 706 706 (Allegro) chips. ··· 806 806 tristate "SiS 7019 Audio Accelerator" 807 807 depends on X86_32 808 808 select SND_AC97_CODEC 809 - select ZONE_DMA 809 + depends on ZONE_DMA 810 810 help 811 811 Say Y here to include support for the SiS 7019 Audio Accelerator. 812 812 ··· 818 818 select SND_OPL3_LIB 819 819 select SND_MPU401_UART 820 820 select SND_AC97_CODEC 821 - select ZONE_DMA 821 + depends on ZONE_DMA 822 822 help 823 823 Say Y here to include support for soundcards based on the S3 824 824 SonicVibes chip. ··· 830 830 tristate "Trident 4D-Wave DX/NX; SiS 7018" 831 831 select SND_MPU401_UART 832 832 select SND_AC97_CODEC 833 - select ZONE_DMA 833 + depends on ZONE_DMA 834 834 help 835 835 Say Y here to include support for soundcards based on Trident 836 836 4D-Wave DX/NX or SiS 7018 chips.
+3 -3
sound/pci/ctxfi/ctamixer.c
··· 49 49 return (amixer_index(rsc) << 4) + 0x4; 50 50 } 51 51 52 - static struct rsc_ops amixer_basic_rsc_ops = { 52 + static const struct rsc_ops amixer_basic_rsc_ops = { 53 53 .master = amixer_master, 54 54 .next_conj = amixer_next_conj, 55 55 .index = amixer_index, ··· 186 186 return 0; 187 187 } 188 188 189 - static struct amixer_rsc_ops amixer_ops = { 189 + static const struct amixer_rsc_ops amixer_ops = { 190 190 .set_input = amixer_set_input, 191 191 .set_invalid_squash = amixer_set_invalid_squash, 192 192 .set_scale = amixer_set_y, ··· 357 357 return (sum_index(rsc) << 4) + 0xc; 358 358 } 359 359 360 - static struct rsc_ops sum_basic_rsc_ops = { 360 + static const struct rsc_ops sum_basic_rsc_ops = { 361 361 .master = sum_master, 362 362 .next_conj = sum_next_conj, 363 363 .index = sum_index,
+1 -1
sound/pci/ctxfi/ctamixer.h
··· 58 58 unsigned char idx[8]; 59 59 struct rsc *input; /* pointer to a resource acting as source */ 60 60 struct sum *sum; /* Put amixer output to this summation node */ 61 - struct amixer_rsc_ops *ops; /* AMixer specific operations */ 61 + const struct amixer_rsc_ops *ops; /* AMixer specific operations */ 62 62 }; 63 63 64 64 struct amixer_rsc_ops {
+5 -5
sound/pci/ctxfi/ctdaio.c
··· 83 83 return rsc->conj += 0x100; 84 84 } 85 85 86 - static struct rsc_ops daio_out_rsc_ops = { 86 + static const struct rsc_ops daio_out_rsc_ops = { 87 87 .master = daio_master, 88 88 .next_conj = daio_out_next_conj, 89 89 .index = daio_index, 90 90 .output_slot = NULL, 91 91 }; 92 92 93 - static struct rsc_ops daio_in_rsc_ops_20k1 = { 93 + static const struct rsc_ops daio_in_rsc_ops_20k1 = { 94 94 .master = daio_master, 95 95 .next_conj = daio_in_next_conj_20k1, 96 96 .index = NULL, 97 97 .output_slot = daio_index, 98 98 }; 99 99 100 - static struct rsc_ops daio_in_rsc_ops_20k2 = { 100 + static const struct rsc_ops daio_in_rsc_ops_20k2 = { 101 101 .master = daio_master, 102 102 .next_conj = daio_in_next_conj_20k2, 103 103 .index = NULL, ··· 263 263 return 0; 264 264 } 265 265 266 - static struct dao_rsc_ops dao_ops = { 266 + static const struct dao_rsc_ops dao_ops = { 267 267 .set_spos = dao_spdif_set_spos, 268 268 .commit_write = dao_commit_write, 269 269 .get_spos = dao_spdif_get_spos, ··· 318 318 return 0; 319 319 } 320 320 321 - static struct dai_rsc_ops dai_ops = { 321 + static const struct dai_rsc_ops dai_ops = { 322 322 .set_srt_srcl = dai_set_srt_srcl, 323 323 .set_srt_srcr = dai_set_srt_srcr, 324 324 .set_srt_msr = dai_set_srt_msr,
+2 -2
sound/pci/ctxfi/ctdaio.h
··· 51 51 52 52 struct dao { 53 53 struct daio daio; 54 - struct dao_rsc_ops *ops; /* DAO specific operations */ 54 + const struct dao_rsc_ops *ops; /* DAO specific operations */ 55 55 struct imapper **imappers; 56 56 struct daio_mgr *mgr; 57 57 struct hw *hw; ··· 60 60 61 61 struct dai { 62 62 struct daio daio; 63 - struct dai_rsc_ops *ops; /* DAI specific operations */ 63 + const struct dai_rsc_ops *ops; /* DAI specific operations */ 64 64 struct hw *hw; 65 65 void *ctrl_blk; 66 66 };
+1 -1
sound/pci/ctxfi/ctresource.c
··· 127 127 return rsc->conj = rsc->idx; 128 128 } 129 129 130 - static struct rsc_ops rsc_generic_ops = { 130 + static const struct rsc_ops rsc_generic_ops = { 131 131 .index = rsc_index, 132 132 .output_slot = audio_ring_slot, 133 133 .master = rsc_master,
+1 -1
sound/pci/ctxfi/ctresource.h
··· 39 39 u32 msr:4; /* The Master Sample Rate a resource working on */ 40 40 void *ctrl_blk; /* Chip specific control info block for a resource */ 41 41 struct hw *hw; /* Chip specific object for hardware access means */ 42 - struct rsc_ops *ops; /* Generic resource operations */ 42 + const struct rsc_ops *ops; /* Generic resource operations */ 43 43 }; 44 44 45 45 struct rsc_ops {
+3 -3
sound/pci/ctxfi/ctsrc.c
··· 335 335 return 0; 336 336 } 337 337 338 - static struct src_rsc_ops src_rsc_ops = { 338 + static const struct src_rsc_ops src_rsc_ops = { 339 339 .set_state = src_set_state, 340 340 .set_bm = src_set_bm, 341 341 .set_sf = src_set_sf, ··· 611 611 return container_of(rsc, struct srcimp, rsc)->idx[rsc->conj]; 612 612 } 613 613 614 - static struct rsc_ops srcimp_basic_rsc_ops = { 614 + static const struct rsc_ops srcimp_basic_rsc_ops = { 615 615 .master = srcimp_master, 616 616 .next_conj = srcimp_next_conj, 617 617 .index = srcimp_index, ··· 662 662 return 0; 663 663 } 664 664 665 - static struct srcimp_rsc_ops srcimp_ops = { 665 + static const struct srcimp_rsc_ops srcimp_ops = { 666 666 .map = srcimp_map, 667 667 .unmap = srcimp_unmap 668 668 };
+2 -2
sound/pci/ctxfi/ctsrc.h
··· 48 48 struct src { 49 49 struct rsc rsc; /* Basic resource info */ 50 50 struct src *intlv; /* Pointer to next interleaved SRC in a series */ 51 - struct src_rsc_ops *ops; /* SRC specific operations */ 51 + const struct src_rsc_ops *ops; /* SRC specific operations */ 52 52 /* Number of contiguous srcs for interleaved usage */ 53 53 unsigned char multi; 54 54 unsigned char mode; /* Working mode of this SRC resource */ ··· 110 110 struct imapper *imappers; 111 111 unsigned int mapped; /* A bit-map indicating which conj rsc is mapped */ 112 112 struct srcimp_mgr *mgr; 113 - struct srcimp_rsc_ops *ops; 113 + const struct srcimp_rsc_ops *ops; 114 114 }; 115 115 116 116 struct srcimp_rsc_ops {
+2 -16
sound/pci/hda/hda_jack.c
··· 383 383 * This assigns a jack-detection kctl to the given pin. The kcontrol 384 384 * will have the given name and index. 385 385 */ 386 - static int __snd_hda_jack_add_kctl(struct hda_codec *codec, hda_nid_t nid, 386 + int snd_hda_jack_add_kctl(struct hda_codec *codec, hda_nid_t nid, 387 387 const char *name, bool phantom_jack) 388 388 { 389 389 struct hda_jack_tbl *jack; ··· 409 409 snd_jack_report(jack->jack, state ? jack->type : 0); 410 410 411 411 return 0; 412 - } 413 - 414 - /** 415 - * snd_hda_jack_add_kctl - Add a jack kctl for the given pin 416 - * @codec: the HDA codec 417 - * @nid: pin NID 418 - * @name: the name string for the jack ctl 419 - * 420 - * This is a simple helper calling __snd_hda_jack_add_kctl(). 421 - */ 422 - int snd_hda_jack_add_kctl(struct hda_codec *codec, hda_nid_t nid, 423 - const char *name) 424 - { 425 - return __snd_hda_jack_add_kctl(codec, nid, name, false); 426 412 } 427 413 EXPORT_SYMBOL_GPL(snd_hda_jack_add_kctl); 428 414 ··· 437 451 if (phantom_jack) 438 452 /* Example final name: "Internal Mic Phantom Jack" */ 439 453 strncat(name, " Phantom", sizeof(name) - strlen(name) - 1); 440 - err = __snd_hda_jack_add_kctl(codec, nid, name, phantom_jack); 454 + err = snd_hda_jack_add_kctl(codec, nid, name, phantom_jack); 441 455 if (err < 0) 442 456 return err; 443 457
+1 -1
sound/pci/hda/hda_jack.h
··· 82 82 bool is_jack_detectable(struct hda_codec *codec, hda_nid_t nid); 83 83 84 84 int snd_hda_jack_add_kctl(struct hda_codec *codec, hda_nid_t nid, 85 - const char *name); 85 + const char *name, bool phantom_jack); 86 86 int snd_hda_jack_add_kctls(struct hda_codec *codec, 87 87 const struct auto_pin_cfg *cfg); 88 88
+7 -3
sound/pci/hda/patch_hdmi.c
··· 50 50 #define is_haswell(codec) ((codec)->core.vendor_id == 0x80862807) 51 51 #define is_broadwell(codec) ((codec)->core.vendor_id == 0x80862808) 52 52 #define is_skylake(codec) ((codec)->core.vendor_id == 0x80862809) 53 + #define is_broxton(codec) ((codec)->core.vendor_id == 0x8086280a) 53 54 #define is_haswell_plus(codec) (is_haswell(codec) || is_broadwell(codec) \ 54 - || is_skylake(codec)) 55 + || is_skylake(codec) || is_broxton(codec)) 55 56 56 57 #define is_valleyview(codec) ((codec)->core.vendor_id == 0x80862882) 57 58 #define is_cherryview(codec) ((codec)->core.vendor_id == 0x80862883) ··· 2097 2096 struct hdmi_spec *spec = codec->spec; 2098 2097 struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); 2099 2098 int pcmdev = get_pcm_rec(spec, pin_idx)->device; 2099 + bool phantom_jack; 2100 2100 2101 2101 if (pcmdev > 0) 2102 2102 sprintf(hdmi_str + strlen(hdmi_str), ",pcm=%d", pcmdev); 2103 - if (!is_jack_detectable(codec, per_pin->pin_nid)) 2103 + phantom_jack = !is_jack_detectable(codec, per_pin->pin_nid); 2104 + if (phantom_jack) 2104 2105 strncat(hdmi_str, " Phantom", 2105 2106 sizeof(hdmi_str) - strlen(hdmi_str) - 1); 2106 2107 2107 - return snd_hda_jack_add_kctl(codec, per_pin->pin_nid, hdmi_str); 2108 + return snd_hda_jack_add_kctl(codec, per_pin->pin_nid, hdmi_str, 2109 + phantom_jack); 2108 2110 } 2109 2111 2110 2112 static int generic_hdmi_build_controls(struct hda_codec *codec)
+1 -1
sound/sound_core.c
··· 655 655 static int __init init_oss_soundcore(void) 656 656 { 657 657 if (preclaim_oss && 658 - register_chrdev(SOUND_MAJOR, "sound", &soundcore_fops) == -1) { 658 + register_chrdev(SOUND_MAJOR, "sound", &soundcore_fops) < 0) { 659 659 printk(KERN_ERR "soundcore: sound device already in use.\n"); 660 660 return -EBUSY; 661 661 }
+1
sound/usb/quirks.c
··· 1274 1274 case USB_ID(0x20b1, 0x000a): /* Gustard DAC-X20U */ 1275 1275 case USB_ID(0x20b1, 0x2009): /* DIYINHK DSD DXD 384kHz USB to I2S/DSD */ 1276 1276 case USB_ID(0x20b1, 0x2023): /* JLsounds I2SoverUSB */ 1277 + case USB_ID(0x20b1, 0x3023): /* Aune X1S 32BIT/384 DSD DAC */ 1277 1278 if (fp->altsetting == 3) 1278 1279 return SNDRV_PCM_FMTBIT_DSD_U32_BE; 1279 1280 break;