From d333bacfd0c4633df8e9e6d41a760400219c169a Mon Sep 17 00:00:00 2001 From: Harro Haan Date: Mon, 1 Mar 2010 17:38:37 +0100 Subject: [PATCH] --- yaml --- r: 189415 b: refs/heads/master c: c6c352371c1ce486a62f4eb92e545b05cfcef76b h: refs/heads/master i: 189413: 56037369ad379224ca2f7d9e1f51add157edd55a 189411: 25984360051fad637ec8d57125e52484d7503978 189407: b65302231c5e810e085b3d2939772de702edb0fd v: v3 --- [refs] | 2 +- trunk/drivers/usb/gadget/at91_udc.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 559d24991771..2ef7f772146d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fd522a8dec11a08b5fdd23982193808e268be19e +refs/heads/master: c6c352371c1ce486a62f4eb92e545b05cfcef76b diff --git a/trunk/drivers/usb/gadget/at91_udc.c b/trunk/drivers/usb/gadget/at91_udc.c index 12ac9cd32a07..df1bae9b048e 100644 --- a/trunk/drivers/usb/gadget/at91_udc.c +++ b/trunk/drivers/usb/gadget/at91_udc.c @@ -1370,6 +1370,12 @@ static irqreturn_t at91_udc_irq (int irq, void *_udc) { struct at91_udc *udc = _udc; u32 rescans = 5; + int disable_clock = 0; + + if (!udc->clocked) { + clk_on(udc); + disable_clock = 1; + } while (rescans--) { u32 status; @@ -1458,6 +1464,9 @@ static irqreturn_t at91_udc_irq (int irq, void *_udc) } } + if (disable_clock) + clk_off(udc); + return IRQ_HANDLED; }