~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/sound/soc/sprd/sprd-pcm-dma.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0
  2 
  3 #ifndef __SPRD_PCM_DMA_H
  4 #define __SPRD_PCM_DMA_H
  5 
  6 #define DRV_NAME                "sprd_pcm_dma"
  7 #define SPRD_PCM_CHANNEL_MAX    2
  8 
  9 extern const struct snd_compress_ops sprd_platform_compress_ops;
 10 
 11 struct sprd_pcm_dma_params {
 12         dma_addr_t dev_phys[SPRD_PCM_CHANNEL_MAX];
 13         u32 datawidth[SPRD_PCM_CHANNEL_MAX];
 14         u32 fragment_len[SPRD_PCM_CHANNEL_MAX];
 15         const char *chan_name[SPRD_PCM_CHANNEL_MAX];
 16 };
 17 
 18 struct sprd_compr_playinfo {
 19         int total_time;
 20         int current_time;
 21         int total_data_length;
 22         int current_data_offset;
 23 };
 24 
 25 struct sprd_compr_params {
 26         u32 direction;
 27         u32 rate;
 28         u32 sample_rate;
 29         u32 channels;
 30         u32 format;
 31         u32 period;
 32         u32 periods;
 33         u32 info_phys;
 34         u32 info_size;
 35 };
 36 
 37 struct sprd_compr_callback {
 38         void (*drain_notify)(void *data);
 39         void *drain_data;
 40 };
 41 
 42 struct sprd_compr_ops {
 43         int (*open)(int str_id, struct sprd_compr_callback *cb);
 44         int (*close)(int str_id);
 45         int (*start)(int str_id);
 46         int (*stop)(int str_id);
 47         int (*pause)(int str_id);
 48         int (*pause_release)(int str_id);
 49         int (*drain)(int received_total);
 50         int (*set_params)(int str_id, struct sprd_compr_params *params);
 51 };
 52 
 53 struct sprd_compr_data {
 54         struct sprd_compr_ops *ops;
 55         struct sprd_pcm_dma_params *dma_params;
 56 };
 57 
 58 #endif /* __SPRD_PCM_DMA_H */
 59 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php