"device driver"
 #define DRIVER_NAME    "mceusb"
 
-#define USB_BUFLEN             32 /* USB reception buffer length */
 #define USB_CTRL_MSG_SZ                2  /* Size of usb ctrl msg on gen1 hw */
 #define MCE_G1_INIT_MSGS       40 /* Init messages on gen1 hw to throw out */
 
 }
 
 static void mceusb_dev_printdata(struct mceusb_dev *ir, char *buf,
-                                int offset, int len, bool out)
+                                int buf_len, int offset, int len, bool out)
 {
 #if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG)
        char *inout;
                return;
 
        dev_dbg(dev, "%cx data: %*ph (length=%d)",
-               (out ? 't' : 'r'), min(len, USB_BUFLEN), buf, len);
+               (out ? 't' : 'r'),
+               min(len, buf_len - offset), buf + offset, len);
 
        inout = out ? "Request" : "Got";
 
        case 0:
                len = urb->actual_length;
 
-               mceusb_dev_printdata(ir, urb->transfer_buffer, 0, len, true);
+               mceusb_dev_printdata(ir, urb->transfer_buffer, len,
+                                    0, len, true);
                break;
 
        case -ECONNRESET:
        usb_free_urb(urb);
 }
 
-/* request incoming or send outgoing usb packet - used to initialize remote */
+/* request outgoing (send) usb packet - used to initialize remote */
 static void mce_request_packet(struct mceusb_dev *ir, unsigned char *data,
                                                                int size)
 {
 
        async_urb = usb_alloc_urb(0, GFP_KERNEL);
        if (unlikely(!async_urb)) {
-               dev_err(dev, "Error, couldn't allocate urb!\n");
+               dev_err(dev, "Error, couldn't allocate urb!");
                return;
        }
 
        }
        memcpy(async_buf, data, size);
 
-       dev_dbg(dev, "receive request called (size=%#x)", size);
+       dev_dbg(dev, "send request called (size=%#x)", size);
 
        async_urb->transfer_buffer_length = size;
        async_urb->dev = ir->usbdev;
 
        res = usb_submit_urb(async_urb, GFP_ATOMIC);
        if (res) {
-               dev_err(dev, "receive request FAILED! (res=%d)", res);
+               dev_err(dev, "send request FAILED! (res=%d)", res);
                return;
        }
-       dev_dbg(dev, "receive request complete (res=%d)", res);
+       dev_dbg(dev, "send request complete (res=%d)", res);
 }
 
 static void mce_async_out(struct mceusb_dev *ir, unsigned char *data, int size)
                switch (ir->parser_state) {
                case SUBCMD:
                        ir->rem = mceusb_cmd_datasize(ir->cmd, ir->buf_in[i]);
-                       mceusb_dev_printdata(ir, ir->buf_in, i - 1,
+                       mceusb_dev_printdata(ir, ir->buf_in, buf_len, i - 1,
                                             ir->rem + 2, false);
                        mceusb_handle_command(ir, i);
                        ir->parser_state = CMD_DATA;
                        rawir.duration = (ir->buf_in[i] & MCE_PULSE_MASK)
                                         * US_TO_NS(MCE_TIME_UNIT);
 
-                       dev_dbg(ir->dev, "Storing %s with duration %d",
+                       dev_dbg(ir->dev, "Storing %s with duration %u",
                                rawir.pulse ? "pulse" : "space",
                                rawir.duration);
 
                                continue;
                        }
                        ir->rem = (ir->cmd & MCE_PACKET_LENGTH_MASK);
-                       mceusb_dev_printdata(ir, ir->buf_in,
+                       mceusb_dev_printdata(ir, ir->buf_in, buf_len,
                                             i, ir->rem + 1, false);
                        if (ir->rem)
                                ir->parser_state = PARSE_IRDATA;
        ir->urb_in->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
 
        /* flush buffers on the device */
-       dev_dbg(&intf->dev, "Flushing receive buffers\n");
+       dev_dbg(&intf->dev, "Flushing receive buffers");
        res = usb_submit_urb(ir->urb_in, GFP_KERNEL);
        if (res)
-               dev_err(&intf->dev, "failed to flush buffers: %d\n", res);
+               dev_err(&intf->dev, "failed to flush buffers: %d", res);
 
        /* figure out which firmware/emulator version this hardware has */
        mceusb_get_emulator_version(ir);