static int device_setup[SNDRV_CARDS]; /* device parameter for this card */
 static bool ignore_ctl_error;
 static bool autoclock = true;
+static bool lowlatency = true;
 static char *quirk_alias[SNDRV_CARDS];
 static char *delayed_register[SNDRV_CARDS];
 static bool implicit_fb[SNDRV_CARDS];
                 "Ignore errors from USB controller for mixer interfaces.");
 module_param(autoclock, bool, 0444);
 MODULE_PARM_DESC(autoclock, "Enable auto-clock selection for UAC2 devices (default: yes).");
+module_param(lowlatency, bool, 0444);
+MODULE_PARM_DESC(lowlatency, "Enable low latency playback (default: yes).");
 module_param_array(quirk_alias, charp, NULL, 0444);
 MODULE_PARM_DESC(quirk_alias, "Quirk aliases, e.g. 0123abcd:5678beef.");
 module_param_array(delayed_register, charp, NULL, 0444);
        chip->setup = device_setup[idx];
        chip->generic_implicit_fb = implicit_fb[idx];
        chip->autoclock = autoclock;
+       chip->lowlatency = lowlatency;
        atomic_set(&chip->active, 1); /* avoid autopm during probing */
        atomic_set(&chip->usage_count, 0);
        atomic_set(&chip->shutdown, 0);
 
        /* check whether early start is needed for playback stream */
        subs->early_playback_start =
                subs->direction == SNDRV_PCM_STREAM_PLAYBACK &&
-               subs->data_endpoint->nominal_queue_size >= subs->buffer_bytes;
+               (!chip->lowlatency ||
+                (subs->data_endpoint->nominal_queue_size >= subs->buffer_bytes));
 
        if (subs->early_playback_start)
                ret = start_endpoints(subs);
 
        bool generic_implicit_fb;       /* from the 'implicit_fb' module param */
        bool autoclock;                 /* from the 'autoclock' module param */
 
+       bool lowlatency;                /* from the 'lowlatency' module param */
        struct usb_host_interface *ctrl_intf;   /* the audio control interface */
        struct media_device *media_dev;
        struct media_intf_devnode *ctl_intf_media_devnode;