kref_put(&hub->kref, hub_release);
}
-
+struct usb_hub *g_root_hub20 = NULL;
static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id)
{
struct usb_host_interface *desc;
dev_dbg (&intf->dev, "couldn't kmalloc hub struct\n");
return -ENOMEM;
}
-
+ if(!g_root_hub20)
+ {
+ g_root_hub20 = hub;
+ }
kref_init(&hub->kref);
INIT_LIST_HEAD(&hub->event_list);
hub->intfdev = &intf->dev;
spin_unlock_irq(&device_state_lock);
usb_stop_pm(udev);
+
hub_free_dev(udev);
} /* end while (1) */
}
+/* yk@rk 20100730
+ * disconnect all devices on root hub
+ */
+void hub_disconnect_device(struct usb_hub *hub)
+{
+ hub_port_connect_change(hub, 1, 0, 0x2);
+}
+
static int hub_thread(void *__unused)
{
/* khubd needs to be freezable to avoid intefering with USB-PERSIST