// SPDX-License-Identifier: GPL-2.0-or-later/* */#include<linux/gfp.h>#include<linux/init.h>#include<linux/ratelimit.h>#include<linux/usb.h>#include<linux/usb/audio.h>#include<linux/slab.h>#include<sound/core.h>#include<sound/pcm.h>#include<sound/pcm_params.h>#include"usbaudio.h"#include"helper.h"#include"card.h"#include"endpoint.h"#include"pcm.h"#include"clock.h"#include"quirks.h"#define EP_FLAG_RUNNING 1#define EP_FLAG_STOPPING 2/* * snd_usb_endpoint is a model that abstracts everything related to an * USB endpoint and its streaming. * * There are functions to activate and deactivate the streaming URBs and * optional callbacks to let the pcm logic handle the actual content of the * packets for playba