未验证 提交 6b5948f7 编写于 作者: B Bernard Xiong 提交者: GitHub

Merge pull request #1786 from weety/dev

[sdio] Fixed issue for requset size calculation.
...@@ -259,11 +259,12 @@ static rt_size_t rt_mmcsd_read(rt_device_t dev, ...@@ -259,11 +259,12 @@ static rt_size_t rt_mmcsd_read(rt_device_t dev,
rt_sem_take(part->lock, RT_WAITING_FOREVER); rt_sem_take(part->lock, RT_WAITING_FOREVER);
while (remain_size) while (remain_size)
{ {
req_size = (size > blk_dev->max_req_size) ? blk_dev->max_req_size : remain_size; req_size = (remain_size > blk_dev->max_req_size) ? blk_dev->max_req_size : remain_size;
err = rt_mmcsd_req_blk(blk_dev->card, part->offset + pos + offset, rd_ptr, req_size, 0); err = rt_mmcsd_req_blk(blk_dev->card, part->offset + pos + offset, rd_ptr, req_size, 0);
if (err) if (err)
break; break;
offset += req_size; offset += req_size;
rd_ptr = (void *)((rt_uint8_t *)rd_ptr + (req_size << 9));
remain_size -= req_size; remain_size -= req_size;
} }
rt_sem_release(part->lock); rt_sem_release(part->lock);
...@@ -299,11 +300,12 @@ static rt_size_t rt_mmcsd_write(rt_device_t dev, ...@@ -299,11 +300,12 @@ static rt_size_t rt_mmcsd_write(rt_device_t dev,
rt_sem_take(part->lock, RT_WAITING_FOREVER); rt_sem_take(part->lock, RT_WAITING_FOREVER);
while (remain_size) while (remain_size)
{ {
req_size = (size > blk_dev->max_req_size) ? blk_dev->max_req_size : remain_size; req_size = (remain_size > blk_dev->max_req_size) ? blk_dev->max_req_size : remain_size;
err = rt_mmcsd_req_blk(blk_dev->card, part->offset + pos + offset, wr_ptr, req_size, 1); err = rt_mmcsd_req_blk(blk_dev->card, part->offset + pos + offset, wr_ptr, req_size, 1);
if (err) if (err)
break; break;
offset += req_size; offset += req_size;
wr_ptr = (void *)((rt_uint8_t *)wr_ptr + (req_size << 9));
remain_size -= req_size; remain_size -= req_size;
} }
rt_sem_release(part->lock); rt_sem_release(part->lock);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册