/* "modprobe net2280 enable_suspend=1" etc */
 module_param (enable_suspend, bool, S_IRUGO);
 
+/* force full-speed operation */
+static bool full_speed;
+module_param(full_speed, bool, 0444);
+MODULE_PARM_DESC(full_speed, "force full-speed mode -- for testing only!");
 
 #define        DIR_STRING(bAddress) (((bAddress) & USB_DIR_IN) ? "in" : "out")
 
        retval = device_create_file (&dev->pdev->dev, &dev_attr_queues);
        if (retval) goto err_func;
 
+       /* Enable force-full-speed testing mode, if desired */
+       if (full_speed)
+               writel(1 << FORCE_FULL_SPEED_MODE, &dev->usb->xcvrdiag);
+
        /* ... then enable host detection and ep0; and we're ready
         * for set_configuration as well as eventual disconnect.
         */
        dev->driver = NULL;
 
        net2280_led_active (dev, 0);
+
+       /* Disable full-speed test mode */
+       writel(0, &dev->usb->xcvrdiag);
+
        device_remove_file (&dev->pdev->dev, &dev_attr_function);
        device_remove_file (&dev->pdev->dev, &dev_attr_queues);
 
 
        /* disable the pullup so the host will think we're gone */
        writel (0, &dev->usb->usbctl);
+
+       /* Disable full-speed test mode */
+       writel(0, &dev->usb->xcvrdiag);
 }