Greg:

This patch makes the dummy_hcd driver use emulated root-hub interrupts 
instead of polling.  It's in the spirit of similar changes being made to 
the other HCDs.

Alan Stern



Signed-off-by: Alan Stern <[EMAIL PROTECTED]>

Index: usb-2.6/drivers/usb/gadget/dummy_hcd.c
===================================================================
--- usb-2.6.orig/drivers/usb/gadget/dummy_hcd.c
+++ usb-2.6/drivers/usb/gadget/dummy_hcd.c
@@ -684,6 +684,7 @@ static int dummy_wakeup (struct usb_gadg
        /* hub notices our request, issues downstream resume, etc */
        dum->resuming = 1;
        dum->re_timeout = jiffies + msecs_to_jiffies(20);
+       mod_timer (&dummy_to_hcd (dum)->rh_timer, dum->re_timeout);
        return 0;
 }
 
@@ -709,6 +710,8 @@ static int dummy_pullup (struct usb_gadg
        dum->pullup = (value != 0);
        set_link_state (dum);
        spin_unlock_irqrestore (&dum->lock, flags);
+
+       usb_hcd_poll_rh_status (dummy_to_hcd (dum));
        return 0;
 }
 
@@ -811,6 +814,8 @@ usb_gadget_register_driver (struct usb_g
        dum->pullup = 1;
        set_link_state (dum);
        spin_unlock_irq (&dum->lock);
+
+       usb_hcd_poll_rh_status (dummy_to_hcd (dum));
        return 0;
 }
 EXPORT_SYMBOL (usb_gadget_register_driver);
@@ -845,6 +850,7 @@ usb_gadget_unregister_driver (struct usb
        set_link_state (dum);
        spin_unlock_irqrestore (&dum->lock, flags);
 
+       usb_hcd_poll_rh_status (dummy_to_hcd (dum));
        return 0;
 }
 EXPORT_SYMBOL (usb_gadget_unregister_driver);
@@ -1669,6 +1675,9 @@ static int dummy_hub_control (
                retval = -EPIPE;
        }
        spin_unlock_irqrestore (&dum->lock, flags);
+
+       if ((dum->port_status & PORT_C_MASK) != 0)
+               usb_hcd_poll_rh_status (hcd);
        return retval;
 }
 
@@ -1745,6 +1754,7 @@ static int dummy_start (struct usb_hcd *
        /* only show a low-power port: just 8mA */
        hcd->power_budget = 8;
        hcd->state = HC_STATE_RUNNING;
+       hcd->uses_new_polling = 1;
 
 #ifdef CONFIG_USB_OTG
        hcd->self.otg_port = 1;



-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to