/* These belong in linux/pci.h. */
#define PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO 0x8005
#define PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO 0x8006
+#define PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO 0x8016
/* List of cards. */
static struct nm256_info *nmcard_list;
* mixer ioctl to the AC97 driver.
*/
static int
-nm256_default_mixer_ioctl (int dev, unsigned int cmd, caddr_t arg)
+nm256_default_mixer_ioctl (int dev, unsigned int cmd, void __user *arg)
{
struct nm256_info *card = nm256_find_card_for_mixer (dev);
if (card != NULL)
return nm256_install(pcidev, REV_NM256AV, "256AV");
if (pcidev->device == PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO)
return nm256_install(pcidev, REV_NM256ZX, "256ZX");
+ if (pcidev->device == PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO)
+ return nm256_install(pcidev, REV_NM256ZX, "256XL+");
return -1; /* should not come here ... */
}
/* Standard ioctl handler. */
static int
-nm256_audio_ioctl(int dev, unsigned int cmd, caddr_t arg)
+nm256_audio_ioctl(int dev, unsigned int cmd, void __user *arg)
{
int ret;
u32 oldinfo;
switch (cmd)
{
case SOUND_PCM_WRITE_RATE:
- if (get_user(ret, (int *) arg))
+ if (get_user(ret, (int __user *) arg))
return -EFAULT;
if (ret != 0) {
break;
case SNDCTL_DSP_STEREO:
- if (get_user(ret, (int *) arg))
+ if (get_user(ret, (int __user *) arg))
return -EFAULT;
card->sinfo[w].stereo = ret ? 1 : 0;
break;
case SOUND_PCM_WRITE_CHANNELS:
- if (get_user(ret, (int *) arg))
+ if (get_user(ret, (int __user *) arg))
return -EFAULT;
if (ret < 1 || ret > 3)
break;
case SNDCTL_DSP_SETFMT:
- if (get_user(ret, (int *) arg))
+ if (get_user(ret, (int __user *) arg))
return -EFAULT;
if (ret != 0) {
default:
return -EINVAL;
}
- return put_user(ret, (int *) arg);
+ return put_user(ret, (int __user *) arg);
}
/*
PCI_ANY_ID, PCI_ANY_ID, 0, 0},
{PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO,
PCI_ANY_ID, PCI_ANY_ID, 0, 0},
+ {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0},
{0,}
};
MODULE_DEVICE_TABLE(pci, nm256_pci_tbl);