[PATCH] usb: fix mos7840 problems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch fixes a problem with any mos7840 device where the use of the field "minor" before it is initialised results in all the devices being overlaid in memory (minor = 0 for all instances), additionally it adds USB ids for the mos7840 based ATEN International serial devices.

Contributed by: Phillip Branch

Signed-off-by: Tony Cook tony-cook@xxxxxxxxxxx



diff -Naur linux-2.6.29/drivers/usb/serial/mos7840.c linux-2.6.29-patch1/drivers/usb/serial/mos7840.c --- linux-2.6.29/drivers/usb/serial/mos7840.c 2009-03-28 14:08:46.000000000 +1030 +++ linux-2.6.29-patch1/drivers/usb/serial/mos7840.c 2009-03-29 23:25:25.000000000 +1030
@@ -38,7 +38,7 @@
/*
 * Version Information
 */
-#define DRIVER_VERSION "1.3.1"
+#define DRIVER_VERSION "1.3.2"
#define DRIVER_DESC "Moschip 7840/7820 USB Serial Driver"

/*
@@ -114,6 +114,7 @@
#define USB_VENDOR_ID_MOSCHIP           0x9710
#define MOSCHIP_DEVICE_ID_7840          0x7840
#define MOSCHIP_DEVICE_ID_7820          0x7820
+
/* The native component can have its vendor/device id's overridden
 * in vendor-specific implementations.  Such devices can be handled
 * by making a change here, in moschip_port_id_table, and in
@@ -123,6 +124,11 @@
#define BANDB_DEVICE_ID_USOPTL4_4       0xAC44
#define BANDB_DEVICE_ID_USOPTL4_2       0xAC42

+/* This driver also supports the ATEN UC2324 device since it is mos7840 based
+ *  - if I knew the device id it would also support the ATEN UC2322 */
+#define USB_VENDOR_ID_ATENINTL        0x0557
+#define ATENINTL_DEVICE_ID_UC2324    0x2011
+
/* Interrupt Routine Defines    */

#define SERIAL_IIR_RLS      0x06
@@ -170,6 +176,7 @@
    {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)},
    {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)},
    {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)},
+    {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)},
    {}            /* terminating entry */
};

@@ -178,6 +185,7 @@
    {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)},
    {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)},
    {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)},
+    {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)},
    {}            /* terminating entry */
};

@@ -2477,9 +2485,14 @@
        mos7840_set_port_private(serial->port[i], mos7840_port);
        spin_lock_init(&mos7840_port->pool_lock);

-        mos7840_port->port_num = ((serial->port[i]->number -
-                       (serial->port[i]->serial->minor)) +
-                      1);
+        /* minor is not initialised until later by
+         * usb-serial.c:get_free_serial() and cannot therefore be used
+         * to index device instances */
+        mos7840_port->port_num = i + 1;
+        dbg ("serial->port[i]->number = %d", serial->port[i]->number);
+ dbg ("serial->port[i]->serial->minor = %d", serial->port[i]->serial->minor);
+        dbg ("mos7840_port->port_num = %d", mos7840_port->port_num);
+        dbg ("serial->minor = %d", serial->minor);

        if (mos7840_port->port_num == 1) {
            mos7840_port->SpRegOffset = 0x0;
@@ -2690,13 +2703,16 @@

    for (i = 0; i < serial->num_ports; ++i) {
        mos7840_port = mos7840_get_port_private(serial->port[i]);
-        spin_lock_irqsave(&mos7840_port->pool_lock, flags);
-        mos7840_port->zombie = 1;
-        spin_unlock_irqrestore(&mos7840_port->pool_lock, flags);
-        usb_kill_urb(mos7840_port->control_urb);
-        kfree(mos7840_port->ctrl_buf);
-        kfree(mos7840_port->dr);
-        kfree(mos7840_port);
+        dbg ("mos7840_port %d = %p", i, mos7840_port);
+        if (mos7840_port) {
+            spin_lock_irqsave(&mos7840_port->pool_lock, flags);
+            mos7840_port->zombie = 1;
+            spin_unlock_irqrestore(&mos7840_port->pool_lock, flags);
+            usb_kill_urb(mos7840_port->control_urb);
+            kfree(mos7840_port->ctrl_buf);
+            kfree(mos7840_port->dr);
+            kfree(mos7840_port);
+        }
        mos7840_set_port_private(serial->port[i], NULL);
    }




This patch removes all the unnecessary "\n"s that the debug print statements have, which result in everything appearing double spaced and unreadable in the logs.

Signed-off-by: Tony Cook tony-cook@xxxxxxxxxxx




diff -Naur linux-2.6.29-patch1/drivers/usb/serial/mos7840.c linux-2.6.29-patch2/drivers/usb/serial/mos7840.c --- linux-2.6.29-patch1/drivers/usb/serial/mos7840.c 2009-03-29 23:25:25.000000000 +1030 +++ linux-2.6.29-patch2/drivers/usb/serial/mos7840.c 2009-03-29 23:38:49.000000000 +1030
@@ -239,7 +239,7 @@
{
    struct usb_device *dev = port->serial->dev;
    val = val & 0x00ff;
-    dbg("mos7840_set_reg_sync offset is %x, value %x\n", reg, val);
+    dbg("mos7840_set_reg_sync offset is %x, value %x", reg, val);

    return usb_control_msg(dev, usb_sndctrlpipe(dev, 0), MCS_WRREQ,
                   MCS_WR_RTYPE, val, reg, NULL, 0,
@@ -261,7 +261,7 @@
    ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), MCS_RDREQ,
                  MCS_RD_RTYPE, 0, reg, val, VENDOR_READ_LENGTH,
                  MOS_WDR_TIMEOUT);
-    dbg("mos7840_get_reg_sync offset is %x, return val %x\n", reg, *val);
+    dbg("mos7840_get_reg_sync offset is %x, return val %x", reg, *val);
    *val = (*val) & 0x00ff;
    return ret;
}
@@ -283,18 +283,18 @@
    if (port->serial->num_ports == 4) {
        val |= (((__u16) port->number -
                (__u16) (port->serial->minor)) + 1) << 8;
-        dbg("mos7840_set_uart_reg application number is %x\n", val);
+        dbg("mos7840_set_uart_reg application number is %x", val);
    } else {
        if (((__u16) port->number - (__u16) (port->serial->minor)) == 0) {
            val |= (((__u16) port->number -
                  (__u16) (port->serial->minor)) + 1) << 8;
-            dbg("mos7840_set_uart_reg application number is %x\n",
+            dbg("mos7840_set_uart_reg application number is %x",
                val);
        } else {
            val |=
                (((__u16) port->number -
                  (__u16) (port->serial->minor)) + 2) << 8;
-            dbg("mos7840_set_uart_reg application number is %x\n",
+            dbg("mos7840_set_uart_reg application number is %x",
                val);
        }
    }
@@ -316,24 +316,24 @@
    int ret = 0;
    __u16 Wval;

-    /* dbg("application number is %4x \n",
+    /* dbg("application number is %4x",
        (((__u16)port->number - (__u16)(port->serial->minor))+1)<<8); */
    /* Wval  is same as application number */
    if (port->serial->num_ports == 4) {
        Wval =
            (((__u16) port->number - (__u16) (port->serial->minor)) +
             1) << 8;
-        dbg("mos7840_get_uart_reg application number is %x\n", Wval);
+        dbg("mos7840_get_uart_reg application number is %x", Wval);
    } else {
        if (((__u16) port->number - (__u16) (port->serial->minor)) == 0) {
            Wval = (((__u16) port->number -
                  (__u16) (port->serial->minor)) + 1) << 8;
-            dbg("mos7840_get_uart_reg application number is %x\n",
+            dbg("mos7840_get_uart_reg application number is %x",
                Wval);
        } else {
            Wval = (((__u16) port->number -
                  (__u16) (port->serial->minor)) + 2) << 8;
-            dbg("mos7840_get_uart_reg application number is %x\n",
+            dbg("mos7840_get_uart_reg application number is %x",
                Wval);
        }
    }
@@ -347,11 +347,11 @@
static void mos7840_dump_serial_port(struct moschip_port *mos7840_port)
{

-    dbg("***************************************\n");
-    dbg("SpRegOffset is %2x\n", mos7840_port->SpRegOffset);
-    dbg("ControlRegOffset is %2x \n", mos7840_port->ControlRegOffset);
-    dbg("DCRRegOffset is %2x \n", mos7840_port->DcrRegOffset);
-    dbg("***************************************\n");
+    dbg("***************************************");
+    dbg("SpRegOffset is %2x", mos7840_port->SpRegOffset);
+    dbg("ControlRegOffset is %2x", mos7840_port->ControlRegOffset);
+    dbg("DCRRegOffset is %2x", mos7840_port->DcrRegOffset);
+    dbg("***************************************");

}

@@ -475,12 +475,12 @@
        goto exit;
    }

-    dbg("%s urb buffer size is %d\n", __func__, urb->actual_length);
-    dbg("%s mos7840_port->MsrLsr is %d port %d\n", __func__,
+    dbg("%s urb buffer size is %d", __func__, urb->actual_length);
+    dbg("%s mos7840_port->MsrLsr is %d port %d", __func__,
        mos7840_port->MsrLsr, mos7840_port->port_num);
    data = urb->transfer_buffer;
    regval = (__u8) data[0];
-    dbg("%s data is %x\n", __func__, regval);
+    dbg("%s data is %x", __func__, regval);
    if (mos7840_port->MsrLsr == 0)
        mos7840_handle_new_msr(mos7840_port, regval);
    else if (mos7840_port->MsrLsr == 1)
@@ -493,7 +493,7 @@
    spin_unlock(&mos7840_port->pool_lock);
    if (result) {
        dev_err(&urb->dev->dev,
-            "%s - Error %d submitting interrupt urb\n",
+            "%s - Error %d submitting interrupt urb",
            __func__, result);
    }
}
@@ -539,7 +539,7 @@
    __u16 wval, wreg = 0;
    int status = urb->status;

-    dbg("%s", " : Entering\n");
+    dbg("%s", " : Entering");

    switch (status) {
    case 0:
@@ -571,7 +571,7 @@
     * Byte 5 FIFO status for both */

    if (length && length > 5) {
-        dbg("%s \n", "Wrong data !!!");
+        dbg("%s", "Wrong data !!!");
        return;
    }

@@ -588,17 +588,17 @@
              (__u16) (serial->minor)) + 1) << 8;
        if (mos7840_port->open) {
            if (sp[i] & 0x01) {
-                dbg("SP%d No Interrupt !!!\n", i);
+                dbg("SP%d No Interrupt !!!", i);
            } else {
                switch (sp[i] & 0x0f) {
                case SERIAL_IIR_RLS:
                    dbg("Serial Port %d: Receiver status error or ", i);
-                    dbg("address bit detected in 9-bit mode\n");
+                    dbg("address bit detected in 9-bit mode");
                    mos7840_port->MsrLsr = 1;
                    wreg = LINE_STATUS_REGISTER;
                    break;
                case SERIAL_IIR_MS:
-                    dbg("Serial Port %d: Modem status change\n", i);
+                    dbg("Serial Port %d: Modem status change", i);
                    mos7840_port->MsrLsr = 0;
                    wreg = MODEM_STATUS_REGISTER;
                    break;
@@ -621,7 +621,7 @@
    result = usb_submit_urb(urb, GFP_ATOMIC);
    if (result) {
        dev_err(&urb->dev->dev,
-            "%s - Error %d submitting interrupt urb\n",
+            "%s - Error %d submitting interrupt urb",
            __func__, result);
    }
}
@@ -690,7 +690,7 @@

    mos7840_port = urb->context;
    if (!mos7840_port) {
-        dbg("%s", "NULL mos7840_port pointer \n");
+        dbg("%s", "NULL mos7840_port pointer");
        mos7840_port->read_urb_busy = false;
        return;
    }
@@ -703,41 +703,41 @@

    port = (struct usb_serial_port *)mos7840_port->port;
    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Port Paranoia failed \n");
+        dbg("%s", "Port Paranoia failed");
        mos7840_port->read_urb_busy = false;
        return;
    }

    serial = mos7840_get_usb_serial(port, __func__);
    if (!serial) {
-        dbg("%s\n", "Bad serial pointer ");
+        dbg("%s", "Bad serial pointer");
        mos7840_port->read_urb_busy = false;
        return;
    }

-    dbg("%s\n", "Entering... \n");
+    dbg("%s", "Entering... ");

    data = urb->transfer_buffer;

-    dbg("%s", "Entering ........... \n");
+    dbg("%s", "Entering ...........");

    if (urb->actual_length) {
        tty = tty_port_tty_get(&mos7840_port->port->port);
        if (tty) {
            tty_buffer_request_room(tty, urb->actual_length);
            tty_insert_flip_string(tty, data, urb->actual_length);
-            dbg(" %s \n", data);
+            dbg(" %s ", data);
            tty_flip_buffer_push(tty);
            tty_kref_put(tty);
        }
        mos7840_port->icount.rx += urb->actual_length;
        smp_wmb();
-        dbg("mos7840_port->icount.rx is %d:\n",
+        dbg("mos7840_port->icount.rx is %d:",
            mos7840_port->icount.rx);
    }

    if (!mos7840_port->read_urb) {
-        dbg("%s", "URB KILLED !!!\n");
+        dbg("%s", "URB KILLED !!!");
        mos7840_port->read_urb_busy = false;
        return;
    }
@@ -778,16 +778,16 @@
    spin_unlock(&mos7840_port->pool_lock);

    if (status) {
-        dbg("nonzero write bulk status received:%d\n", status);
+        dbg("nonzero write bulk status received:%d", status);
        return;
    }

    if (mos7840_port_paranoia_check(mos7840_port->port, __func__)) {
-        dbg("%s", "Port Paranoia failed \n");
+        dbg("%s", "Port Paranoia failed");
        return;
    }

-    dbg("%s \n", "Entering .........");
+    dbg("%s", "Entering .........");

    tty = tty_port_tty_get(&mos7840_port->port->port);
    if (tty && mos7840_port->open)
@@ -831,15 +831,17 @@
    struct moschip_port *mos7840_port;
    struct moschip_port *port0;

+    dbg ("%s enter", __func__);
+
    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Port Paranoia failed \n");
+        dbg("%s", "Port Paranoia failed");
        return -ENODEV;
    }

    serial = port->serial;

    if (mos7840_serial_paranoia_check(serial, __func__)) {
-        dbg("%s", "Serial Paranoia failed \n");
+        dbg("%s", "Serial Paranoia failed");
        return -ENODEV;
    }

@@ -859,7 +861,7 @@
        mos7840_port->write_urb_pool[j] = urb;

        if (urb == NULL) {
-            dev_err(&port->dev, "No more urbs???\n");
+            dev_err(&port->dev, "No more urbs???");
            continue;
        }

@@ -869,7 +871,7 @@
            usb_free_urb(urb);
            mos7840_port->write_urb_pool[j] = NULL;
            dev_err(&port->dev,
-                "%s-out of memory for urb buffers.\n",
+                "%s-out of memory for urb buffers.",
                __func__);
            continue;
        }
@@ -892,20 +894,20 @@
    Data = 0x0;
    status = mos7840_get_reg_sync(port, mos7840_port->SpRegOffset, &Data);
    if (status < 0) {
-        dbg("Reading Spreg failed\n");
+        dbg("Reading Spreg failed");
        return -1;
    }
    Data |= 0x80;
    status = mos7840_set_reg_sync(port, mos7840_port->SpRegOffset, Data);
    if (status < 0) {
-        dbg("writing Spreg failed\n");
+        dbg("writing Spreg failed");
        return -1;
    }

    Data &= ~0x80;
    status = mos7840_set_reg_sync(port, mos7840_port->SpRegOffset, Data);
    if (status < 0) {
-        dbg("writing Spreg failed\n");
+        dbg("writing Spreg failed");
        return -1;
    }
    /* End of block to be checked */
@@ -914,7 +916,7 @@
    status = mos7840_get_reg_sync(port, mos7840_port->ControlRegOffset,
                                    &Data);
    if (status < 0) {
-        dbg("Reading Controlreg failed\n");
+        dbg("Reading Controlreg failed");
        return -1;
    }
    Data |= 0x08;        /* Driver done bit */
@@ -922,7 +924,7 @@
    status = mos7840_set_reg_sync(port,
                mos7840_port->ControlRegOffset, Data);
    if (status < 0) {
-        dbg("writing Controlreg failed\n");
+        dbg("writing Controlreg failed");
        return -1;
    }
    /* do register settings here */
@@ -933,21 +935,21 @@
    Data = 0x00;
    status = mos7840_set_uart_reg(port, INTERRUPT_ENABLE_REGISTER, Data);
    if (status < 0) {
-        dbg("disableing interrupts failed\n");
+        dbg("disabling interrupts failed");
        return -1;
    }
    /* Set FIFO_CONTROL_REGISTER to the default value */
    Data = 0x00;
    status = mos7840_set_uart_reg(port, FIFO_CONTROL_REGISTER, Data);
    if (status < 0) {
-        dbg("Writing FIFO_CONTROL_REGISTER  failed\n");
+        dbg("Writing FIFO_CONTROL_REGISTER  failed");
        return -1;
    }

    Data = 0xcf;
    status = mos7840_set_uart_reg(port, FIFO_CONTROL_REGISTER, Data);
    if (status < 0) {
-        dbg("Writing FIFO_CONTROL_REGISTER  failed\n");
+        dbg("Writing FIFO_CONTROL_REGISTER  failed");
        return -1;
    }

@@ -1039,7 +1041,7 @@
                       GFP_KERNEL);
            if (response) {
                dev_err(&port->dev, "%s - Error %d submitting "
-                    "interrupt urb\n", __func__, response);
+                    "interrupt urb", __func__, response);
            }

        }
@@ -1050,12 +1052,12 @@
     * (can't set it up in mos7840_startup as the  *
     * structures were not set up at that time.)   */

-    dbg("port number is %d \n", port->number);
-    dbg("serial number is %d \n", port->serial->minor);
-    dbg("Bulkin endpoint is %d \n", port->bulk_in_endpointAddress);
-    dbg("BulkOut endpoint is %d \n", port->bulk_out_endpointAddress);
-    dbg("Interrupt endpoint is %d \n", port->interrupt_in_endpointAddress);
-    dbg("port's number in the device is %d\n", mos7840_port->port_num);
+    dbg("port number is %d", port->number);
+    dbg("serial number is %d", port->serial->minor);
+    dbg("Bulkin endpoint is %d", port->bulk_in_endpointAddress);
+    dbg("BulkOut endpoint is %d", port->bulk_out_endpointAddress);
+    dbg("Interrupt endpoint is %d", port->interrupt_in_endpointAddress);
+    dbg("port's number in the device is %d", mos7840_port->port_num);
    mos7840_port->read_urb = port->read_urb;

    /* set up our bulk in urb */
@@ -1068,7 +1070,7 @@
              mos7840_port->read_urb->transfer_buffer_length,
              mos7840_bulk_in_callback, mos7840_port);

-    dbg("mos7840_open: bulkin endpoint is %d\n",
+    dbg("mos7840_open: bulkin endpoint is %d",
        port->bulk_in_endpointAddress);
    mos7840_port->read_urb_busy = true;
    response = usb_submit_urb(mos7840_port->read_urb, GFP_KERNEL);
@@ -1094,9 +1096,11 @@
    mos7840_port->icount.tx = 0;
    mos7840_port->icount.rx = 0;

- dbg("\n\nusb_serial serial:%p mos7840_port:%p\n usb_serial_port port:%p\n\n", + dbg("usb_serial serial:%p mos7840_port:%p\n usb_serial_port port:%p",
                serial, mos7840_port, port);

+    dbg ("%s leave", __func__);
+
    return 0;

}
@@ -1119,16 +1123,16 @@
    unsigned long flags;
    struct moschip_port *mos7840_port;

-    dbg("%s \n", " mos7840_chars_in_buffer:entering ...........");
+    dbg("%s", " mos7840_chars_in_buffer:entering ...........");

    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Invalid port \n");
+        dbg("%s", "Invalid port");
        return 0;
    }

    mos7840_port = mos7840_get_port_private(port);
    if (mos7840_port == NULL) {
-        dbg("%s \n", "mos7840_break:leaving ...........");
+        dbg("%s", "mos7840_break:leaving ...........");
        return 0;
    }

@@ -1197,16 +1201,16 @@
    int j;
    __u16 Data;

-    dbg("%s\n", "mos7840_close:entering...");
+    dbg("%s", "mos7840_close:entering...");

    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Port Paranoia failed \n");
+        dbg("%s", "Port Paranoia failed");
        return;
    }

    serial = mos7840_get_usb_serial(port, __func__);
    if (!serial) {
-        dbg("%s", "Serial Paranoia failed \n");
+        dbg("%s", "Serial Paranoia failed");
        return;
    }

@@ -1238,27 +1242,27 @@
     * and interrupt read if they exists                  */
    if (serial->dev) {
        if (mos7840_port->write_urb) {
-            dbg("%s", "Shutdown bulk write\n");
+            dbg("%s", "Shutdown bulk write");
            usb_kill_urb(mos7840_port->write_urb);
        }
        if (mos7840_port->read_urb) {
-            dbg("%s", "Shutdown bulk read\n");
+            dbg("%s", "Shutdown bulk read");
            usb_kill_urb(mos7840_port->read_urb);
            mos7840_port->read_urb_busy = false;
        }
        if ((&mos7840_port->control_urb)) {
-            dbg("%s", "Shutdown control read\n");
+            dbg("%s", "Shutdown control read");
            /*/      usb_kill_urb (mos7840_port->control_urb); */
        }
    }
/*      if(mos7840_port->ctrl_buf != NULL) */
/*              kfree(mos7840_port->ctrl_buf); */
    port0->open_ports--;
-    dbg("mos7840_num_open_ports in close%d:in port%d\n",
+    dbg("mos7840_num_open_ports in close%d:in port%d",
        port0->open_ports, port->number);
    if (port0->open_ports == 0) {
        if (serial->port[0]->interrupt_in_urb) {
-            dbg("%s", "Shutdown interrupt_in_urb\n");
+            dbg("%s", "Shutdown interrupt_in_urb");
            usb_kill_urb(serial->port[0]->interrupt_in_urb);
        }
    }
@@ -1278,7 +1282,7 @@

    mos7840_port->open = 0;

-    dbg("%s \n", "Leaving ............");
+    dbg("%s", "Leaving ............");
}

/************************************************************************
@@ -1333,17 +1337,17 @@
    struct usb_serial *serial;
    struct moschip_port *mos7840_port;

-    dbg("%s \n", "Entering ...........");
-    dbg("mos7840_break: Start\n");
+    dbg("%s", "Entering ...........");
+    dbg("mos7840_break: Start");

    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Port Paranoia failed \n");
+        dbg("%s", "Port Paranoia failed");
        return;
    }

    serial = mos7840_get_usb_serial(port, __func__);
    if (!serial) {
-        dbg("%s", "Serial Paranoia failed \n");
+        dbg("%s", "Serial Paranoia failed");
        return;
    }

@@ -1363,7 +1367,7 @@

    /* FIXME: no locking on shadowLCR anywhere in driver */
    mos7840_port->shadowLCR = data;
-    dbg("mcs7840_break mos7840_port->shadowLCR is %x\n",
+    dbg("mcs7840_break mos7840_port->shadowLCR is %x",
        mos7840_port->shadowLCR);
    mos7840_set_uart_reg(port, LINE_CONTROL_REGISTER,
                 mos7840_port->shadowLCR);
@@ -1387,17 +1391,17 @@
    unsigned long flags;
    struct moschip_port *mos7840_port;

-    dbg("%s \n", " mos7840_write_room:entering ...........");
+    dbg("%s", " mos7840_write_room:entering ...........");

    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Invalid port \n");
-        dbg("%s \n", " mos7840_write_room:leaving ...........");
+        dbg("%s", "Invalid port");
+        dbg("%s", " mos7840_write_room:leaving ...........");
        return -1;
    }

    mos7840_port = mos7840_get_port_private(port);
    if (mos7840_port == NULL) {
-        dbg("%s \n", "mos7840_break:leaving ...........");
+        dbg("%s", "mos7840_break:leaving ...........");
        return -1;
    }

@@ -1437,16 +1441,16 @@
    /* __u16 Data; */
    const unsigned char *current_position = data;
    unsigned char *data1;
-    dbg("%s \n", "entering ...........");
-    /* dbg("mos7840_write: mos7840_port->shadowLCR is %x\n",
+    dbg("%s", "entering ...........");
+    /* dbg("mos7840_write: mos7840_port->shadowLCR is %x",
                    mos7840_port->shadowLCR); */

#ifdef NOTMOS7840
    Data = 0x00;
    status = mos7840_get_uart_reg(port, LINE_CONTROL_REGISTER, &Data);
    mos7840_port->shadowLCR = Data;
-    dbg("mos7840_write: LINE_CONTROL_REGISTER is %x\n", Data);
-    dbg("mos7840_write: mos7840_port->shadowLCR is %x\n",
+    dbg("mos7840_write: LINE_CONTROL_REGISTER is %x", Data);
+    dbg("mos7840_write: mos7840_port->shadowLCR is %x",
        mos7840_port->shadowLCR);

    /* Data = 0x03; */
@@ -1460,32 +1464,32 @@
    /* status = mos7840_set_uart_reg(port,DIVISOR_LATCH_LSB,Data); */
    Data = 0x00;
    status = mos7840_get_uart_reg(port, DIVISOR_LATCH_LSB, &Data);
-    dbg("mos7840_write:DLL value is %x\n", Data);
+    dbg("mos7840_write:DLL value is %x", Data);

    Data = 0x0;
    status = mos7840_get_uart_reg(port, DIVISOR_LATCH_MSB, &Data);
-    dbg("mos7840_write:DLM value is %x\n", Data);
+    dbg("mos7840_write:DLM value is %x", Data);

    Data = Data & ~SERIAL_LCR_DLAB;
-    dbg("mos7840_write: mos7840_port->shadowLCR is %x\n",
+    dbg("mos7840_write: mos7840_port->shadowLCR is %x",
        mos7840_port->shadowLCR);
    status = mos7840_set_uart_reg(port, LINE_CONTROL_REGISTER, Data);
#endif

    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Port Paranoia failed \n");
+        dbg("%s", "Port Paranoia failed");
        return -1;
    }

    serial = port->serial;
    if (mos7840_serial_paranoia_check(serial, __func__)) {
-        dbg("%s", "Serial Paranoia failed \n");
+        dbg("%s", "Serial Paranoia failed");
        return -1;
    }

    mos7840_port = mos7840_get_port_private(port);
    if (mos7840_port == NULL) {
-        dbg("%s", "mos7840_port is NULL\n");
+        dbg("%s", "mos7840_port is NULL");
        return -1;
    }

@@ -1497,7 +1501,7 @@
        if (!mos7840_port->busy[i]) {
            mos7840_port->busy[i] = 1;
            urb = mos7840_port->write_urb_pool[i];
-            dbg("\nURB:%d", i);
+            dbg("URB:%d", i);
            break;
        }
    }
@@ -1513,7 +1517,7 @@
            kmalloc(URB_TRANSFER_BUFFER_SIZE, GFP_KERNEL);

        if (urb->transfer_buffer == NULL) {
-            dev_err(&port->dev, "%s no more kernel memory...\n",
+            dev_err(&port->dev, "%s no more kernel memory...",
                __func__);
            goto exit;
        }
@@ -1532,7 +1536,7 @@
              mos7840_bulk_out_data_callback, mos7840_port);

    data1 = urb->transfer_buffer;
-    dbg("\nbulkout endpoint is %d", port->bulk_out_endpointAddress);
+    dbg("bulkout endpoint is %d", port->bulk_out_endpointAddress);

    /* send it down the pipe */
    status = usb_submit_urb(urb, GFP_ATOMIC);
@@ -1540,14 +1544,14 @@
    if (status) {
        mos7840_port->busy[i] = 0;
        dev_err(&port->dev, "%s - usb_submit_urb(write bulk) failed "
-            "with status = %d\n", __func__, status);
+            "with status = %d", __func__, status);
        bytes_sent = status;
        goto exit;
    }
    bytes_sent = transfer_size;
    mos7840_port->icount.tx += transfer_size;
    smp_wmb();
-    dbg("mos7840_port->icount.tx is %d:\n", mos7840_port->icount.tx);
+    dbg("mos7840_port->icount.tx is %d:", mos7840_port->icount.tx);
exit:
    return bytes_sent;

@@ -1566,11 +1570,11 @@
    int status;

    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Invalid port \n");
+        dbg("%s", "Invalid port");
        return;
    }

-    dbg("- port %d\n", port->number);
+    dbg("- port %d", port->number);

    mos7840_port = mos7840_get_port_private(port);

@@ -1578,11 +1582,11 @@
        return;

    if (!mos7840_port->open) {
-        dbg("%s\n", "port not opened");
+        dbg("%s", "port not opened");
        return;
    }

-    dbg("%s", "Entering .......... \n");
+    dbg("%s", "Entering ..........");

    /* if we are implementing XON/XOFF, send the stop character */
    if (I_IXOFF(tty)) {
@@ -1616,7 +1620,7 @@
    struct moschip_port *mos7840_port = mos7840_get_port_private(port);

    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Invalid port \n");
+        dbg("%s", "Invalid port");
        return;
    }

@@ -1628,7 +1632,7 @@
        return;
    }

-    dbg("%s", "Entering .......... \n");
+    dbg("%s", "Entering ..........");

    /* if we are implementing XON/XOFF, send the start character */
    if (I_IXOFF(tty)) {
@@ -1713,7 +1717,7 @@

    status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER, mcr);
    if (status < 0) {
-        dbg("setting MODEM_CONTROL_REGISTER Failed\n");
+        dbg("setting MODEM_CONTROL_REGISTER Failed");
        return status;
    }

@@ -1782,11 +1786,11 @@
            custom++;
        *divisor = custom;

-        dbg(" Baud %d = %d\n", baudrate, custom);
+        dbg(" Baud %d = %d", baudrate, custom);
        return 0;
    }

-    dbg("%s\n", " Baud calculation Failed...");
+    dbg("%s", " Baud calculation Failed...");
    return -1;
#endif
}
@@ -1812,16 +1816,16 @@

    port = (struct usb_serial_port *)mos7840_port->port;
    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Invalid port \n");
+        dbg("%s", "Invalid port");
        return -1;
    }

    if (mos7840_serial_paranoia_check(port->serial, __func__)) {
-        dbg("%s", "Invalid Serial \n");
+        dbg("%s", "Invalid Serial");
        return -1;
    }

-    dbg("%s", "Entering .......... \n");
+    dbg("%s", "Entering ..........");

number = mos7840_port->port->number - mos7840_port->port->serial->minor;

@@ -1837,7 +1841,7 @@
        status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER,
                                    Data);
        if (status < 0) {
-            dbg("Writing spreg failed in set_serial_baud\n");
+            dbg("Writing spreg failed in set_serial_baud");
            return -1;
        }
#endif
@@ -1850,7 +1854,7 @@
        status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER,
                                    Data);
        if (status < 0) {
-            dbg("Writing spreg failed in set_serial_baud\n");
+            dbg("Writing spreg failed in set_serial_baud");
            return -1;
        }
#endif
@@ -1865,20 +1869,20 @@
        status = mos7840_get_reg_sync(port, mos7840_port->SpRegOffset,
                                 &Data);
        if (status < 0) {
-            dbg("reading spreg failed in set_serial_baud\n");
+            dbg("reading spreg failed in set_serial_baud");
            return -1;
        }
        Data = (Data & 0x8f) | clk_sel_val;
        status = mos7840_set_reg_sync(port, mos7840_port->SpRegOffset,
                                Data);
        if (status < 0) {
-            dbg("Writing spreg failed in set_serial_baud\n");
+            dbg("Writing spreg failed in set_serial_baud");
            return -1;
        }
        /* Calculate the Divisor */

        if (status) {
-            dev_err(&port->dev, "%s - bad baud rate\n", __func__);
+            dev_err(&port->dev, "%s - bad baud rate", __func__);
            return status;
        }
        /* Enable access to divisor latch */
@@ -1888,11 +1892,11 @@

        /* Write the divisor */
        Data = (unsigned char)(divisor & 0xff);
-        dbg("set_serial_baud Value to write DLL is %x\n", Data);
+        dbg("set_serial_baud Value to write DLL is %x", Data);
        mos7840_set_uart_reg(port, DIVISOR_LATCH_LSB, Data);

        Data = (unsigned char)((divisor & 0xff00) >> 8);
-        dbg("set_serial_baud Value to write DLM is %x\n", Data);
+        dbg("set_serial_baud Value to write DLM is %x", Data);
        mos7840_set_uart_reg(port, DIVISOR_LATCH_MSB, Data);

        /* Disable access to divisor latch */
@@ -1930,12 +1934,12 @@
    port = (struct usb_serial_port *)mos7840_port->port;

    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Invalid port \n");
+        dbg("%s", "Invalid port");
        return;
    }

    if (mos7840_serial_paranoia_check(port->serial, __func__)) {
-        dbg("%s", "Invalid Serial \n");
+        dbg("%s", "Invalid Serial");
        return;
    }

@@ -1948,7 +1952,7 @@
        return;
    }

-    dbg("%s", "Entering .......... \n");
+    dbg("%s", "Entering ..........");

    lData = LCR_BITS_8;
    lStop = LCR_STOP_1;
@@ -2008,7 +2012,7 @@
        ~(LCR_BITS_MASK | LCR_STOP_MASK | LCR_PAR_MASK);
    mos7840_port->shadowLCR |= (lData | lParity | lStop);

-    dbg("mos7840_change_port_settings mos7840_port->shadowLCR is %x\n",
+    dbg("mos7840_change_port_settings mos7840_port->shadowLCR is %x",
        mos7840_port->shadowLCR);
    /* Disable Interrupts */
    Data = 0x00;
@@ -2050,7 +2054,7 @@

    if (!baud) {
        /* pick a default, any default... */
-        dbg("%s\n", "Picked default baud...");
+        dbg("%s", "Picked default baud...");
        baud = 9600;
    }

@@ -2073,7 +2077,7 @@
    }
    wake_up(&mos7840_port->delta_msr_wait);
    mos7840_port->delta_msr_cond = 1;
-    dbg("mos7840_change_port_settings mos7840_port->shadowLCR is End %x\n",
+    dbg("mos7840_change_port_settings mos7840_port->shadowLCR is End %x",
        mos7840_port->shadowLCR);

    return;
@@ -2093,16 +2097,16 @@
    unsigned int cflag;
    struct usb_serial *serial;
    struct moschip_port *mos7840_port;
-    dbg("mos7840_set_termios: START\n");
+    dbg("mos7840_set_termios: START");
    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Invalid port \n");
+        dbg("%s", "Invalid port");
        return;
    }

    serial = port->serial;

    if (mos7840_serial_paranoia_check(serial, __func__)) {
-        dbg("%s", "Invalid Serial \n");
+        dbg("%s", "Invalid Serial");
        return;
    }

@@ -2116,7 +2120,7 @@
        return;
    }

-    dbg("%s\n", "setting termios - ");
+    dbg("%s", "setting termios - ");

    cflag = tty->termios->c_cflag;

@@ -2131,7 +2135,7 @@
    mos7840_change_port_settings(tty, mos7840_port, old_termios);

    if (!mos7840_port->read_urb) {
-        dbg("%s", "URB KILLED !!!!!\n");
+        dbg("%s", "URB KILLED !!!!!");
        return;
    }

@@ -2197,7 +2201,7 @@

    port = (struct usb_serial_port *)mos7840_port->port;
    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Invalid port \n");
+        dbg("%s", "Invalid port");
        return -1;
    }

@@ -2242,7 +2246,7 @@
    status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER, Data);
    unlock_kernel();
    if (status < 0) {
-        dbg("setting MODEM_CONTROL_REGISTER Failed\n");
+        dbg("setting MODEM_CONTROL_REGISTER Failed");
        return -1;
    }

@@ -2327,7 +2331,7 @@
    int mosret = 0;

    if (mos7840_port_paranoia_check(port, __func__)) {
-        dbg("%s", "Invalid port \n");
+        dbg("%s", "Invalid port");
        return -1;
    }

@@ -2427,9 +2431,8 @@
{
    int mos7840_num_ports = 0;

-    dbg("numberofendpoints: %d \n",
-        (int)serial->interface->cur_altsetting->desc.bNumEndpoints);
-    dbg("numberofendpoints: %d \n",
+    dbg("numberofendpoints: cur %d, alt %d",
+        (int)serial->interface->cur_altsetting->desc.bNumEndpoints,
        (int)serial->interface->altsetting->desc.bNumEndpoints);
    if (serial->interface->cur_altsetting->desc.bNumEndpoints == 5) {
        mos7840_num_ports = serial->num_ports = 2;
@@ -2438,7 +2441,7 @@
        serial->num_bulk_out = 4;
        mos7840_num_ports = serial->num_ports = 4;
    }
-
+    dbg ("mos7840_num_ports = %d", mos7840_num_ports);
    return mos7840_num_ports;
}

@@ -2453,25 +2456,27 @@
    int i, status;

    __u16 Data;
-    dbg("%s \n", " mos7840_startup :entering..........");
+    dbg("%s", "mos7840_startup :Entering..........");

    if (!serial) {
-        dbg("%s\n", "Invalid Handler");
+        dbg("%s", "Invalid Handler");
        return -1;
    }

    dev = serial->dev;

-    dbg("%s\n", "Entering...");
+    dbg("%s", "Entering...");
+    dbg ("mos7840_startup: serial = %p", serial);

    /* we set up the pointers to the endpoints in the mos7840_open *
     * function, as the structures aren't created yet.             */

    /* set up port private structures */
    for (i = 0; i < serial->num_ports; ++i) {
+        dbg ("mos7840_startup: configuring port %d............", i);
        mos7840_port = kzalloc(sizeof(struct moschip_port), GFP_KERNEL);
        if (mos7840_port == NULL) {
-            dev_err(&dev->dev, "%s - Out of memory\n", __func__);
+            dev_err(&dev->dev, "%s - Out of memory", __func__);
            status = -ENOMEM;
            i--; /* don't follow NULL pointer cleaning up */
            goto error;
@@ -2526,10 +2531,10 @@
        status = mos7840_get_reg_sync(serial->port[i],
                 mos7840_port->ControlRegOffset, &Data);
        if (status < 0) {
-            dbg("Reading ControlReg failed status-0x%x\n", status);
+            dbg("Reading ControlReg failed status-0x%x", status);
            break;
        } else
-            dbg("ControlReg Reading success val is %x, status%d\n",
+            dbg("ControlReg Reading success val is %x, status%d",
                Data, status);
        Data |= 0x08;    /* setting driver done bit */
        Data |= 0x04;    /* sp1_bit to have cts change reflect in
@@ -2539,10 +2544,10 @@
        status = mos7840_set_reg_sync(serial->port[i],
                     mos7840_port->ControlRegOffset, Data);
        if (status < 0) {
- dbg("Writing ControlReg failed(rx_disable) status-0x%x\n", status); + dbg("Writing ControlReg failed(rx_disable) status-0x%x", status);
            break;
        } else
-            dbg("ControlReg Writing success(rx_disable) status%d\n",
+            dbg("ControlReg Writing success(rx_disable) status%d",
                status);

        /* Write default values in DCR (i.e 0x01 in DCR0, 0x05 in DCR2
@@ -2551,48 +2556,48 @@
        status = mos7840_set_reg_sync(serial->port[i],
             (__u16) (mos7840_port->DcrRegOffset + 0), Data);
        if (status < 0) {
-            dbg("Writing DCR0 failed status-0x%x\n", status);
+            dbg("Writing DCR0 failed status-0x%x", status);
            break;
        } else
-            dbg("DCR0 Writing success status%d\n", status);
+            dbg("DCR0 Writing success status%d", status);

        Data = 0x05;
        status = mos7840_set_reg_sync(serial->port[i],
             (__u16) (mos7840_port->DcrRegOffset + 1), Data);
        if (status < 0) {
-            dbg("Writing DCR1 failed status-0x%x\n", status);
+            dbg("Writing DCR1 failed status-0x%x", status);
            break;
        } else
-            dbg("DCR1 Writing success status%d\n", status);
+            dbg("DCR1 Writing success status%d", status);

        Data = 0x24;
        status = mos7840_set_reg_sync(serial->port[i],
             (__u16) (mos7840_port->DcrRegOffset + 2), Data);
        if (status < 0) {
-            dbg("Writing DCR2 failed status-0x%x\n", status);
+            dbg("Writing DCR2 failed status-0x%x", status);
            break;
        } else
-            dbg("DCR2 Writing success status%d\n", status);
+            dbg("DCR2 Writing success status%d", status);

        /* write values in clkstart0x0 and clkmulti 0x20 */
        Data = 0x0;
        status = mos7840_set_reg_sync(serial->port[i],
                     CLK_START_VALUE_REGISTER, Data);
        if (status < 0) {
- dbg("Writing CLK_START_VALUE_REGISTER failed status-0x%x\n", status); + dbg("Writing CLK_START_VALUE_REGISTER failed status-0x%x", status);
            break;
        } else
- dbg("CLK_START_VALUE_REGISTER Writing success status%d\n", status); + dbg("CLK_START_VALUE_REGISTER Writing success status%d", status);

        Data = 0x20;
        status = mos7840_set_reg_sync(serial->port[i],
                    CLK_MULTI_REGISTER, Data);
        if (status < 0) {
-            dbg("Writing CLK_MULTI_REGISTER failed status-0x%x\n",
+            dbg("Writing CLK_MULTI_REGISTER failed status-0x%x",
                status);
            goto error;
        } else
-            dbg("CLK_MULTI_REGISTER Writing success status%d\n",
+            dbg("CLK_MULTI_REGISTER Writing success status%d",
                status);

        /* write value 0x0 to scratchpad register */
@@ -2600,11 +2605,11 @@
        status = mos7840_set_uart_reg(serial->port[i],
                        SCRATCH_PAD_REGISTER, Data);
        if (status < 0) {
-            dbg("Writing SCRATCH_PAD_REGISTER failed status-0x%x\n",
+            dbg("Writing SCRATCH_PAD_REGISTER failed status-0x%x",
                status);
            break;
        } else
-            dbg("SCRATCH_PAD_REGISTER Writing success status%d\n",
+            dbg("SCRATCH_PAD_REGISTER Writing success status%d",
                status);

        /* Zero Length flag register */
@@ -2615,30 +2620,30 @@
            status = mos7840_set_reg_sync(serial->port[i],
                      (__u16) (ZLP_REG1 +
                      ((__u16)mos7840_port->port_num)), Data);
-            dbg("ZLIP offset%x\n",
+            dbg("ZLIP offset %x",
                (__u16) (ZLP_REG1 +
                    ((__u16) mos7840_port->port_num)));
            if (status < 0) {
-                dbg("Writing ZLP_REG%d failed status-0x%x\n",
+                dbg("Writing ZLP_REG%d failed status-0x%x",
                    i + 2, status);
                break;
            } else
-                dbg("ZLP_REG%d Writing success status%d\n",
+                dbg("ZLP_REG%d Writing success status%d",
                    i + 2, status);
        } else {
            Data = 0xff;
            status = mos7840_set_reg_sync(serial->port[i],
                  (__u16) (ZLP_REG1 +
                  ((__u16)mos7840_port->port_num) - 0x1), Data);
-            dbg("ZLIP offset%x\n",
+            dbg("ZLIP offset %x",
                (__u16) (ZLP_REG1 +
                     ((__u16) mos7840_port->port_num) - 0x1));
            if (status < 0) {
-                dbg("Writing ZLP_REG%d failed status-0x%x\n",
+                dbg("Writing ZLP_REG%d failed status-0x%x",
                    i + 1, status);
                break;
            } else
-                dbg("ZLP_REG%d Writing success status%d\n",
+                dbg("ZLP_REG%d Writing success status%d",
                    i + 1, status);

        }
@@ -2652,15 +2657,16 @@
            goto error;
        }
    }
+    dbg ("mos7840_startup: all ports configured...........");

    /* Zero Length flag enable */
    Data = 0x0f;
    status = mos7840_set_reg_sync(serial->port[0], ZLP_REG5, Data);
    if (status < 0) {
-        dbg("Writing ZLP_REG5 failed status-0x%x\n", status);
+        dbg("Writing ZLP_REG5 failed status-0x%x", status);
        goto error;
    } else
-        dbg("ZLP_REG5 Writing success status%d\n", status);
+        dbg("ZLP_REG5 Writing success status%d", status);

    /* setting configuration feature to one */
    usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0),
@@ -2689,10 +2695,10 @@
    int i;
    unsigned long flags;
    struct moschip_port *mos7840_port;
-    dbg("%s \n", " shutdown :entering..........");
+    dbg("%s", " shutdown :entering..........");

    if (!serial) {
-        dbg("%s", "Invalid Handler \n");
+        dbg("%s", "Invalid Handler");
        return;
    }

@@ -2716,7 +2722,7 @@
        mos7840_set_port_private(serial->port[i], NULL);
    }

-    dbg("%s\n", "Thank u :: ");
+    dbg("%s", "Thank u :: ");

}

@@ -2767,7 +2773,7 @@
{
    int retval;

-    dbg("%s \n", " mos7840_init :entering..........");
+    dbg("%s", " mos7840_init :entering..........");

    /* Register with the usb serial */
    retval = usb_serial_register(&moschip7840_4port_device);
@@ -2775,14 +2781,14 @@
    if (retval)
        goto failed_port_device_register;

-    dbg("%s\n", "Entring...");
+    dbg("%s", "Entering...");
    printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
           DRIVER_DESC "\n");

    /* Register with the usb */
    retval = usb_register(&io_driver);
    if (retval == 0) {
-        dbg("%s\n", "Leaving...");
+        dbg("%s", "Leaving...");
        return 0;
    }
    usb_serial_deregister(&moschip7840_4port_device);
@@ -2797,13 +2803,13 @@
static void __exit moschip7840_exit(void)
{

-    dbg("%s \n", " mos7840_exit :entering..........");
+    dbg("%s", " mos7840_exit :entering..........");

    usb_deregister(&io_driver);

    usb_serial_deregister(&moschip7840_4port_device);

-    dbg("%s\n", "Entring...");
+    dbg("%s", "Entering...");
}

module_init(moschip7840_init);

--
Tony Cook
Lewiston 5501
Ph.  +61 (0)8 8524 3418
Mob. +61 (0)4 2885 2512

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux