Hi,

would you please give this a try an your us122s?
I integrated Martins stuff into mine. us428 still works here.
besides patching you'll need to copy the attached header into 
alsa-driver/usb/us428.
you'll probaply also still need Martin's patched usx2yloader & infrastructure 
files.

Gruesse,
Karsten
#ifndef USBUSX2Y_H
#define USBUSX2Y_H
#include <linux/usb.h>
#include "../../alsa-kernel/usb/usbaudio.h"
#include "usbus428ctldefs.h" 

#define NRURBS	        2	/* */
#define NRPACKS		1	/* usb-frames/ms per urb */

#ifndef LINUX_2_2
typedef struct urb urb_t;
typedef struct urb* purb_t;
#endif

#define URBS_AsyncSeq 10
#define URB_DataLen_AsyncSeq 32
typedef struct {
	urb_t*	urb[URBS_AsyncSeq];
	char*   buffer;
} snd_usX2Y_AsyncSeq_t;

typedef struct {
	int	submitted;
	int	len;
	urb_t*	urb[0];
} snd_usX2Y_urbSeq_t;


typedef struct {
	snd_usb_audio_t 	chip;
	int			stride;
	purb_t			In04urb;
	void*			In04Buf;
	char			In04Last[24];
	unsigned		In04IntCalls;
	snd_usX2Y_urbSeq_t*	US04;
	int			Seq04;
	int 			Seq04Complete;
	wait_queue_head_t	In04WaitQueue;
	snd_usX2Y_AsyncSeq_t	AS04;
	unsigned int		rate,
				format;
	int			refframes;
	purb_t			play_urb_waiting[2];
	int			pipe0Aframes[NRURBS][NRPACKS];
	snd_hwdep_t*		hwdep;
	int			chip_status;
	struct semaphore	open_mutex;
	us428ctls_sharedmem_t*	us428ctls_sharedmem;
	wait_queue_head_t	us428ctls_wait_queue_head;
} usX2Ydev_t;


#define usX2Y(c) ((usX2Ydev_t*)(c)->private_data)

int snd_usX2Y_audio_create(snd_card_t* card);

#ifndef OLD_USB
void snd_usX2Y_Out04Int(urb_t* urb, struct pt_regs *regs);
void snd_usX2Y_In04Int(urb_t* urb, struct pt_regs *regs);
#else
void snd_usX2Y_Out04Int(urb_t* urb);
void snd_usX2Y_In04Int(urb_t* urb);
#endif

#ifndef CONFIG_SND_DEBUG
#define snd_usX2Y_Out04Int 0
#endif

#define NAME_ALLCAPS "US-X2Y"

#endif

Attachment: snd-usb-us428+us122.patch.tar.bz2
Description: application/tbz

Reply via email to