aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/ar6000/hif/hif2.c16
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)