diff options
-rw-r--r-- | drivers/ar6000/hif/hif2.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/ar6000/hif/hif2.c b/drivers/ar6000/hif/hif2.c index c635307e837..2b1c5942003 100644 --- a/drivers/ar6000/hif/hif2.c +++ b/drivers/ar6000/hif/hif2.c @@ -119,6 +119,9 @@ static DEFINE_MUTEX(shutdown_lock); /* ----- Request processing ------------------------------------------------ */ +#include <mach/regs-gpio.h> + + static A_STATUS process_request(struct hif_request *req) { int ret; @@ -126,10 +129,19 @@ static A_STATUS process_request(struct hif_request *req) dev_dbg(&req->func->dev, "process_request(req %p)\n", req); sdio_claim_host(req->func); - if (req->read) + if (req->read) { + while (!s3c2410_gpio_getpin(S3C2410_GPE7)) { + printk(KERN_INFO "READ WHILE BUSY !\n"); + yield(); + } ret = req->read(req->func, req->buf, req->addr, req->len); - else + } else { + while (!s3c2410_gpio_getpin(S3C2410_GPE7)) { + printk(KERN_INFO "WRITE WHILE BUSY !\n"); + yield(); + } ret = req->write(req->func, req->addr, req->buf, req->len); + } sdio_release_host(req->func); status = ret ? A_ERROR : A_OK; if (req->completion) |