unsigned char           used;                   /* True if open */
        unsigned char           present;                /* True if not disconnected */
        unsigned char           bidir;                  /* interface is bidirectional */
-       unsigned char           sleeping;               /* interface is suspended */
        unsigned char           no_paper;               /* Paper Out happened */
        unsigned char           *device_id_string;      /* IEEE 1284 DEVICE ID string (ptr) */
                                                        /* first 2 bytes are (big-endian) length */
        dbg("quirks=%d", usblp->quirks);
        dbg("used=%d", usblp->used);
        dbg("bidir=%d", usblp->bidir);
-       dbg("sleeping=%d", usblp->sleeping);
        dbg("device_id_string=\"%s\"",
                usblp->device_id_string ?
                        usblp->device_id_string + 2 :
 
 static int handle_bidir (struct usblp *usblp)
 {
-       if (usblp->bidir && usblp->used && !usblp->sleeping) {
+       if (usblp->bidir && usblp->used) {
                if (usblp_submit_read(usblp) < 0)
                        return -EIO;
        }
                goto done;
        }
 
-       if (usblp->sleeping) {
-               retval = -ENODEV;
-               goto done;
-       }
-
        dbg("usblp_ioctl: cmd=0x%x (%c nr=%d len=%d dir=%d)", cmd, _IOC_TYPE(cmd),
                _IOC_NR(cmd), _IOC_SIZE(cmd), _IOC_DIR(cmd) );
 
                return 0;
        }
        spin_unlock_irqrestore(&usblp->lock, flags);
-       if (usblp->sleeping)
-               return -ENODEV;
        if (nonblock)
                return -EAGAIN;
        return 1;
                return 0;
        }
        spin_unlock_irqrestore(&usblp->lock, flags);
-       if (usblp->sleeping)
-               return -ENODEV;
        if (nonblock)
                return -EAGAIN;
        return 1;
        mutex_unlock (&usblp_mutex);
 }
 
-static int usblp_suspend (struct usb_interface *intf, pm_message_t message)
+static int usblp_suspend(struct usb_interface *intf, pm_message_t message)
 {
        struct usblp *usblp = usb_get_intfdata (intf);
 
-       /* we take no more IO */
-       usblp->sleeping = 1;
        usblp_unlink_urbs(usblp);
 #if 0 /* XXX Do we want this? What if someone is reading, should we fail? */
        /* not strictly necessary, but just in case */
        return 0;
 }
 
-static int usblp_resume (struct usb_interface *intf)
+static int usblp_resume(struct usb_interface *intf)
 {
        struct usblp *usblp = usb_get_intfdata (intf);
        int r;
 
-       usblp->sleeping = 0;
        r = handle_bidir (usblp);
 
        return r;