Merge branch 'for-linus' into for-next
[deliverable/linux.git] / sound / usb / endpoint.c
index d6e2bb49c59c52f01288925fa52461eea510e78a..a83a18dbac254dcc13a456d7bdb2b331930126f3 100644 (file)
@@ -31,6 +31,7 @@
 #include "card.h"
 #include "endpoint.h"
 #include "pcm.h"
+#include "quirks.h"
 
 #define EP_FLAG_ACTIVATED      0
 #define EP_FLAG_RUNNING                1
@@ -170,6 +171,11 @@ static void retire_inbound_urb(struct snd_usb_endpoint *ep,
 {
        struct urb *urb = urb_ctx->urb;
 
+       if (unlikely(ep->skip_packets > 0)) {
+               ep->skip_packets--;
+               return;
+       }
+
        if (ep->sync_slave)
                snd_usb_handle_sync_urb(ep->sync_slave, ep, urb);
 
@@ -822,6 +828,8 @@ int snd_usb_endpoint_start(struct snd_usb_endpoint *ep, int can_sleep)
        ep->unlink_mask = 0;
        ep->phase = 0;
 
+       snd_usb_endpoint_start_quirk(ep);
+
        /*
         * If this endpoint has a data endpoint as implicit feedback source,
         * don't start the urbs here. Instead, mark them all as available,
This page took 0.038079 seconds and 5 git commands to generate.