summaryrefslogtreecommitdiff
path: root/sys/src/9
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-09-20 14:53:44 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2015-09-20 14:53:44 +0200
commitfa769a8f9d2200387c9e76f059dab2e213a8a792 (patch)
treeb5ab0402abe16671efeed5943907aa861f61b7af /sys/src/9
parentc7c58ef8bb07a917dc9e1891b9226a132493c84a (diff)
sdmmc: handle fakescsi emulation
Diffstat (limited to 'sys/src/9')
-rw-r--r--sys/src/9/port/sdmmc.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/src/9/port/sdmmc.c b/sys/src/9/port/sdmmc.c
index 2fae9f5e3..a153c7ffd 100644
--- a/sys/src/9/port/sdmmc.c
+++ b/sys/src/9/port/sdmmc.c
@@ -297,9 +297,17 @@ mmcbio(SDunit *unit, int lun, int write, void *data, long nb, uvlong bno)
}
static int
-mmcrio(SDreq*)
+mmcrio(SDreq *r)
{
- return -1;
+ int i, rw, count;
+ uvlong lba;
+
+ if((i = sdfakescsi(r)) != SDnostatus)
+ return r->status = i;
+ if((i = sdfakescsirw(r, &lba, &count, &rw)) != SDnostatus)
+ return i;
+ r->rlen = mmcbio(r->unit, r->lun, rw == SDwrite, r->data, count, lba);
+ return r->status = SDok;
}
SDifc sdmmcifc = {