if the D-cache is enabled, make sure the buffer used by DMA is aligned to 32 bytes

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1945 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
dzzxzz@gmail.com
2012-02-13 11:12:57 +00:00
parent 3fca6b062a
commit 70463829c5
3 changed files with 57 additions and 32 deletions

View File

@@ -175,7 +175,7 @@ rt_int32_t mmcsd_get_cid(struct rt_mmcsd_host *host, rt_uint32_t *cid)
return 0;
}
buf = rt_malloc(16);
buf = rt_malloc_align(16, 32);
if (!buf)
{
rt_kprintf("malloc mem failed\n");
@@ -214,13 +214,13 @@ rt_int32_t mmcsd_get_cid(struct rt_mmcsd_host *host, rt_uint32_t *cid)
if (cmd.err || data.err)
{
rt_free(buf);
rt_free_align(buf);
return -RT_ERROR;
}
for (i = 0;i < 4;i++)
cid[i] = buf[i];
rt_free(buf);
rt_free_align(buf);
return 0;
}
@@ -248,7 +248,7 @@ rt_int32_t mmcsd_get_csd(struct rt_mmcsd_card *card, rt_uint32_t *csd)
return 0;
}
buf = rt_malloc(16);
buf = rt_malloc_align(16, 32);
if (!buf)
{
rt_kprintf("malloc mem failed\n");
@@ -288,13 +288,13 @@ rt_int32_t mmcsd_get_csd(struct rt_mmcsd_card *card, rt_uint32_t *csd)
if (cmd.err || data.err)
{
rt_free(buf);
rt_free_align(buf);
return -RT_ERROR;
}
for (i = 0;i < 4;i++)
csd[i] = buf[i];
rt_free(buf);
rt_free_align(buf);
return 0;
}