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

swarty

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

    2
  • Joined

  • Last visited

Posts posted by swarty

  1. Да, моя ошибка.

    Я использовал последний официальный драйвер (1.3.5):

     

    Добрый день!

    На всякий случай напомню, что на ядро 3.8 есть уже официальный драйвер.

     

    Что характерно, версии на сайтах отстают от того, что было упомянуто в теме ранее.

     

    Теперь по поводу ошибки. Похоже, парсер форума съел часть пустых строк. Если что, в прицепленном файле корректная версия патча.

     

    Благодарю за попытку, однако... В чем смысл выкладывания патча без указания конкретной версии, на которую надо его накладывать???

     

    patch -p1 < uport1130i_14.04.patch
    patching file driver/mxu11x0.c
    patch: **** malformed patch at line 15: @@ -915,12 +918,20 @@
    

     

    где uport1130i_14.04.patch это содержимое Вашего патча. Накладываю на driv_linux_uport1p_v1.3.5_build_13061013.tgz

    А на самом деле на что надо?

     

    Причем я так же пробовал последнюю версию что можно скачать с оф сайте - это driv_linux_uport1p_v1.3_build_12071316.tgz

     

    ...

    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...