1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #define MAXPACK 50 3*4882a593Smuzhiyun #define MAXBUFFERMS 100 4*4882a593Smuzhiyun #define MAXSTRIDE 3 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #define SSS (((MAXPACK*MAXBUFFERMS*MAXSTRIDE + 4096) / 4096) * 4096) 7*4882a593Smuzhiyun struct snd_usx2y_hwdep_pcm_shm { 8*4882a593Smuzhiyun char playback[SSS]; 9*4882a593Smuzhiyun char capture0x8[SSS]; 10*4882a593Smuzhiyun char capture0xA[SSS]; 11*4882a593Smuzhiyun volatile int playback_iso_head; 12*4882a593Smuzhiyun int playback_iso_start; 13*4882a593Smuzhiyun struct { 14*4882a593Smuzhiyun int frame, 15*4882a593Smuzhiyun offset, 16*4882a593Smuzhiyun length; 17*4882a593Smuzhiyun } captured_iso[128]; 18*4882a593Smuzhiyun volatile int captured_iso_head; 19*4882a593Smuzhiyun volatile unsigned captured_iso_frames; 20*4882a593Smuzhiyun int capture_iso_start; 21*4882a593Smuzhiyun }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun int usx2y_hwdep_pcm_new(struct snd_card *card); 24