There is a linux mailing list dedicated to mmc, see http://vger.kernel.org/vger-lists.html search for linux-mmc. Think your question might have a better chance of getting a good answer/response there.
Hedwin On Fri, Apr 22, 2011 at 7:06 PM, M.Meng <[email protected]> wrote: > Hi, > > I am a fresher to linux kernel and now trying to add some features to > mmc driver. > > One of the features is that terminate a long time writing request(e.x. > lasts 50ms or more), and make the following reading request run. > > I read the JEDEC STANDARD and found that a writing operation could be > terminated with sending a STOP_TRANSMISSION(CMD12). > But I am not quite sure how I can send the command. > > Here is the working flow I am working in: > > 1) In the function mmc_blk_issue_rq() @ drivers/mmc/card/block.c > before mmc_wait_for_req() is called, check if the request to be > issued is WRITE. > If it is a WRITE request, add a timer of 50ms to check whether it > is a long time writing operation. > 2) In the timeout callback function, get the next request in the queue > and check whether it is a READ request. > If it is a READ request, send a STOP_TRANSMISSION command with > mmc_wait_for_cmd() to terminate the request. > > But I got some fault messages when I sent the STOP_TRANSMISSION > command. > > It seems that without completing the WRITE request sent by > mmc_wait_for_req(), the STOP_TRANSMISSION command(sent with > mmc_wait_for_cmd() ) could not be accepted, because in the function of > mmc_wait_for_cmd(), mmc_wait_for_req() is called. > And that is why I got the fault messages. > > So my question is, > How to send a STOP_TRANSMISSION command to terminate the writing > request in my case. > > > Thanks! > > -- > unsubscribe: [email protected] > website: http://groups.google.com/group/android-kernel -- unsubscribe: [email protected] website: http://groups.google.com/group/android-kernel
