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

Reply via email to