Lines Matching refs:serial
189 static int pl2303_vendor_read(struct usb_serial *serial, u16 value, in pl2303_vendor_read() argument
192 struct device *dev = &serial->interface->dev; in pl2303_vendor_read()
195 res = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0), in pl2303_vendor_read()
212 static int pl2303_vendor_write(struct usb_serial *serial, u16 value, u16 index) in pl2303_vendor_write() argument
214 struct device *dev = &serial->interface->dev; in pl2303_vendor_write()
219 res = usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0), in pl2303_vendor_write()
231 static int pl2303_update_reg(struct usb_serial *serial, u8 reg, u8 mask, u8 val) in pl2303_update_reg() argument
240 ret = pl2303_vendor_read(serial, reg | 0x80, buf); in pl2303_update_reg()
247 ret = pl2303_vendor_write(serial, reg, *buf); in pl2303_update_reg()
254 static int pl2303_probe(struct usb_serial *serial, in pl2303_probe() argument
257 usb_set_serial_data(serial, (void *)id->driver_info); in pl2303_probe()
267 static int pl2303_endpoint_hack(struct usb_serial *serial, in pl2303_endpoint_hack() argument
270 struct usb_interface *interface = serial->interface; in pl2303_endpoint_hack()
271 struct usb_device *dev = serial->dev; in pl2303_endpoint_hack()
297 static int pl2303_calc_num_ports(struct usb_serial *serial, in pl2303_calc_num_ports() argument
300 unsigned long quirks = (unsigned long)usb_get_serial_data(serial); in pl2303_calc_num_ports()
301 struct device *dev = &serial->interface->dev; in pl2303_calc_num_ports()
305 ret = pl2303_endpoint_hack(serial, epds); in pl2303_calc_num_ports()
318 static int pl2303_startup(struct usb_serial *serial) in pl2303_startup() argument
334 if (serial->dev->descriptor.bDeviceClass == 0x02) in pl2303_startup()
336 else if (serial->dev->descriptor.bMaxPacketSize0 == 0x40) in pl2303_startup()
338 else if (serial->dev->descriptor.bDeviceClass == 0x00) in pl2303_startup()
340 else if (serial->dev->descriptor.bDeviceClass == 0xFF) in pl2303_startup()
342 dev_dbg(&serial->interface->dev, "device type: %d\n", type); in pl2303_startup()
345 spriv->quirks = (unsigned long)usb_get_serial_data(serial); in pl2303_startup()
348 usb_set_serial_data(serial, spriv); in pl2303_startup()
350 pl2303_vendor_read(serial, 0x8484, buf); in pl2303_startup()
351 pl2303_vendor_write(serial, 0x0404, 0); in pl2303_startup()
352 pl2303_vendor_read(serial, 0x8484, buf); in pl2303_startup()
353 pl2303_vendor_read(serial, 0x8383, buf); in pl2303_startup()
354 pl2303_vendor_read(serial, 0x8484, buf); in pl2303_startup()
355 pl2303_vendor_write(serial, 0x0404, 1); in pl2303_startup()
356 pl2303_vendor_read(serial, 0x8484, buf); in pl2303_startup()
357 pl2303_vendor_read(serial, 0x8383, buf); in pl2303_startup()
358 pl2303_vendor_write(serial, 0, 1); in pl2303_startup()
359 pl2303_vendor_write(serial, 1, 0); in pl2303_startup()
361 pl2303_vendor_write(serial, 2, 0x24); in pl2303_startup()
363 pl2303_vendor_write(serial, 2, 0x44); in pl2303_startup()
370 static void pl2303_release(struct usb_serial *serial) in pl2303_release() argument
372 struct pl2303_serial_private *spriv = usb_get_serial_data(serial); in pl2303_release()
405 struct usb_device *dev = port->serial->dev; in pl2303_set_control_lines()
503 struct usb_serial *serial = port->serial; in pl2303_encode_baud_rate() local
504 struct pl2303_serial_private *spriv = usb_get_serial_data(serial); in pl2303_encode_baud_rate()
533 struct usb_device *udev = port->serial->dev; in pl2303_get_line_request()
556 struct usb_device *udev = port->serial->dev; in pl2303_set_line_request()
600 struct usb_serial *serial = port->serial; in pl2303_set_termios() local
601 struct pl2303_serial_private *spriv = usb_get_serial_data(serial); in pl2303_set_termios()
723 pl2303_update_reg(serial, 0, PL2303_FLOWCTRL_MASK, 0x40); in pl2303_set_termios()
725 pl2303_update_reg(serial, 0, PL2303_FLOWCTRL_MASK, 0x60); in pl2303_set_termios()
727 pl2303_update_reg(serial, 0, PL2303_FLOWCTRL_MASK, 0xc0); in pl2303_set_termios()
729 pl2303_update_reg(serial, 0, PL2303_FLOWCTRL_MASK, 0); in pl2303_set_termios()
761 struct usb_serial *serial = port->serial; in pl2303_open() local
762 struct pl2303_serial_private *spriv = usb_get_serial_data(serial); in pl2303_open()
766 usb_clear_halt(serial->dev, port->write_urb->pipe); in pl2303_open()
767 usb_clear_halt(serial->dev, port->read_urb->pipe); in pl2303_open()
770 pl2303_vendor_write(serial, 8, 0); in pl2303_open()
771 pl2303_vendor_write(serial, 9, 0); in pl2303_open()
872 struct usb_serial *serial = port->serial; in pl2303_set_break() local
884 result = usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0), in pl2303_set_break()
902 struct usb_serial *serial = port->serial; in pl2303_update_line_status() local
903 struct pl2303_serial_private *spriv = usb_get_serial_data(serial); in pl2303_update_line_status()