Commit 22a91197 authored by Arend van Spriel's avatar Arend van Spriel Committed by Greg Kroah-Hartman

staging: brcm80211: remove global variable from bcmsdh_sdmmc.c

The source file contained some static global variables that were
needed per device handled by the driver. They have moved to the
struct brcmf_sdio_dev for that reason.
Reviewed-by: default avatarFranky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: default avatarRoland Vossen <rvossen@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 0569c8e2
...@@ -50,11 +50,6 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = { ...@@ -50,11 +50,6 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
}; };
MODULE_DEVICE_TABLE(sdio, brcmf_sdmmc_ids); MODULE_DEVICE_TABLE(sdio, brcmf_sdmmc_ids);
static DECLARE_WAIT_QUEUE_HEAD(sdioh_request_byte_wait);
static DECLARE_WAIT_QUEUE_HEAD(sdioh_request_word_wait);
static DECLARE_WAIT_QUEUE_HEAD(sdioh_request_packet_wait);
static DECLARE_WAIT_QUEUE_HEAD(sdioh_request_buffer_wait);
static bool static bool
brcmf_pm_resume_error(struct brcmf_sdio_dev *sdiodev) brcmf_pm_resume_error(struct brcmf_sdio_dev *sdiodev)
{ {
...@@ -66,12 +61,12 @@ brcmf_pm_resume_error(struct brcmf_sdio_dev *sdiodev) ...@@ -66,12 +61,12 @@ brcmf_pm_resume_error(struct brcmf_sdio_dev *sdiodev)
} }
static void static void
brcmf_pm_resume_wait(struct brcmf_sdio_dev *sdiodev, wait_queue_head_t wq) brcmf_pm_resume_wait(struct brcmf_sdio_dev *sdiodev, wait_queue_head_t *wq)
{ {
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
int retry = 0; int retry = 0;
while (atomic_read(&sdiodev->suspend) && retry++ != 30) while (atomic_read(&sdiodev->suspend) && retry++ != 30)
wait_event_timeout(wq, false, HZ/100); wait_event_timeout(*wq, false, HZ/100);
#endif #endif
} }
...@@ -82,7 +77,7 @@ int brcmf_sdioh_request_byte(struct brcmf_sdio_dev *sdiodev, uint rw, uint func, ...@@ -82,7 +77,7 @@ int brcmf_sdioh_request_byte(struct brcmf_sdio_dev *sdiodev, uint rw, uint func,
brcmf_dbg(INFO, "rw=%d, func=%d, addr=0x%05x\n", rw, func, regaddr); brcmf_dbg(INFO, "rw=%d, func=%d, addr=0x%05x\n", rw, func, regaddr);
brcmf_pm_resume_wait(sdiodev, sdioh_request_byte_wait); brcmf_pm_resume_wait(sdiodev, &sdiodev->request_byte_wait);
if (brcmf_pm_resume_error(sdiodev)) if (brcmf_pm_resume_error(sdiodev))
return -EIO; return -EIO;
if (rw) { /* CMD52 Write */ if (rw) { /* CMD52 Write */
...@@ -185,7 +180,7 @@ int brcmf_sdioh_request_word(struct brcmf_sdio_dev *sdiodev, ...@@ -185,7 +180,7 @@ int brcmf_sdioh_request_word(struct brcmf_sdio_dev *sdiodev,
brcmf_dbg(INFO, "rw=%d, func=%d, addr=0x%05x, nbytes=%d\n", brcmf_dbg(INFO, "rw=%d, func=%d, addr=0x%05x, nbytes=%d\n",
rw, func, addr, nbytes); rw, func, addr, nbytes);
brcmf_pm_resume_wait(sdiodev, sdioh_request_word_wait); brcmf_pm_resume_wait(sdiodev, &sdiodev->request_word_wait);
if (brcmf_pm_resume_error(sdiodev)) if (brcmf_pm_resume_error(sdiodev))
return -EIO; return -EIO;
/* Claim host controller */ /* Claim host controller */
...@@ -235,7 +230,7 @@ brcmf_sdioh_request_packet(struct brcmf_sdio_dev *sdiodev, uint fix_inc, ...@@ -235,7 +230,7 @@ brcmf_sdioh_request_packet(struct brcmf_sdio_dev *sdiodev, uint fix_inc,
brcmf_dbg(TRACE, "Enter\n"); brcmf_dbg(TRACE, "Enter\n");
brcmf_pm_resume_wait(sdiodev, sdioh_request_packet_wait); brcmf_pm_resume_wait(sdiodev, &sdiodev->request_packet_wait);
if (brcmf_pm_resume_error(sdiodev)) if (brcmf_pm_resume_error(sdiodev))
return -EIO; return -EIO;
...@@ -312,7 +307,7 @@ int brcmf_sdioh_request_buffer(struct brcmf_sdio_dev *sdiodev, ...@@ -312,7 +307,7 @@ int brcmf_sdioh_request_buffer(struct brcmf_sdio_dev *sdiodev,
brcmf_dbg(TRACE, "Enter\n"); brcmf_dbg(TRACE, "Enter\n");
brcmf_pm_resume_wait(sdiodev, sdioh_request_buffer_wait); brcmf_pm_resume_wait(sdiodev, &sdiodev->request_buffer_wait);
if (brcmf_pm_resume_error(sdiodev)) if (brcmf_pm_resume_error(sdiodev))
return -EIO; return -EIO;
/* Case 1: we don't have a packet. */ /* Case 1: we don't have a packet. */
...@@ -529,6 +524,10 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func, ...@@ -529,6 +524,10 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func,
dev_set_drvdata(&func->card->dev, sdiodev); dev_set_drvdata(&func->card->dev, sdiodev);
atomic_set(&sdiodev->suspend, false); atomic_set(&sdiodev->suspend, false);
init_waitqueue_head(&sdiodev->request_byte_wait);
init_waitqueue_head(&sdiodev->request_word_wait);
init_waitqueue_head(&sdiodev->request_packet_wait);
init_waitqueue_head(&sdiodev->request_buffer_wait);
} }
if (func->num == 2) { if (func->num == 2) {
......
...@@ -130,6 +130,11 @@ struct brcmf_sdio_dev { ...@@ -130,6 +130,11 @@ struct brcmf_sdio_dev {
bool regfail; /* status of last reg_r/w call */ bool regfail; /* status of last reg_r/w call */
void *bus; void *bus;
atomic_t suspend; /* suspend flag */ atomic_t suspend; /* suspend flag */
wait_queue_head_t request_byte_wait;
wait_queue_head_t request_word_wait;
wait_queue_head_t request_packet_wait;
wait_queue_head_t request_buffer_wait;
}; };
/* Register/deregister device interrupt handler. */ /* Register/deregister device interrupt handler. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment