summaryrefslogtreecommitdiff
path: root/drivers/staging/brcm80211
diff options
context:
space:
mode:
authorFranky Lin <frankyl@broadcom.com>2011-08-12 15:34:54 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2011-08-23 13:06:39 -0700
commit8e8d49663f0beca00b12de11b3a332fd24c23af3 (patch)
treed27009c33aa3e4f5c2e2e760a47aeee06a4605c9 /drivers/staging/brcm80211
parent632ea5ee37b21a01dc3b74e77fef54b69d0c88b1 (diff)
staging: brcm80211: absorb brcmf_sdioh_interrupt_register into brcmf_sdcard_intr_reg
brcmfmac wrapper function cleanup Reviewed-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/brcm80211')
-rw-r--r--drivers/staging/brcm80211/brcmfmac/bcmsdh.c22
-rw-r--r--drivers/staging/brcm80211/brcmfmac/bcmsdh_sdmmc.c43
-rw-r--r--drivers/staging/brcm80211/brcmfmac/sdio_host.h1
3 files changed, 21 insertions, 45 deletions
diff --git a/drivers/staging/brcm80211/brcmfmac/bcmsdh.c b/drivers/staging/brcm80211/brcmfmac/bcmsdh.c
index 13b6dbe7a18..e5cf138100f 100644
--- a/drivers/staging/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/staging/brcm80211/brcmfmac/bcmsdh.c
@@ -21,6 +21,7 @@
#include <linux/pci_ids.h>
#include <linux/sched.h>
#include <linux/completion.h>
+#include <linux/mmc/sdio_func.h>
#include <linux/mmc/card.h>
#include <defs.h>
@@ -162,9 +163,28 @@ exit:
return bcmerror;
}
+static void brcmf_sdioh_irqhandler(struct sdio_func *func)
+{
+ struct brcmf_sdio_dev *sdiodev = dev_get_drvdata(&func->card->dev);
+
+ BRCMF_TRACE(("brcmf: ***IRQHandler\n"));
+
+ sdio_release_host(func);
+
+ brcmf_sdbrcm_isr(sdiodev->bus);
+
+ sdio_claim_host(func);
+}
+
int brcmf_sdcard_intr_reg(struct brcmf_sdio_dev *sdiodev)
{
- return brcmf_sdioh_interrupt_register(sdiodev);
+ BRCMF_TRACE(("%s: Entering\n", __func__));
+
+ sdio_claim_host(sdiodev->func[1]);
+ sdio_claim_irq(sdiodev->func[1], brcmf_sdioh_irqhandler);
+ sdio_release_host(sdiodev->func[1]);
+
+ return 0;
}
int brcmf_sdcard_intr_dereg(struct brcmf_sdio_dev *sdiodev)
diff --git a/drivers/staging/brcm80211/brcmfmac/bcmsdh_sdmmc.c b/drivers/staging/brcm80211/brcmfmac/bcmsdh_sdmmc.c
index 1bfeec62865..2e7d3cea867 100644
--- a/drivers/staging/brcm80211/brcmfmac/bcmsdh_sdmmc.c
+++ b/drivers/staging/brcm80211/brcmfmac/bcmsdh_sdmmc.c
@@ -44,8 +44,6 @@
#define SDIO_DEVICE_ID_BROADCOM_4329 0x4329
#endif /* !defined(SDIO_DEVICE_ID_BROADCOM_4329) */
-static void brcmf_sdioh_irqhandler(struct sdio_func *func);
-static void brcmf_sdioh_irqhandler_f2(struct sdio_func *func);
static int brcmf_sdioh_get_cisaddr(struct brcmf_sdio_dev *sdiodev, u32 regaddr);
static int brcmf_ops_sdio_probe(struct sdio_func *func,
const struct sdio_device_id *id);
@@ -192,28 +190,6 @@ void brcmf_sdioh_detach(struct brcmf_sdio_dev *sdiodev)
}
-/* Configure callback to client when we receive client interrupt */
-extern int
-brcmf_sdioh_interrupt_register(struct brcmf_sdio_dev *sdiodev)
-{
- BRCMF_TRACE(("%s: Entering\n", __func__));
-
- /* register and unmask irq */
- if (sdiodev->func[2]) {
- sdio_claim_host(sdiodev->func[2]);
- sdio_claim_irq(sdiodev->func[2], brcmf_sdioh_irqhandler_f2);
- sdio_release_host(sdiodev->func[2]);
- }
-
- if (sdiodev->func[1]) {
- sdio_claim_host(sdiodev->func[1]);
- sdio_claim_irq(sdiodev->func[1], brcmf_sdioh_irqhandler);
- sdio_release_host(sdiodev->func[1]);
- }
-
- return 0;
-}
-
int brcmf_sdioh_interrupt_deregister(struct brcmf_sdio_dev *sdiodev)
{
BRCMF_TRACE(("%s: Entering\n", __func__));
@@ -662,25 +638,6 @@ brcmf_sdioh_card_regread(struct brcmf_sdio_dev *sdiodev, int func, u32 regaddr,
return SUCCESS;
}
-static void brcmf_sdioh_irqhandler(struct sdio_func *func)
-{
- struct brcmf_sdio_dev *sdiodev = dev_get_drvdata(&func->card->dev);
-
- BRCMF_TRACE(("brcmf: ***IRQHandler\n"));
-
- sdio_release_host(func);
-
- brcmf_sdbrcm_isr(sdiodev->bus);
-
- sdio_claim_host(func);
-}
-
-/* interrupt handler for F2 (dummy handler) */
-static void brcmf_sdioh_irqhandler_f2(struct sdio_func *func)
-{
- BRCMF_TRACE(("brcmf: ***IRQHandlerF2\n"));
-}
-
static int brcmf_ops_sdio_probe(struct sdio_func *func,
const struct sdio_device_id *id)
{
diff --git a/drivers/staging/brcm80211/brcmfmac/sdio_host.h b/drivers/staging/brcm80211/brcmfmac/sdio_host.h
index 4a814e54f99..bdbf4112434 100644
--- a/drivers/staging/brcm80211/brcmfmac/sdio_host.h
+++ b/drivers/staging/brcm80211/brcmfmac/sdio_host.h
@@ -247,7 +247,6 @@ extern u32 brcmf_sdcard_cur_sbwad(struct brcmf_sdio_dev *sdiodev);
extern int brcmf_sdioh_attach(struct brcmf_sdio_dev *sdiodev);
extern void brcmf_sdioh_detach(struct brcmf_sdio_dev *sdiodev);
-extern int brcmf_sdioh_interrupt_register(struct brcmf_sdio_dev *sdiodev);
extern int brcmf_sdioh_interrupt_deregister(struct brcmf_sdio_dev *sdiodev);
/* read or write one byte using cmd52 */