Messages in this thread | | | Subject | MMC sub-system: SDIO block-mode with increment address issue | From | Dean Jenkins <> | Date | Mon, 19 Nov 2007 11:44:54 +0000 |
| |
This E-mail is for the attention of Pierre Ossman (MMC sub-system maintainer)
Hi Pierre,
I've being trying to get SDIO block-mode with incrementing address to work on an OMAP2430 based reference board with an SDIO card.
Looking at the latest code ( as of 19/11/2007 ) on the mmc-git tree (I'm not a git expert so I'm not sure how to reference the codebase). I have a comment to make concerning the following code snippet...
In drivers/mmc/core/sdio_io.c
Function: sdio_io_rw_ext_helper()
<snip>
219 ret = mmc_io_rw_extended(func->card, write, 220 func->num, addr, incr_addr, buf, 221 blocks, func->cur_blksize); 222 if (ret) 223 return ret; 224 225 remainder -= size; 226 buf += size; 227 if (incr_addr) 228 addr += size; 229 }
</snip>
I think the lines
227 if (incr_addr) 228 addr += size;
are incorrect and should be removed. I think the SDIO increment address parameter relates to the internal operation of the SDIO card and NOT to the external register address of the FIFO. In other words, I think with incrementing address enabled in block mode, the register address of the FIFO in the SDIO function register space will be erroneously changed on the next block write and will fail (it seems to fail on my card). It seems strange to change the register address ?
This also relates to byte mode.
What do you think ?
Also, do you have a bug reporting procedure for mmc-git tree ?
Regards, Dean.
-- Dean Jenkins Embedded Software Engineer MontaVista Software (UK) Professional Services Division
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |