static void hub_connect_port (struct psfreedom_device *dev, unsigned int port) { if (port == 0 || port > 6) return; switch_to_port (dev, 0); /* Here, we must enable the port directly, otherwise we might loose time with the host asking for the status a few more times, and waiting for it to be enabled, etc.. and we might miss the 5seconds window in which we need to connect the JIG */ dev->hub_ports[port-1].status |= PORT_STAT_CONNECTION; dev->hub_ports[port-1].status |= PORT_STAT_ENABLE; /* If the speed flag set is not the same as what the device suports, it will not work */ if (psfreedom_is_high_speed ()) dev->hub_ports[port-1].status |= PORT_STAT_HIGH_SPEED; else if (psfreedom_is_low_speed ()) dev->hub_ports[port-1].status |= PORT_STAT_HIGH_SPEED; dev->hub_ports[port-1].change |= PORT_STAT_C_CONNECTION; hub_port_changed (dev); }
static int __init psfreedom_init(void) { int ret = 0; printk(KERN_INFO "init\n"); /* Determine what speed the controller supports */ if (psfreedom_is_high_speed ()) psfreedom_driver.speed = USB_SPEED_HIGH; else if (psfreedom_is_low_speed ()) psfreedom_driver.speed = USB_SPEED_HIGH; else psfreedom_driver.speed = USB_SPEED_FULL; ret = usb_gadget_register_driver(&psfreedom_driver); printk(KERN_INFO "register driver returned %d\n", ret); return ret; }
static int __init psfreedom_init(void) { int ret = 0; printk(KERN_INFO "init\n"); if (asbestos) printk(KERN_INFO "Asbestos stage2 mode, connecting device6.\n"); if (jig && asbestos) { printk(KERN_INFO "JIG mode requested but denied because asbestos mode " "is active.\n"); jig = 0; } else if (jig) { printk(KERN_INFO "JIG mode enabled.\n"); } if (debug) printk(KERN_INFO "Debug mode enabled. Level is %d\n", debug); if (no_delayed_switching) printk(KERN_INFO "No delayed port switching enabled.\n"); /* Determine what speed the controller supports */ if (psfreedom_is_high_speed ()) psfreedom_driver.speed = USB_SPEED_HIGH; else if (psfreedom_is_low_speed ()) psfreedom_driver.speed = USB_SPEED_HIGH; else psfreedom_driver.speed = USB_SPEED_FULL; ret = usb_gadget_register_driver(&psfreedom_driver); printk(KERN_INFO "register driver returned %d\n", ret); return ret; }