- removed all usage of port->sem as the usb serial core now does this.
dbg(__FUNCTION__" port %d", port->number);
- down (&port->sem);
-
++port->open_count;
if (port->open_count == 1) {
}
exit:
- up (&port->sem);
-
return retval;
} /* belkin_sa_open */
dbg(__FUNCTION__" port %d", port->number);
- down (&port->sem);
-
--port->open_count;
if (port->open_count <= 0) {
}
port->open_count = 0;
}
-
- up (&port->sem);
} /* belkin_sa_close */
dbg(__FUNCTION__ " - port %d", port->number);
- down (&port->sem);
-
++port->open_count;
if (port->open_count == 1) {
dbg(__FUNCTION__ " - usb_submit_urb(int urb)");
}
- up (&port->sem);
-
return result;
}
{
dbg(__FUNCTION__ " - port %d", port->number);
- down (&port->sem);
-
--port->open_count;
if (port->open_count <= 0) {
}
port->open_count = 0;
}
-
- up (&port->sem);
}
static int cyberjack_write (struct usb_serial_port *port, int from_user, const unsigned char *buf, int count)
return (0);
}
- down (&port->sem);
-
if( (count+priv->wrfilled)>sizeof(priv->wrbuf) ) {
/* To much data for buffer. Reset buffer. */
priv->wrfilled=0;
/* Copy data */
if (from_user) {
- if (copy_from_user(priv->wrbuf+priv->wrfilled, buf, count))
+ if (copy_from_user(priv->wrbuf+priv->wrfilled, buf, count)) {
return -EFAULT;
+ }
} else {
memcpy (priv->wrbuf+priv->wrfilled, buf, count);
}
/* Throw away data. No better idea what to do with it. */
priv->wrfilled=0;
priv->wrsent=0;
- up (&port->sem);
return 0;
}
}
}
- up (&port->sem);
return (count);
}
return;
}
- down (&port->sem);
-
dbg(__FUNCTION__ " - transmitting data (frame n)");
length = ((priv->wrfilled - priv->wrsent) > port->bulk_out_size) ?
/* Throw away data. No better idea what to do with it. */
priv->wrfilled=0;
priv->wrsent=0;
- up (&port->sem);
queue_task(&port->tqueue, &tq_immediate);
mark_bh(IMMEDIATE_BH);
return;
priv->wrsent=0;
}
- up (&port->sem);
queue_task(&port->tqueue, &tq_immediate);
mark_bh(IMMEDIATE_BH);
return;
dbg(__FUNCTION__ " - port %d", port->number);
- down (&port->sem);
-
++port->open_count;
if (port->open_count == 1) {
}
- up (&port->sem);
-
return result;
}
if (!serial)
return;
- down (&port->sem);
-
--port->open_count;
if (port->open_count <= 0) {
port->open_count = 0;
}
- up (&port->sem);
-
/* Uncomment the following line if you want to see some statistics in your syslog */
/* info ("Bytes In = %d Bytes Out = %d", bytes_in, bytes_out); */
}
static void empeg_throttle (struct usb_serial_port *port)
{
dbg(__FUNCTION__ " - port %d", port->number);
-
- down (&port->sem);
-
usb_unlink_urb (port->read_urb);
-
- up (&port->sem);
-
- return;
-
}
dbg(__FUNCTION__ " - port %d", port->number);
- down (&port->sem);
-
port->read_urb->dev = port->serial->dev;
result = usb_submit_urb(port->read_urb, GFP_KERNEL);
if (result)
err(__FUNCTION__ " - failed submitting read urb, error %d", result);
- up (&port->sem);
-
return;
-
}
dbg(__FUNCTION__);
- down (&port->sem);
-
++port->open_count;
if (port->open_count == 1){
err(__FUNCTION__ " - failed submitting read urb, error %d", result);
}
- up (&port->sem);
return result;
} /* ftdi_sio_open */
dbg( __FUNCTION__);
- down (&port->sem);
--port->open_count;
if (port->open_count <= 0) {
tty_hangup(port->tty);
}
}
-
- up (&port->sem);
-
} /* ftdi_sio_close */
return (0);
}
- down(&port->sem);
-
count += data_offset;
count = (count > port->bulk_out_size) ? port->bulk_out_size : count;
if (from_user) {
if (copy_from_user(port->write_urb->transfer_buffer + data_offset,
buf, count - data_offset )){
- up (&port->sem);
return -EFAULT;
}
} else {
result = usb_submit_urb(port->write_urb, GFP_KERNEL);
if (result) {
err(__FUNCTION__ " - failed submitting write urb, error %d", result);
- up (&port->sem);
return 0;
}
- up (&port->sem);
dbg(__FUNCTION__ " write returning: %d", count - data_offset);
return (count - data_offset);
-
} /* ftdi_sio_write */
static void ftdi_sio_write_bulk_callback (struct urb *urb)
dbg("%s - port %d", __FUNCTION__, port->number);
- down (&port->sem);
-
++port->open_count;
if (port->open_count == 1) {
if (result)
err("%s - failed submitting read urb, error %d", __FUNCTION__, result);
}
-
- up (&port->sem);
-
return result;
}
if (!serial)
return;
- down (&port->sem);
-
--port->open_count;
if (port->open_count <= 0) {
port->open_count = 0;
}
- up (&port->sem);
}
static int ir_write (struct usb_serial_port *port, int from_user, const unsigned char *buf, int count)
dbg("keyspan_open called for port%d.\n", port->number);
- down (&port->sem);
already_active = port->open_count;
++port->open_count;
- up (&port->sem);
if (already_active)
return 0;
p_priv->out_flip = 0;
p_priv->in_flip = 0;
- down (&port->sem);
-
if (--port->open_count <= 0) {
if (serial->dev) {
/* Stop reading/writing urbs */
port->open_count = 0;
port->tty = 0;
}
- up (&port->sem);
}
int rc = 0;
struct keyspan_pda_private *priv;
- down (&port->sem);
-
++port->open_count;
if (port->open_count == 1) {
}
-
- up (&port->sem);
return rc;
error:
--port->open_count;
- up (&port->sem);
return rc;
}
{
struct usb_serial *serial = port->serial;
- down (&port->sem);
-
--port->open_count;
if (port->open_count <= 0) {
}
port->open_count = 0;
}
-
- up (&port->sem);
}
dbg(__FUNCTION__" port %d", port->number);
- down (&port->sem);
-
++port->open_count;
if (port->open_count == 1) {
}
exit:
- up (&port->sem);
-
return retval;
} /* klsi_105_open */
if(!serial)
return;
- down (&port->sem);
-
--port->open_count;
if (port->open_count <= 0) {
port->open_count = 0;
info("kl5kusb105 port stats: %ld bytes in, %ld bytes out", priv->bytes_in, priv->bytes_out);
}
-
- up (&port->sem);
} /* klsi_105_close */
dbg(__FUNCTION__ " - port %d", port->number);
- down (&port->sem); /* to lock against someone else trying to
- take an URB we just selected from the pool */
-
while (count > 0) {
/* try to find a free urb (write 0 bytes if none) */
struct urb *urb = NULL;
if (from_user) {
if (copy_from_user(urb->transfer_buffer
+ KLSI_105_DATA_OFFSET, buf, size)) {
- up (&port->sem);
return -EFAULT;
}
} else {
count -= size;
}
exit:
- up (&port->sem);
priv->bytes_out+=bytes_sent;
return bytes_sent; /* that's how much we wrote */
static void klsi_105_throttle (struct usb_serial_port *port)
{
-
dbg(__FUNCTION__ " - port %d", port->number);
-
- down (&port->sem);
-
usb_unlink_urb (port->read_urb);
-
- up (&port->sem);
-
- return;
}
+
static void klsi_105_unthrottle (struct usb_serial_port *port)
{
int result;
dbg(__FUNCTION__ " - port %d", port->number);
- down (&port->sem);
-
port->read_urb->dev = port->serial->dev;
result = usb_submit_urb(port->read_urb, GFP_KERNEL);
if (result)
err(__FUNCTION__ " - failed submitting read urb, error %d",
result);
-
- up (&port->sem);
-
- return;
}
dbg(__FUNCTION__" port %d", port->number);
- down (&port->sem);
-
++port->open_count;
if (port->open_count == 1) {
}
exit:
- up (&port->sem);
-
return 0;
} /* mct_u232_open */
{
dbg(__FUNCTION__" port %d", port->number);
- down (&port->sem);
-
--port->open_count;
if (port->open_count <= 0) {
}
port->open_count = 0;
}
-
- up (&port->sem);
} /* mct_u232_close */
bytes_sent = 0;
while (count > 0) {
-
- down (&port->sem);
-
size = (count > port->bulk_out_size) ? port->bulk_out_size : count;
usb_serial_debug_data (__FILE__, __FUNCTION__, size, buf);
if (from_user) {
if (copy_from_user(port->write_urb->transfer_buffer, buf, size)) {
- up (&port->sem);
return -EFAULT;
}
}
if (result) {
err(__FUNCTION__
" - failed submitting write urb, error %d", result);
- up (&port->sem);
return result;
}
- up (&port->sem);
-
bytes_sent += size;
if (write_blocking)
interruptible_sleep_on(&port->write_wait);
if (!serial)
return -ENODEV;
- down (&port->sem);
-
++port->open_count;
if (port->open_count == 1) {
if( !od ) {
err(__FUNCTION__"- kmalloc(%Zd) failed.", sizeof(struct omninet_data));
port->open_count = 0;
- up (&port->sem);
return -ENOMEM;
}
err(__FUNCTION__ " - failed submitting read urb, error %d", result);
}
- up (&port->sem);
-
return result;
}
if (!serial)
return;
- down (&port->sem);
-
--port->open_count;
if (port->open_count <= 0) {
if (od)
kfree(od);
}
-
- up (&port->sem);
}
dbg (__FUNCTION__ " - port %d", port->number);
- down (&port->sem);
-
++port->open_count;
if (port->open_count == 1) {
result = usb_submit_urb (port->read_urb, GFP_KERNEL);
if (result) {
err(__FUNCTION__ " - failed submitting read urb, error %d", result);
- up (&port->sem);
pl2303_close (port, NULL);
return -EPROTO;
}
result = usb_submit_urb (port->interrupt_in_urb, GFP_KERNEL);
if (result) {
err(__FUNCTION__ " - failed submitting interrupt urb, error %d", result);
- up (&port->sem);
pl2303_close (port, NULL);
return -EPROTO;
}
}
- up (&port->sem);
return 0;
}
dbg (__FUNCTION__ " - port %d", port->number);
- down (&port->sem);
-
--port->open_count;
if (port->open_count <= 0) {
if (serial->dev) {
}
port->open_count = 0;
}
-
- up (&port->sem);
}
static int set_modem_info (struct usb_serial_port *port, unsigned int cmd, unsigned int *value)
dbg(__FUNCTION__" - port %d", port->number);
- down (&port->sem);
-
++port->open_count;
if (port->open_count == 1) {
}
dbg(__FUNCTION__ " - exit");
- up (&port->sem);
-
return retval;
error_exit:
--port->open_count;
dbg(__FUNCTION__ " - error_exit");
- up (&port->sem);
-
return retval;
}
dbg(__FUNCTION__ " - port %d", port->number);
- down (&port->sem);
--port->open_count;
if (port->open_count <= 0) {
usb_unlink_urb (port->read_urb);
port->open_count = 0;
}
- up (&port->sem);
}
dbg(__FUNCTION__ " -port %d", port->number);
- down (&port->sem);
-
if ((!port->tty) || (!port->tty->termios)) {
dbg(__FUNCTION__" - no tty structures");
goto exit;
whiteheat_send_cmd (port->serial, WHITEHEAT_SETUP_PORT, (__u8 *)&port_settings, sizeof(port_settings));
exit:
- up (&port->sem);
return;
}