diff options
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c index 00ba90b89455..8ba60f6f4915 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | |||
@@ -97,25 +97,6 @@ static void brcmf_sdiod_dummy_irqhandler(struct sdio_func *func) | |||
97 | { | 97 | { |
98 | } | 98 | } |
99 | 99 | ||
100 | static bool brcmf_sdiod_pm_resume_error(struct brcmf_sdio_dev *sdiodev) | ||
101 | { | ||
102 | bool is_err = false; | ||
103 | #ifdef CONFIG_PM_SLEEP | ||
104 | is_err = atomic_read(&sdiodev->suspend); | ||
105 | #endif | ||
106 | return is_err; | ||
107 | } | ||
108 | |||
109 | static void brcmf_sdiod_pm_resume_wait(struct brcmf_sdio_dev *sdiodev, | ||
110 | wait_queue_head_t *wq) | ||
111 | { | ||
112 | #ifdef CONFIG_PM_SLEEP | ||
113 | int retry = 0; | ||
114 | while (atomic_read(&sdiodev->suspend) && retry++ != 30) | ||
115 | wait_event_timeout(*wq, false, HZ/100); | ||
116 | #endif | ||
117 | } | ||
118 | |||
119 | int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev) | 100 | int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev) |
120 | { | 101 | { |
121 | int ret = 0; | 102 | int ret = 0; |
@@ -244,10 +225,6 @@ static int brcmf_sdiod_request_data(struct brcmf_sdio_dev *sdiodev, u8 fn, | |||
244 | brcmf_dbg(SDIO, "rw=%d, func=%d, addr=0x%05x, nbytes=%d\n", | 225 | brcmf_dbg(SDIO, "rw=%d, func=%d, addr=0x%05x, nbytes=%d\n", |
245 | write, fn, addr, regsz); | 226 | write, fn, addr, regsz); |
246 | 227 | ||
247 | brcmf_sdiod_pm_resume_wait(sdiodev, &sdiodev->request_word_wait); | ||
248 | if (brcmf_sdiod_pm_resume_error(sdiodev)) | ||
249 | return -EIO; | ||
250 | |||
251 | /* only allow byte access on F0 */ | 228 | /* only allow byte access on F0 */ |
252 | if (WARN_ON(regsz > 1 && !fn)) | 229 | if (WARN_ON(regsz > 1 && !fn)) |
253 | return -EINVAL; | 230 | return -EINVAL; |
@@ -462,10 +439,6 @@ static int brcmf_sdiod_buffrw(struct brcmf_sdio_dev *sdiodev, uint fn, | |||
462 | unsigned int req_sz; | 439 | unsigned int req_sz; |
463 | int err; | 440 | int err; |
464 | 441 | ||
465 | brcmf_sdiod_pm_resume_wait(sdiodev, &sdiodev->request_buffer_wait); | ||
466 | if (brcmf_sdiod_pm_resume_error(sdiodev)) | ||
467 | return -EIO; | ||
468 | |||
469 | /* Single skb use the standard mmc interface */ | 442 | /* Single skb use the standard mmc interface */ |
470 | req_sz = pkt->len + 3; | 443 | req_sz = pkt->len + 3; |
471 | req_sz &= (uint)~3; | 444 | req_sz &= (uint)~3; |
@@ -516,10 +489,6 @@ static int brcmf_sdiod_sglist_rw(struct brcmf_sdio_dev *sdiodev, uint fn, | |||
516 | if (!pktlist->qlen) | 489 | if (!pktlist->qlen) |
517 | return -EINVAL; | 490 | return -EINVAL; |
518 | 491 | ||
519 | brcmf_sdiod_pm_resume_wait(sdiodev, &sdiodev->request_buffer_wait); | ||
520 | if (brcmf_sdiod_pm_resume_error(sdiodev)) | ||
521 | return -EIO; | ||
522 | |||
523 | target_list = pktlist; | 492 | target_list = pktlist; |
524 | /* for host with broken sg support, prepare a page aligned list */ | 493 | /* for host with broken sg support, prepare a page aligned list */ |
525 | __skb_queue_head_init(&local_list); | 494 | __skb_queue_head_init(&local_list); |
@@ -1077,8 +1046,6 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func, | |||
1077 | #endif | 1046 | #endif |
1078 | 1047 | ||
1079 | atomic_set(&sdiodev->suspend, false); | 1048 | atomic_set(&sdiodev->suspend, false); |
1080 | init_waitqueue_head(&sdiodev->request_word_wait); | ||
1081 | init_waitqueue_head(&sdiodev->request_buffer_wait); | ||
1082 | 1049 | ||
1083 | brcmf_dbg(SDIO, "F2 found, calling brcmf_sdiod_probe...\n"); | 1050 | brcmf_dbg(SDIO, "F2 found, calling brcmf_sdiod_probe...\n"); |
1084 | err = brcmf_sdiod_probe(sdiodev); | 1051 | err = brcmf_sdiod_probe(sdiodev); |