Loading drivers/usb/serial/iuu_phoenix.c +13 −16 Original line number Diff line number Diff line Loading @@ -650,32 +650,33 @@ static int iuu_bulk_write(struct usb_serial_port *port) unsigned long flags; int result; int i; int buf_len; char *buf_ptr = port->write_urb->transfer_buffer; dbg("%s - enter", __func__); spin_lock_irqsave(&priv->lock, flags); *buf_ptr++ = IUU_UART_ESC; *buf_ptr++ = IUU_UART_TX; *buf_ptr++ = priv->writelen; memcpy(buf_ptr, priv->writebuf, priv->writelen); memcpy(buf_ptr, priv->writebuf, priv->writelen); buf_len = priv->writelen; priv->writelen = 0; spin_unlock_irqrestore(&priv->lock, flags); if (debug == 1) { for (i = 0; i < priv->writelen; i++) for (i = 0; i < buf_len; i++) sprintf(priv->dbgbuf + i*2 , "%02X", priv->writebuf[i]); priv->dbgbuf[priv->writelen+i*2] = 0; priv->dbgbuf[buf_len+i*2] = 0; dbg("%s - writing %i chars : %s", __func__, priv->writelen, priv->dbgbuf); buf_len, priv->dbgbuf); } usb_fill_bulk_urb(port->write_urb, port->serial->dev, usb_sndbulkpipe(port->serial->dev, port->bulk_out_endpointAddress), port->write_urb->transfer_buffer, priv->writelen + 3, port->write_urb->transfer_buffer, buf_len + 3, iuu_rxcmd, port); result = usb_submit_urb(port->write_urb, GFP_ATOMIC); spin_lock_irqsave(&priv->lock, flags); priv->writelen = 0; spin_unlock_irqrestore(&priv->lock, flags); usb_serial_port_softint(port); return result; } Loading Loading @@ -769,14 +770,10 @@ static int iuu_uart_write(struct tty_struct *tty, struct usb_serial_port *port, return -ENOMEM; spin_lock_irqsave(&priv->lock, flags); if (priv->writelen > 0) { /* buffer already filled but not commited */ spin_unlock_irqrestore(&priv->lock, flags); return 0; } /* fill the buffer */ memcpy(priv->writebuf, buf, count); priv->writelen = count; memcpy(priv->writebuf + priv->writelen, buf, count); priv->writelen += count; spin_unlock_irqrestore(&priv->lock, flags); return count; Loading Loading
drivers/usb/serial/iuu_phoenix.c +13 −16 Original line number Diff line number Diff line Loading @@ -650,32 +650,33 @@ static int iuu_bulk_write(struct usb_serial_port *port) unsigned long flags; int result; int i; int buf_len; char *buf_ptr = port->write_urb->transfer_buffer; dbg("%s - enter", __func__); spin_lock_irqsave(&priv->lock, flags); *buf_ptr++ = IUU_UART_ESC; *buf_ptr++ = IUU_UART_TX; *buf_ptr++ = priv->writelen; memcpy(buf_ptr, priv->writebuf, priv->writelen); memcpy(buf_ptr, priv->writebuf, priv->writelen); buf_len = priv->writelen; priv->writelen = 0; spin_unlock_irqrestore(&priv->lock, flags); if (debug == 1) { for (i = 0; i < priv->writelen; i++) for (i = 0; i < buf_len; i++) sprintf(priv->dbgbuf + i*2 , "%02X", priv->writebuf[i]); priv->dbgbuf[priv->writelen+i*2] = 0; priv->dbgbuf[buf_len+i*2] = 0; dbg("%s - writing %i chars : %s", __func__, priv->writelen, priv->dbgbuf); buf_len, priv->dbgbuf); } usb_fill_bulk_urb(port->write_urb, port->serial->dev, usb_sndbulkpipe(port->serial->dev, port->bulk_out_endpointAddress), port->write_urb->transfer_buffer, priv->writelen + 3, port->write_urb->transfer_buffer, buf_len + 3, iuu_rxcmd, port); result = usb_submit_urb(port->write_urb, GFP_ATOMIC); spin_lock_irqsave(&priv->lock, flags); priv->writelen = 0; spin_unlock_irqrestore(&priv->lock, flags); usb_serial_port_softint(port); return result; } Loading Loading @@ -769,14 +770,10 @@ static int iuu_uart_write(struct tty_struct *tty, struct usb_serial_port *port, return -ENOMEM; spin_lock_irqsave(&priv->lock, flags); if (priv->writelen > 0) { /* buffer already filled but not commited */ spin_unlock_irqrestore(&priv->lock, flags); return 0; } /* fill the buffer */ memcpy(priv->writebuf, buf, count); priv->writelen = count; memcpy(priv->writebuf + priv->writelen, buf, count); priv->writelen += count; spin_unlock_irqrestore(&priv->lock, flags); return count; Loading