git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
sound
/
usb
/
usx2y
/
usX2Yhwdep.c
diff --git
a/sound/usb/usx2y/usX2Yhwdep.c
b/sound/usb/usx2y/usX2Yhwdep.c
index
e6717f3
..
40ca82a
100644
(file)
--- a/
sound/usb/usx2y/usX2Yhwdep.c
+++ b/
sound/usb/usx2y/usX2Yhwdep.c
@@
-31,6
+31,8
@@
#include "usbusx2y.h"
#include "usX2Yhwdep.h"
#include "usbusx2y.h"
#include "usX2Yhwdep.h"
+int usX2Y_hwdep_pcm_new(snd_card_t* card);
+
static struct page * snd_us428ctls_vm_nopage(struct vm_area_struct *area, unsigned long address, int *type)
{
static struct page * snd_us428ctls_vm_nopage(struct vm_area_struct *area, unsigned long address, int *type)
{
@@
-95,20
+97,14
@@
static unsigned int snd_us428ctls_poll(snd_hwdep_t *hw, struct file *file, poll_
{
unsigned int mask = 0;
usX2Ydev_t *us428 = (usX2Ydev_t*)hw->private_data;
{
unsigned int mask = 0;
usX2Ydev_t *us428 = (usX2Ydev_t*)hw->private_data;
- static unsigned LastN;
-
+ us428ctls_sharedmem_t *shm = us428->us428ctls_sharedmem;
if (us428->chip_status & USX2Y_STAT_CHIP_HUP)
return POLLHUP;
poll_wait(file, &us428->us428ctls_wait_queue_head, wait);
if (us428->chip_status & USX2Y_STAT_CHIP_HUP)
return POLLHUP;
poll_wait(file, &us428->us428ctls_wait_queue_head, wait);
- down(&us428->open_mutex);
- if (us428->us428ctls_sharedmem
- && us428->us428ctls_sharedmem->CtlSnapShotLast != LastN) {
+ if (shm != NULL && shm->CtlSnapShotLast != shm->CtlSnapShotRed)
mask |= POLLIN;
mask |= POLLIN;
- LastN = us428->us428ctls_sharedmem->CtlSnapShotLast;
- }
- up(&us428->open_mutex);
return mask;
}
return mask;
}
@@
-133,7
+129,7
@@
static int snd_usX2Y_hwdep_dsp_status(snd_hwdep_t *hw, snd_hwdep_dsp_status_t *i
};
int id = -1;
};
int id = -1;
- switch (
((usX2Ydev_t*)hw->private_data)->chip.dev->descriptor.idProduct
) {
+ switch (
le16_to_cpu(((usX2Ydev_t*)hw->private_data)->chip.dev->descriptor.idProduct)
) {
case USB_ID_US122:
id = USX2Y_TYPE_122;
break;
case USB_ID_US122:
id = USX2Y_TYPE_122;
break;
@@
-185,7
+181,7
@@
static int usX2Y_create_usbmidi(snd_card_t* card )
};
struct usb_device *dev = usX2Y(card)->chip.dev;
struct usb_interface *iface = usb_ifnum_to_if(dev, 0);
};
struct usb_device *dev = usX2Y(card)->chip.dev;
struct usb_interface *iface = usb_ifnum_to_if(dev, 0);
- snd_usb_audio_quirk_t *quirk =
dev->descriptor.idProduct
== USB_ID_US428 ? &quirk_2 : &quirk_1;
+ snd_usb_audio_quirk_t *quirk =
le16_to_cpu(dev->descriptor.idProduct)
== USB_ID_US428 ? &quirk_2 : &quirk_1;
snd_printdd("usX2Y_create_usbmidi \n");
return snd_usb_create_midi_interface(&usX2Y(card)->chip, iface, quirk);
snd_printdd("usX2Y_create_usbmidi \n");
return snd_usb_create_midi_interface(&usX2Y(card)->chip, iface, quirk);
@@
-202,6
+198,8
@@
static int usX2Y_create_alsa_devices(snd_card_t* card)
}
if ((err = usX2Y_audio_create(card)) < 0)
break;
}
if ((err = usX2Y_audio_create(card)) < 0)
break;
+ if ((err = usX2Y_hwdep_pcm_new(card)) < 0)
+ break;
if ((err = snd_card_register(card)) < 0)
break;
} while (0);
if ((err = snd_card_register(card)) < 0)
break;
} while (0);