From 6fbfd017935b737faa8ca8880270f5d108b73ad5 Mon Sep 17 00:00:00 2001 From: Cindy H Kao Date: Mon, 10 Aug 2009 18:36:15 -0700 Subject: [PATCH] --- yaml --- r: 171199 b: refs/heads/master c: 339ccc362cb60b48e478ff494172efadb385c0ab h: refs/heads/master i: 171197: 8da499348836033dd7d2836a7437c018489e7fc9 171195: e5c8eef4c6c9bc4919ae2e0fe609f9ec04750c40 171191: 81368c1e445bee70ab3c5227694ed1ea108f4702 171183: 34ea4326efd94c5bb862204720a87660c9d106fd 171167: 68dd5c58b42fdb3d61d1b194d8d45e97d9ace2a6 171135: e33ed1764242152e421788adf41b6c3513f86ec9 v: v3 --- [refs] | 2 +- trunk/drivers/net/wimax/i2400m/sdio-rx.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 894bc66fb82b..9e01d67f51ce 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2093586de29418820b89aae05746511392f8ad73 +refs/heads/master: 339ccc362cb60b48e478ff494172efadb385c0ab diff --git a/trunk/drivers/net/wimax/i2400m/sdio-rx.c b/trunk/drivers/net/wimax/i2400m/sdio-rx.c index f6ca51ab216d..1c9046914bd1 100644 --- a/trunk/drivers/net/wimax/i2400m/sdio-rx.c +++ b/trunk/drivers/net/wimax/i2400m/sdio-rx.c @@ -138,6 +138,11 @@ void i2400ms_rx(struct i2400ms *i2400ms) ret = rx_size; goto error_get_size; } + /* + * Hardware quirk: make sure to clear the INTR status register + * AFTER getting the data transfer size. + */ + sdio_writeb(func, 1, I2400MS_INTR_CLEAR_ADDR, &ret); ret = -ENOMEM; skb = alloc_skb(rx_size, GFP_ATOMIC); @@ -209,7 +214,6 @@ void i2400ms_irq(struct sdio_func *func) dev_err(dev, "RX: BUG? got IRQ but no interrupt ready?\n"); goto error_no_irq; } - sdio_writeb(func, 1, I2400MS_INTR_CLEAR_ADDR, &ret); i2400ms_rx(i2400ms); error_no_irq: d_fnend(6, dev, "(i2400ms %p) = void\n", i2400ms);