* is the size of the buffer at kbuf.
* Returns the number of bytes used in kbuf.
*/
-static size_t cp210x_usbstr_from_user(char *kbuf, unsigned long ubuf, size_t klen)
+static size_t cp210x_usbstr_from_user(char *kbuf, unsigned long ubuf,
+ size_t klen)
{
struct cp210x_buffer t;
- char* str;
+ char *str;
size_t slen;
if (!kbuf || !ubuf || !klen)
u8 *tbuf;
int ret;
- if (!(tbuf = kmalloc(size, GFP_KERNEL)))
+ tbuf = kmalloc(size, GFP_KERNEL);
+ if (!tbuf)
return -ENOMEM;
if (requestype & 0x80) {
ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), request,
}
kfree(tbuf);
if (ret < 0 && ret != -EPIPE) {
- dev_printk(KERN_DEBUG, &dev->dev, "cp210x: control failed cmd rqt %u "
- "rq %u len %u ret %d\n", requestype, request, size, ret);
+ dev_printk(KERN_DEBUG, &dev->dev,
+ "cp210x: ctl failed cmd rqt %u rq %u len %u ret %d\n",
+ requestype, request, size, ret);
}
return ret;
}
{
dbg("%s", __func__);
-#if 1
- /* Is this better than usb_device_reset? It may be. Once a client issues
- * the reset ioctl, it must disconnect and reconnect, since the USB
- * connections are torn down. We also ignore the error return, since
- * the part resets and doesn't send one...
+ /* Instructing the CP210X to reset seems to work more reliably than
+ * calling usb_reset_device().
*/
cp210x_ctlmsg(port, 0xff, 0x40, 0x0008, 0x00, NULL, 0);
-#else
- usb_reset_device(port->serial->dev);
-#endif
return 0;
}
memcpy(&lconfig, config, sizeof(lconfig));
- /* Words from cp2103 are MSB */
+ /* Words from cp210x are MSB */
lconfig.reset.mode = cpu_to_be16(config->reset.mode);
lconfig.reset.latch = cpu_to_be16(config->reset.latch);
lconfig.suspend.mode = cpu_to_be16(config->suspend.mode);
lconfig.suspend.latch = cpu_to_be16(config->suspend.latch);
-#if 0 /* apparently not implemented by CP210X firmware */
- lconfig.reset.lowPower = cpu_to_be16(config->reset.lowPower);
- lconfig.suspend.lowPower = cpu_to_be16(config->suspend.lowPower);
-#else
+ /* apparently not implemented by CP210X firmware */
lconfig.suspend.lowPower = 0;
lconfig.reset.lowPower = 0;
-#endif
ret = cp210x_ctlmsg(port, 0xff, 0x40, 0x370c, 0, &lconfig,
sizeof(struct cp210x_port_config));
ret = cp210x_ctlmsg(port, 0xff, 0xc0, 0x370c, 0, config,
sizeof(struct cp210x_port_config));
if (ret == sizeof(struct cp210x_port_config)) {
- /* Words from cp2103 are MSB */
+ /* Words from cp210x are MSB */
config->reset.mode = be16_to_cpu(config->reset.mode);
config->reset.lowPower = be16_to_cpu(config->reset.lowPower);
config->reset.latch = be16_to_cpu(config->reset.latch);
return -EFAULT;
/* this looks wrong: TIOCMSET isn't going to work right */
- if (cp210x_tiocmset(tty, file, cmd==TIOCMBIC ? 0 : val,
- cmd==TIOCMBIC ? val : 0))
+ if (cp210x_tiocmset(tty, file, (cmd == TIOCMBIC) ? 0 : val,
+ (cmd == TIOCMBIC) ? val : 0))
return -EFAULT;
return 0;
}
case CP210x_IOCTL_GPIOBIS:
if (cp210x_get_partnum(port) == CP210x_PART_CP2103 &&
!cp210x_gpiosetb(port,
- (cmd==CP210x_IOCTL_GPIOBIC) ? 0 : arg,
- (cmd==CP210x_IOCTL_GPIOBIC) ? arg : 0))
+ (cmd == CP210x_IOCTL_GPIOBIC) ? 0 : arg,
+ (cmd == CP210x_IOCTL_GPIOBIC) ? arg : 0))
return 0;
return -EFAULT;
break;