dma_addr_t data_dma;
        struct input_dev *dev;
        struct usb_device *usbdev;
+       struct usb_interface *intf;
        struct urb *irq;
        char phys[32];
 };
        case -ENOENT:
        case -ESHUTDOWN:
                /* this urb is terminated, clean up */
-               dev_dbg(&dev->dev, "%s - urb shutting down with status: %d\n",
+               dev_dbg(&kbtab->intf->dev,
+                       "%s - urb shutting down with status: %d\n",
                        __func__, urb->status);
                return;
        default:
-               dev_dbg(&dev->dev, "%s - nonzero urb status received: %d\n",
+               dev_dbg(&kbtab->intf->dev,
+                       "%s - nonzero urb status received: %d\n",
                        __func__, urb->status);
                goto exit;
        }
  exit:
        retval = usb_submit_urb(urb, GFP_ATOMIC);
        if (retval)
-               dev_err(&dev->dev,
+               dev_err(&kbtab->intf->dev,
                        "%s - usb_submit_urb failed with result %d\n",
                        __func__, retval);
 }
                goto fail2;
 
        kbtab->usbdev = dev;
+       kbtab->intf = intf;
        kbtab->dev = input_dev;
 
        usb_make_path(dev, kbtab->phys, sizeof(kbtab->phys));