From 55e777d49e278ca7a00392d2a19f29bb73febe13 Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Thu, 28 Apr 2011 16:41:07 +0900 Subject: [PATCH] --- yaml --- r: 248756 b: refs/heads/master c: 5ea68d541df200d10a373c06f945f98225c2486b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/usb/renesas_usbhs/mod.c | 34 +++++++++++++++------------ 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/[refs] b/[refs] index 91c217957aa0..2b27ec1ac171 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6e267da8f10b1a6551b6c4dee3779f6f56e2644d +refs/heads/master: 5ea68d541df200d10a373c06f945f98225c2486b diff --git a/trunk/drivers/usb/renesas_usbhs/mod.c b/trunk/drivers/usb/renesas_usbhs/mod.c index 73604a1d6843..d0f5f67e0749 100644 --- a/trunk/drivers/usb/renesas_usbhs/mod.c +++ b/trunk/drivers/usb/renesas_usbhs/mod.c @@ -179,15 +179,17 @@ static void usbhs_status_get_each_irq(struct usbhs_priv *priv, state->intsts0 = usbhs_read(priv, INTSTS0); state->intsts1 = usbhs_read(priv, INTSTS1); - state->brdysts = usbhs_read(priv, BRDYSTS); - state->nrdysts = usbhs_read(priv, NRDYSTS); - state->bempsts = usbhs_read(priv, BEMPSTS); - state->dvstctr = usbhs_read(priv, DVSTCTR); /* mask */ - state->bempsts &= mod->irq_bempsts; - state->brdysts &= mod->irq_brdysts; + if (mod) { + state->brdysts = usbhs_read(priv, BRDYSTS); + state->nrdysts = usbhs_read(priv, NRDYSTS); + state->bempsts = usbhs_read(priv, BEMPSTS); + + state->bempsts &= mod->irq_bempsts; + state->brdysts &= mod->irq_brdysts; + } } /* @@ -259,17 +261,19 @@ void usbhs_irq_callback_update(struct usbhs_priv *priv, struct usbhs_mod *mod) * but "mod->irq_dev_state" will be called. */ - if (mod->irq_ctrl_stage) - intenb0 |= CTRE; + if (mod) { + if (mod->irq_ctrl_stage) + intenb0 |= CTRE; - if (mod->irq_empty && mod->irq_bempsts) { - usbhs_write(priv, BEMPENB, mod->irq_bempsts); - intenb0 |= BEMPE; - } + if (mod->irq_empty && mod->irq_bempsts) { + usbhs_write(priv, BEMPENB, mod->irq_bempsts); + intenb0 |= BEMPE; + } - if (mod->irq_ready && mod->irq_brdysts) { - usbhs_write(priv, BRDYENB, mod->irq_brdysts); - intenb0 |= BRDYE; + if (mod->irq_ready && mod->irq_brdysts) { + usbhs_write(priv, BRDYENB, mod->irq_brdysts); + intenb0 |= BRDYE; + } } usbhs_write(priv, INTENB0, intenb0);