Lines Matching defs:mos7840_port
335 struct moschip_port *mos7840_port)
338 dev_dbg(&port->dev, "SpRegOffset is %2x\n", mos7840_port->SpRegOffset);
339 dev_dbg(&port->dev, "ControlRegOffset is %2x\n", mos7840_port->ControlRegOffset);
340 dev_dbg(&port->dev, "DCRRegOffset is %2x\n", mos7840_port->DcrRegOffset);
416 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
418 if (test_and_set_bit_lock(MOS7840_FLAG_LED_BUSY, &mos7840_port->flags))
421 mos7840_set_led_async(mos7840_port, 0x0301, MODEM_CONTROL_REGISTER);
422 mod_timer(&mos7840_port->led_timer1,
434 struct moschip_port *mos7840_port = urb->context;
435 struct usb_serial_port *port = mos7840_port->port;
442 mos7840_port->read_urb_busy = false;
450 struct tty_port *tport = &mos7840_port->port->port;
457 if (mos7840_port->has_led)
460 mos7840_port->read_urb_busy = true;
461 retval = usb_submit_urb(mos7840_port->read_urb, GFP_ATOMIC);
465 mos7840_port->read_urb_busy = false;
477 struct moschip_port *mos7840_port = urb->context;
478 struct usb_serial_port *port = mos7840_port->port;
483 spin_lock_irqsave(&mos7840_port->pool_lock, flags);
485 if (urb == mos7840_port->write_urb_pool[i]) {
486 mos7840_port->busy[i] = 0;
490 spin_unlock_irqrestore(&mos7840_port->pool_lock, flags);
514 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
528 mos7840_port->write_urb_pool[j] = urb;
536 mos7840_port->write_urb_pool[j] = NULL;
556 status = mos7840_get_reg_sync(port, mos7840_port->SpRegOffset, &Data);
562 status = mos7840_set_reg_sync(port, mos7840_port->SpRegOffset, Data);
569 status = mos7840_set_reg_sync(port, mos7840_port->SpRegOffset, Data);
577 status = mos7840_get_reg_sync(port, mos7840_port->ControlRegOffset,
586 mos7840_port->ControlRegOffset, Data);
619 mos7840_port->shadowLCR = Data;
623 mos7840_port->shadowMCR = Data;
627 mos7840_port->shadowLCR = Data;
643 mos7840_port->shadowLCR = Data;
647 status = mos7840_get_reg_sync(port, mos7840_port->SpRegOffset, &Data);
650 status = mos7840_set_reg_sync(port, mos7840_port->SpRegOffset, Data);
653 status = mos7840_set_reg_sync(port, mos7840_port->SpRegOffset, Data);
660 status = mos7840_get_reg_sync(port, mos7840_port->ControlRegOffset,
663 status = mos7840_set_reg_sync(port, mos7840_port->ControlRegOffset,
668 status = mos7840_get_reg_sync(port, mos7840_port->ControlRegOffset,
671 status = mos7840_set_reg_sync(port, mos7840_port->ControlRegOffset,
679 dev_dbg(&port->dev, "port's number in the device is %d\n", mos7840_port->port_num);
680 mos7840_port->read_urb = port->read_urb;
684 usb_fill_bulk_urb(mos7840_port->read_urb,
689 mos7840_port->read_urb->transfer_buffer_length,
690 mos7840_bulk_in_callback, mos7840_port);
692 usb_fill_bulk_urb(mos7840_port->read_urb,
697 mos7840_port->read_urb->transfer_buffer_length,
698 mos7840_bulk_in_callback, mos7840_port);
702 mos7840_port->read_urb_busy = true;
703 response = usb_submit_urb(mos7840_port->read_urb, GFP_KERNEL);
707 mos7840_port->read_urb_busy = false;
712 mos7840_port->shadowMCR = MCR_MASTER_IE;
717 urb = mos7840_port->write_urb_pool[j];
739 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
744 spin_lock_irqsave(&mos7840_port->pool_lock, flags);
746 if (mos7840_port->busy[i]) {
747 struct urb *urb = mos7840_port->write_urb_pool[i];
751 spin_unlock_irqrestore(&mos7840_port->pool_lock, flags);
764 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
769 usb_kill_urb(mos7840_port->write_urb_pool[j]);
773 if (mos7840_port->write_urb_pool[j]) {
774 kfree(mos7840_port->write_urb_pool[j]->transfer_buffer);
775 usb_free_urb(mos7840_port->write_urb_pool[j]);
779 usb_kill_urb(mos7840_port->read_urb);
780 mos7840_port->read_urb_busy = false;
796 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
800 data = mos7840_port->shadowLCR | LCR_SET_BREAK;
802 data = mos7840_port->shadowLCR & ~LCR_SET_BREAK;
805 mos7840_port->shadowLCR = data;
806 dev_dbg(&port->dev, "%s mos7840_port->shadowLCR is %x\n", __func__, mos7840_port->shadowLCR);
808 mos7840_port->shadowLCR);
822 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
827 spin_lock_irqsave(&mos7840_port->pool_lock, flags);
829 if (!mos7840_port->busy[i])
832 spin_unlock_irqrestore(&mos7840_port->pool_lock, flags);
835 dev_dbg(&mos7840_port->port->dev, "%s - returns %d\n", __func__, room);
851 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
865 spin_lock_irqsave(&mos7840_port->pool_lock, flags);
867 if (!mos7840_port->busy[i]) {
868 mos7840_port->busy[i] = 1;
869 urb = mos7840_port->write_urb_pool[i];
874 spin_unlock_irqrestore(&mos7840_port->pool_lock, flags);
901 mos7840_bulk_out_data_callback, mos7840_port);
909 mos7840_bulk_out_data_callback, mos7840_port);
914 if (mos7840_port->has_led)
921 mos7840_port->busy[i] = 0;
944 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
956 mos7840_port->shadowMCR &= ~MCR_RTS;
958 mos7840_port->shadowMCR);
973 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
986 mos7840_port->shadowMCR |= MCR_RTS;
988 mos7840_port->shadowMCR);
1025 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
1030 mcr = mos7840_port->shadowMCR;
1045 mos7840_port->shadowMCR = mcr;
1102 static int mos7840_send_cmd_write_baud_rate(struct moschip_port *mos7840_port,
1105 struct usb_serial_port *port = mos7840_port->port;
1118 mos7840_port->shadowMCR = Data;
1131 mos7840_port->shadowMCR = Data;
1147 status = mos7840_get_reg_sync(port, mos7840_port->SpRegOffset,
1154 status = mos7840_set_reg_sync(port, mos7840_port->SpRegOffset,
1167 Data = mos7840_port->shadowLCR | SERIAL_LCR_DLAB;
1168 mos7840_port->shadowLCR = Data;
1181 Data = mos7840_port->shadowLCR & ~SERIAL_LCR_DLAB;
1182 mos7840_port->shadowLCR = Data;
1196 struct moschip_port *mos7840_port, struct ktermios *old_termios)
1198 struct usb_serial_port *port = mos7840_port->port;
1260 mos7840_port->shadowLCR &=
1262 mos7840_port->shadowLCR |= (lData | lParity | lStop);
1264 dev_dbg(&port->dev, "%s - mos7840_port->shadowLCR is %x\n", __func__,
1265 mos7840_port->shadowLCR);
1277 Data = mos7840_port->shadowLCR;
1282 mos7840_port->shadowMCR = Data;
1289 mos7840_port->shadowMCR = MCR_MASTER_IE;
1291 mos7840_port->shadowMCR |= (MCR_DTR | MCR_RTS);
1294 mos7840_port->shadowMCR |= (MCR_XON_ANY);
1296 mos7840_port->shadowMCR &= ~(MCR_XON_ANY);
1298 Data = mos7840_port->shadowMCR;
1311 status = mos7840_send_cmd_write_baud_rate(mos7840_port, baud);
1317 if (!mos7840_port->read_urb_busy) {
1318 mos7840_port->read_urb_busy = true;
1319 status = usb_submit_urb(mos7840_port->read_urb, GFP_KERNEL);
1323 mos7840_port->read_urb_busy = false;
1326 dev_dbg(&port->dev, "%s - mos7840_port->shadowLCR is End %x\n", __func__,
1327 mos7840_port->shadowLCR);
1340 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
1345 mos7840_change_port_settings(tty, mos7840_port, old_termios);
1347 if (!mos7840_port->read_urb_busy) {
1348 mos7840_port->read_urb_busy = true;
1349 status = usb_submit_urb(mos7840_port->read_urb, GFP_KERNEL);
1353 mos7840_port->read_urb_busy = false;
1393 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
1396 ss->line = mos7840_port->port->minor;
1397 ss->port = mos7840_port->port->port_number;
1562 struct moschip_port *mos7840_port;
1573 mos7840_port = kzalloc(sizeof(struct moschip_port), GFP_KERNEL);
1574 if (!mos7840_port)
1581 mos7840_port->port = port;
1582 spin_lock_init(&mos7840_port->pool_lock);
1587 mos7840_port->port_num = pnum + 1;
1589 dev_dbg(&port->dev, "mos7840_port->port_num = %d\n", mos7840_port->port_num);
1591 if (mos7840_port->port_num == 1) {
1592 mos7840_port->SpRegOffset = 0x0;
1593 mos7840_port->ControlRegOffset = 0x1;
1594 mos7840_port->DcrRegOffset = 0x4;
1596 u8 phy_num = mos7840_port->port_num;
1602 mos7840_port->SpRegOffset = 0x8 + 2 * (phy_num - 2);
1603 mos7840_port->ControlRegOffset = 0x9 + 2 * (phy_num - 2);
1604 mos7840_port->DcrRegOffset = 0x16 + 3 * (phy_num - 2);
1606 mos7840_dump_serial_port(port, mos7840_port);
1607 usb_set_serial_port_data(port, mos7840_port);
1611 mos7840_port->ControlRegOffset, &Data);
1623 mos7840_port->ControlRegOffset, Data);
1634 (__u16) (mos7840_port->DcrRegOffset + 0), Data);
1643 (__u16) (mos7840_port->DcrRegOffset + 1), Data);
1652 (__u16) (mos7840_port->DcrRegOffset + 2), Data);
1686 if ((mos7840_port->port_num != 1) && (serial->num_ports == 2)) {
1690 ((__u16)mos7840_port->port_num)), Data);
1692 (__u16)(ZLP_REG1 + ((__u16) mos7840_port->port_num)));
1702 ((__u16)mos7840_port->port_num) - 0x1), Data);
1704 (__u16)(ZLP_REG1 + ((__u16) mos7840_port->port_num) - 0x1));
1713 mos7840_port->has_led = device_flags & MCS_LED;
1716 if (mos7840_port->has_led) {
1717 mos7840_port->led_urb = usb_alloc_urb(0, GFP_KERNEL);
1718 mos7840_port->led_dr = kmalloc(sizeof(*mos7840_port->led_dr),
1720 if (!mos7840_port->led_urb || !mos7840_port->led_dr) {
1725 timer_setup(&mos7840_port->led_timer1, mos7840_led_off, 0);
1726 mos7840_port->led_timer1.expires =
1728 timer_setup(&mos7840_port->led_timer2, mos7840_led_flag_off,
1730 mos7840_port->led_timer2.expires =
1739 kfree(mos7840_port->led_dr);
1740 usb_free_urb(mos7840_port->led_urb);
1741 kfree(mos7840_port);
1748 struct moschip_port *mos7840_port = usb_get_serial_port_data(port);
1750 if (mos7840_port->has_led) {
1754 del_timer_sync(&mos7840_port->led_timer1);
1755 del_timer_sync(&mos7840_port->led_timer2);
1757 usb_kill_urb(mos7840_port->led_urb);
1758 usb_free_urb(mos7840_port->led_urb);
1759 kfree(mos7840_port->led_dr);
1762 kfree(mos7840_port);