cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

endpoint.h (2238B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __USBAUDIO_ENDPOINT_H
      3#define __USBAUDIO_ENDPOINT_H
      4
      5#define SND_USB_ENDPOINT_TYPE_DATA     0
      6#define SND_USB_ENDPOINT_TYPE_SYNC     1
      7
      8struct snd_usb_endpoint *snd_usb_get_endpoint(struct snd_usb_audio *chip,
      9					      int ep_num);
     10
     11int snd_usb_add_endpoint(struct snd_usb_audio *chip, int ep_num, int type);
     12
     13struct snd_usb_endpoint *
     14snd_usb_endpoint_open(struct snd_usb_audio *chip,
     15		      const struct audioformat *fp,
     16		      const struct snd_pcm_hw_params *params,
     17		      bool is_sync_ep);
     18void snd_usb_endpoint_close(struct snd_usb_audio *chip,
     19			    struct snd_usb_endpoint *ep);
     20int snd_usb_endpoint_configure(struct snd_usb_audio *chip,
     21			       struct snd_usb_endpoint *ep);
     22int snd_usb_endpoint_get_clock_rate(struct snd_usb_audio *chip, int clock);
     23
     24bool snd_usb_endpoint_compatible(struct snd_usb_audio *chip,
     25				 struct snd_usb_endpoint *ep,
     26				 const struct audioformat *fp,
     27				 const struct snd_pcm_hw_params *params);
     28
     29void snd_usb_endpoint_set_sync(struct snd_usb_audio *chip,
     30			       struct snd_usb_endpoint *data_ep,
     31			       struct snd_usb_endpoint *sync_ep);
     32void snd_usb_endpoint_set_callback(struct snd_usb_endpoint *ep,
     33				   int (*prepare)(struct snd_usb_substream *subs,
     34						  struct urb *urb,
     35						  bool in_stream_lock),
     36				   void (*retire)(struct snd_usb_substream *subs,
     37						  struct urb *urb),
     38				   struct snd_usb_substream *data_subs);
     39
     40int snd_usb_endpoint_start(struct snd_usb_endpoint *ep);
     41void snd_usb_endpoint_stop(struct snd_usb_endpoint *ep, bool keep_pending);
     42void snd_usb_endpoint_sync_pending_stop(struct snd_usb_endpoint *ep);
     43void snd_usb_endpoint_suspend(struct snd_usb_endpoint *ep);
     44int  snd_usb_endpoint_activate(struct snd_usb_endpoint *ep);
     45void snd_usb_endpoint_release(struct snd_usb_endpoint *ep);
     46void snd_usb_endpoint_free_all(struct snd_usb_audio *chip);
     47
     48int snd_usb_endpoint_implicit_feedback_sink(struct snd_usb_endpoint *ep);
     49int snd_usb_endpoint_next_packet_size(struct snd_usb_endpoint *ep,
     50				      struct snd_urb_ctx *ctx, int idx,
     51				      unsigned int avail);
     52void snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep,
     53				       bool in_stream_lock);
     54
     55#endif /* __USBAUDIO_ENDPOINT_H */