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-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"Nothing particular stands out, only a few small fixes for USB-audio,
HD-audio and Firewire. The USB-audio fix is the respin of the previous
race fix after a revert due to the regression"

* tag 'sound-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
Revert "ALSA: firewire-lib: change structure member with proper type"
ALSA: usb-audio: test EP_FLAG_RUNNING at urb completion
ALSA: usb-audio: Fix irq/process data synchronization
ALSA: hda - Apply asus-mode8 fixup to ASUS X71SL
ALSA: hda - Fix up GPIO for ASUS ROG Ranger
ALSA: firewire-lib: change structure member with proper type
ALSA: firewire-tascam: Fix to handle error from initialization of stream data
ALSA: fireworks: fix asymmetric API call at unit removal

+20 -18
+1 -1
sound/firewire/fireworks/fireworks_stream.c
··· 117 117 conn = &efw->in_conn; 118 118 119 119 amdtp_stream_destroy(stream); 120 - cmp_connection_destroy(&efw->out_conn); 120 + cmp_connection_destroy(conn); 121 121 } 122 122 123 123 static int
+1 -1
sound/firewire/tascam/tascam-stream.c
··· 343 343 if (err < 0) 344 344 amdtp_stream_destroy(&tscm->rx_stream); 345 345 346 - return 0; 346 + return err; 347 347 } 348 348 349 349 /* At bus reset, streaming is stopped and some registers are clear. */
+2
sound/pci/hda/patch_realtek.c
··· 2230 2230 SND_PCI_QUIRK(0x1043, 0x1971, "Asus W2JC", ALC882_FIXUP_ASUS_W2JC), 2231 2231 SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_FIXUP_EEE1601), 2232 2232 SND_PCI_QUIRK(0x1043, 0x84bc, "ASUS ET2700", ALC887_FIXUP_ASUS_BASS), 2233 + SND_PCI_QUIRK(0x1043, 0x8691, "ASUS ROG Ranger VIII", ALC882_FIXUP_GPIO3), 2233 2234 SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT), 2234 2235 SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP), 2235 2236 SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP), ··· 6984 6983 SND_PCI_QUIRK(0x1043, 0x15a7, "ASUS UX51VZH", ALC662_FIXUP_BASS_16), 6985 6984 SND_PCI_QUIRK(0x1043, 0x177d, "ASUS N551", ALC668_FIXUP_ASUS_Nx51), 6986 6985 SND_PCI_QUIRK(0x1043, 0x17bd, "ASUS N751", ALC668_FIXUP_ASUS_Nx51), 6986 + SND_PCI_QUIRK(0x1043, 0x1963, "ASUS X71SL", ALC662_FIXUP_ASUS_MODE8), 6987 6987 SND_PCI_QUIRK(0x1043, 0x1b73, "ASUS N55SF", ALC662_FIXUP_BASS_16), 6988 6988 SND_PCI_QUIRK(0x1043, 0x1bf3, "ASUS N76VZ", ALC662_FIXUP_BASS_MODE4_CHMAP), 6989 6989 SND_PCI_QUIRK(0x1043, 0x8469, "ASUS mobo", ALC662_FIXUP_NO_JACK_DETECT),
+10 -10
sound/usb/endpoint.c
··· 384 384 if (unlikely(atomic_read(&ep->chip->shutdown))) 385 385 goto exit_clear; 386 386 387 + if (unlikely(!test_bit(EP_FLAG_RUNNING, &ep->flags))) 388 + goto exit_clear; 389 + 387 390 if (usb_pipeout(ep->pipe)) { 388 391 retire_outbound_urb(ep, ctx); 389 392 /* can be stopped during retire callback */ ··· 536 533 "timeout: still %d active urbs on EP #%x\n", 537 534 alive, ep->ep_num); 538 535 clear_bit(EP_FLAG_STOPPING, &ep->flags); 536 + 537 + ep->data_subs = NULL; 538 + ep->sync_slave = NULL; 539 + ep->retire_data_urb = NULL; 540 + ep->prepare_data_urb = NULL; 539 541 540 542 return 0; 541 543 } ··· 920 912 /** 921 913 * snd_usb_endpoint_start: start an snd_usb_endpoint 922 914 * 923 - * @ep: the endpoint to start 924 - * @can_sleep: flag indicating whether the operation is executed in 925 - * non-atomic context 915 + * @ep: the endpoint to start 926 916 * 927 917 * A call to this function will increment the use count of the endpoint. 928 918 * In case it is not already running, the URBs for this endpoint will be ··· 930 924 * 931 925 * Returns an error if the URB submission failed, 0 in all other cases. 932 926 */ 933 - int snd_usb_endpoint_start(struct snd_usb_endpoint *ep, bool can_sleep) 927 + int snd_usb_endpoint_start(struct snd_usb_endpoint *ep) 934 928 { 935 929 int err; 936 930 unsigned int i; ··· 944 938 945 939 /* just to be sure */ 946 940 deactivate_urbs(ep, false); 947 - if (can_sleep) 948 - wait_clear_urbs(ep); 949 941 950 942 ep->active_mask = 0; 951 943 ep->unlink_mask = 0; ··· 1024 1020 1025 1021 if (--ep->use_count == 0) { 1026 1022 deactivate_urbs(ep, false); 1027 - ep->data_subs = NULL; 1028 - ep->sync_slave = NULL; 1029 - ep->retire_data_urb = NULL; 1030 - ep->prepare_data_urb = NULL; 1031 1023 set_bit(EP_FLAG_STOPPING, &ep->flags); 1032 1024 } 1033 1025 }
+1 -1
sound/usb/endpoint.h
··· 18 18 struct audioformat *fmt, 19 19 struct snd_usb_endpoint *sync_ep); 20 20 21 - int snd_usb_endpoint_start(struct snd_usb_endpoint *ep, bool can_sleep); 21 + int snd_usb_endpoint_start(struct snd_usb_endpoint *ep); 22 22 void snd_usb_endpoint_stop(struct snd_usb_endpoint *ep); 23 23 void snd_usb_endpoint_sync_pending_stop(struct snd_usb_endpoint *ep); 24 24 int snd_usb_endpoint_activate(struct snd_usb_endpoint *ep);
+5 -5
sound/usb/pcm.c
··· 218 218 } 219 219 } 220 220 221 - static int start_endpoints(struct snd_usb_substream *subs, bool can_sleep) 221 + static int start_endpoints(struct snd_usb_substream *subs) 222 222 { 223 223 int err; 224 224 ··· 231 231 dev_dbg(&subs->dev->dev, "Starting data EP @%p\n", ep); 232 232 233 233 ep->data_subs = subs; 234 - err = snd_usb_endpoint_start(ep, can_sleep); 234 + err = snd_usb_endpoint_start(ep); 235 235 if (err < 0) { 236 236 clear_bit(SUBSTREAM_FLAG_DATA_EP_STARTED, &subs->flags); 237 237 return err; ··· 260 260 dev_dbg(&subs->dev->dev, "Starting sync EP @%p\n", ep); 261 261 262 262 ep->sync_slave = subs->data_endpoint; 263 - err = snd_usb_endpoint_start(ep, can_sleep); 263 + err = snd_usb_endpoint_start(ep); 264 264 if (err < 0) { 265 265 clear_bit(SUBSTREAM_FLAG_SYNC_EP_STARTED, &subs->flags); 266 266 return err; ··· 850 850 /* for playback, submit the URBs now; otherwise, the first hwptr_done 851 851 * updates for all URBs would happen at the same time when starting */ 852 852 if (subs->direction == SNDRV_PCM_STREAM_PLAYBACK) 853 - ret = start_endpoints(subs, true); 853 + ret = start_endpoints(subs); 854 854 855 855 unlock: 856 856 snd_usb_unlock_shutdown(subs->stream->chip); ··· 1666 1666 1667 1667 switch (cmd) { 1668 1668 case SNDRV_PCM_TRIGGER_START: 1669 - err = start_endpoints(subs, false); 1669 + err = start_endpoints(subs); 1670 1670 if (err < 0) 1671 1671 return err; 1672 1672