Jump to content
Форум по продукции MOXA

swarty

Пользователи
  • Posts

    2
  • Joined

  • Last visited

swarty's Achievements

Новичок

Новичок (1/5)

0

Reputation

  1. Да, моя ошибка. Я использовал последний официальный драйвер (1.3.5): Что характерно, версии на сайтах отстают от того, что было упомянуто в теме ранее. Теперь по поводу ошибки. Похоже, парсер форума съел часть пустых строк. Если что, в прицепленном файле корректная версия патча. mxu11x0.txt
  2. Обновление драйвера. Писал для 3.14, пробовал собирать на 3.11, так что на 3.13 должно работать. Пока еще плотно не тестировал. diff -Nur mxu11x0/driver/mxu11x0.c mxu11x0-git/driver/mxu11x0.c --- mxu11x0/driver/mxu11x0.c 2013-06-10 13:26:04.000000000 +0400 +++ mxu11x0-git/driver/mxu11x0.c 2014-07-30 13:06:29.998836254 +0400 @@ -900,8 +900,11 @@ MXU1_PIPE_TIMEOUT_ENABLE | (MXU1_TRANSFER_TIMEOUT << 2)); +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); - +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif if (mxport == NULL) return -ENODEV; @@ -915,12 +918,20 @@ if (port->tty) port->tty->low_latency = MXU1_DEFAULT_LOW_LATENCY; #else + +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) + if (port->port.tty) + port->port.tty->low_latency = MXU1_DEFAULT_LOW_LATENCY; + port_number = port->number - port->serial->minor; +#else if (port->port.tty) - port->port.tty->low_latency = MXU1_DEFAULT_LOW_LATENCY; + port->port.low_latency = MXU1_DEFAULT_LOW_LATENCY; + port_number = port->port_number - port->minor; +#endif + #endif - port_number = port->number - port->serial->minor; memset(&(mxport->mxp_icount), 0x00, sizeof(mxport->mxp_icount)); @@ -1059,8 +1070,12 @@ int status = 0; int do_up; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); - +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif + mxdev = usb_get_serial_data(port->serial); mxport = usb_get_serial_port_data(port); if (mxdev == NULL || mxport == NULL) @@ -1080,7 +1095,12 @@ mxport->mxp_write_urb_in_use = 0; - port_number = port->number - port->serial->minor; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) + port_number = port->number - port->serial->minor; +#else + port_number = port->port_number - port->minor; +#endif + dbg("%s - sending MXU1_CLOSE_PORT", __FUNCTION__); status = mxu1_command_out_sync(mxdev, MXU1_CLOSE_PORT, @@ -1121,7 +1141,12 @@ { struct mxu1_port *mxport = usb_get_serial_port_data(port); + +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif if (count == 0) { dbg("%s - write request of 0 bytes", __FUNCTION__); @@ -1157,7 +1182,11 @@ int room = 0; unsigned long flags; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif if (mxport == NULL) return -ENODEV; @@ -1184,7 +1213,11 @@ int chars = 0; unsigned long flags; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif if (mxport == NULL) return -ENODEV; @@ -1213,7 +1246,12 @@ #if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)) struct tty_struct *tty; #endif + +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif if (mxport == NULL) return; @@ -1248,7 +1286,11 @@ #endif int status = 0; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif if (mxport == NULL) return; @@ -1279,7 +1321,11 @@ struct async_icount cnow = mxport->mxp_icount; dbg("%s - (%d) TIOCGICOUNT RX=%d, TX=%d", - __func__, port->number, +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) + __func__, port->number, +#else + __func__, port->port_number, +#endif cnow.rx, cnow.tx); icount->cts = cnow.cts; @@ -1317,27 +1363,43 @@ struct mxu1_port *mxport = usb_get_serial_port_data(port); struct async_icount cnow; struct async_icount cprev; - +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d, cmd = 0x%04X", __FUNCTION__, port->number, cmd); +#else + dbg("%s - port %d, cmd = 0x%04X", __FUNCTION__, port->port_number, cmd); +#endif if (mxport == NULL) return -ENODEV; switch (cmd) { case TIOCGSERIAL: - dbg("%s - (%d) TIOCGSERIAL", __FUNCTION__, port->number); +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) + dbg("%s - (%d) TIOCGSERIAL", __FUNCTION__, port->number); +#else + dbg("%s - (%d) TIOCGSERIAL", __FUNCTION__, port->port_number); +#endif return mxu1_get_serial_info(mxport, (struct serial_struct __user *)arg); case TIOCSSERIAL: - dbg("%s - (%d) TIOCSSERIAL", __FUNCTION__, port->number); +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) + dbg("%s - (%d) TIOCSSERIAL", __FUNCTION__, port->number); +#else + dbg("%s - (%d) TIOCSSERIAL", __FUNCTION__, port->port_number); +#endif return mxu1_set_serial_info(mxport, (struct serial_struct __user *)arg); case TIOCMIWAIT: - dbg("%s - (%d) TIOCMIWAIT", __FUNCTION__, port->number); +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) + dbg("%s - (%d) TIOCMIWAIT", __FUNCTION__, port->number); +#else + dbg("%s - (%d) TIOCMIWAIT", __FUNCTION__, port->port_number); +#endif cprev = mxport->mxp_icount; mxport->mxp_msr_wait_flags = 1; while (1) { - wait_event_interruptible_timeout(mxport->mxp_msr_wait,(mxport->mxp_msr_wait_flags == 0),MXU1_MSR_WAIT_TIMEOUT); + wait_event_interruptible_timeout(mxport->mxp_msr_wait, + (mxport->mxp_msr_wait_flags == 0),MXU1_MSR_WAIT_TIMEOUT); if (signal_pending(current)) return -ERESTARTSYS; cnow = mxport->mxp_icount; @@ -1355,13 +1417,24 @@ break; case TIOCGICOUNT: - dbg("%s - (%d) TIOCGICOUNT RX=%d, TX=%d", __FUNCTION__, port->number, mxport->mxp_icount.rx, mxport->mxp_icount.tx); +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) + dbg("%s - (%d) TIOCGICOUNT RX=%d, TX=%d", __FUNCTION__, + port->number, mxport->mxp_icount.rx, mxport->mxp_icount.tx); +#else + dbg("%s - (%d) TIOCGICOUNT RX=%d, TX=%d", __FUNCTION__, + port->port_number, mxport->mxp_icount.rx, mxport->mxp_icount.tx); +#endif if (copy_to_user((void __user *)arg, &mxport->mxp_icount, sizeof(mxport->mxp_icount))) return -EFAULT; return 0; case MOXA_SET_INTERFACE: +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port%d MOXA_SET_INTERFACE=%d",__FUNCTION__,port->number,(int)arg); +#else + dbg("%s - port%d MOXA_SET_INTERFACE=%d",__FUNCTION__, + port->port_number,(int)arg); +#endif if(mxport->mxp_mxdev->mxd_model_name != MXU1_MODEL_1110){ //UPort 1130, 1150, 1150I switch(arg){ @@ -1423,10 +1496,16 @@ tcflag_t cflag,iflag; int baud; int status = 0; - int port_number = port->number - port->serial->minor; - unsigned int mcr; + int port_number = 0; unsigned int mcr; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) + port_number = port->number - port->serial->minor; dbg("%s - port %d", __FUNCTION__, port->number); +#else + port_number = port->port_number - port->minor; + + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif #if(LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) if (!tty || !tty->termios) { @@ -1585,7 +1664,11 @@ unsigned int msr; unsigned int mcr; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif if (mxport == NULL) return -ENODEV; @@ -1625,7 +1708,11 @@ struct mxu1_port *mxport = usb_get_serial_port_data(port); unsigned int mcr; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif if (mxport == NULL) return -ENODEV; @@ -1862,7 +1949,11 @@ struct device *dev = &urb->dev->dev; #endif +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif /* Check port is valid or not */ if(mxport == NULL) @@ -1900,15 +1991,20 @@ unsigned char *data, int length) { int cnt; - struct tty_struct *tty; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) + struct tty_struct *tty; #if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)) tty = mxport->mxp_port->tty; #else - tty = mxport->mxp_port->port.tty; #endif - do{ +#else + struct tty_port *tty; + tty = &(mxport->mxp_port->port); +#endif + + do{ if (mxport->mxp_read_urb_state == MXU1_READ_URB_STOPPING){ dbg("%s - [1] dropping data, %d bytes lost\n", __FUNCTION__, length); break; @@ -2031,7 +2127,11 @@ #endif unsigned long flags; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif spin_lock_irqsave(&mxport->mxp_lock, flags); @@ -2113,10 +2213,16 @@ int size,status; struct mxu1_device *mxdev = mxport->mxp_mxdev; struct usb_serial_port *port = mxport->mxp_port; - int port_number = port->number - port->serial->minor; - struct mxu1_port_status *data; + int port_number = 0; + struct mxu1_port_status *data; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) + port_number = port->number - port->serial->minor; dbg("%s - port %d", __FUNCTION__, port->number); +#else + port_number = port->port_number - port->minor; + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif size = sizeof(struct mxu1_port_status); data = kmalloc(size, GFP_KERNEL); @@ -2154,7 +2260,11 @@ memset(&ret_serial, 0, sizeof(ret_serial)); ret_serial.type = PORT_16550A; - ret_serial.line = port->serial->minor; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) + ret_serial.line = port->serial->minor; +#else + ret_serial.line = port->minor; +#endif ret_serial.port = mxport->mxp_user_get_uart_mode; ret_serial.flags = mxport->mxp_flags; ret_serial.xmit_fifo_size = MXU1_WRITE_BUF_SIZE; @@ -2278,7 +2388,11 @@ wait_queue_t wait; unsigned long flags; +#if(LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) dbg("%s - port %d", __FUNCTION__, port->number); +#else + dbg("%s - port %d", __FUNCTION__, port->port_number); +#endif spin_lock_irqsave(&mxport->mxp_lock, flags);
×
×
  • Create New...