/*
* auerswald.c -- Auerswald PBX/System Telephone usb driver.
*
- * Copyright (C) 2001 Wolfgang Mües (wolfgang@iksw-muees.de)
+ * Copyright (C) 2001 Wolfgang Mües (wolfgang@iksw-muees.de)
*
* Very much code of this driver is borrowed from dabusb.c (Deti Fliegl)
* and from the USB Skeleton driver (Greg Kroah-Hartman). Thank you.
/*-------------------------------------------------------------------*/
/* Version Information */
#define DRIVER_VERSION "0.9.11"
-#define DRIVER_AUTHOR "Wolfgang Mües <wolfgang@iksw-muees.de>"
+#define DRIVER_AUTHOR "Wolfgang Mües <wolfgang@iksw-muees.de>"
#define DRIVER_DESC "Auerswald PBX/System Telephone usb driver"
/*-------------------------------------------------------------------*/
dr->wLength = cpu_to_le16 (size);
usb_fill_control_urb (urb, dev, pipe, (unsigned char*)dr, data, size, /* build urb */
- auerchain_blocking_completion,0);
+ auerchain_blocking_completion, NULL);
ret = auerchain_start_wait_urb (acp, urb, timeout, &length);
usb_free_urb (urb);
/* file IO stuff */
file->f_pos = 0;
file->private_data = ccp;
- return 0;
+ return nonseekable_open(inode, file);
/* Error exit */
ofail: up (&cp->mutex);
audevinfo_t devinfo;
pauerswald_t cp = NULL;
unsigned int u;
+ unsigned int __user *user_arg = (unsigned int __user *)arg;
+
dbg ("ioctl");
/* get the mutexes */
u = ccp->auerdev
&& (ccp->scontext.id != AUH_UNASSIGNED)
&& !list_empty (&cp->bufctl.free_buff_list);
- ret = put_user (u, (unsigned int *) arg);
+ ret = put_user (u, user_arg);
break;
/* return != 0 if connected to a service channel */
case IOCTL_AU_CONNECT:
dbg ("IOCTL_AU_CONNECT");
u = (ccp->scontext.id != AUH_UNASSIGNED);
- ret = put_user (u, (unsigned int *) arg);
+ ret = put_user (u, user_arg);
break;
/* return != 0 if Receive Data available */
u = 1;
}
}
- ret = put_user (u, (unsigned int *) arg);
+ ret = put_user (u, user_arg);
break;
/* return the max. buffer length for the device */
case IOCTL_AU_BUFLEN:
dbg ("IOCTL_AU_BUFLEN");
u = cp->maxControlLength;
- ret = put_user (u, (unsigned int *) arg);
+ ret = put_user (u, user_arg);
break;
/* requesting a service channel */
/* requesting a service means: release the previous one first */
auerswald_removeservice (cp, &ccp->scontext);
/* get the channel number */
- ret = get_user (u, (unsigned int *) arg);
+ ret = get_user (u, user_arg);
if (ret) {
break;
}
case IOCTL_AU_SLEN:
dbg ("IOCTL_AU_SLEN");
u = AUSI_DLEN;
- ret = put_user (u, (unsigned int *) arg);
+ ret = put_user (u, user_arg);
break;
default: