Hi All,
what is the relation between mmc_request , mmc_data and mmc_command .
(I am new SD driver development, and I am working on 2.6.22.1)
when mmc core layer calls Host controllers request function (member
of struct mmc_host_ops), it passes mmc_request structure to
driver's request function.
1)mmc_request has three members
mmc_command * cmd
mmc_data * data
mmc_command * stop
2) mmc_data has
mmc_command * stop
mmc_request * mrq
3) mmc_command has
mmc_data *data
mmc_request *mrq
Does mmc_requeest->stop is equal to mmc_request->data->stop ?
Does mmc_request is equal to mmc_request->data->mrq ?
Does mmc_request->data is equal to mmc_request->cmd->data ?
Does mmc_request is equal to mmc_request->cmd->mrq ?
I think Stop command which is part of mmc_request is used for sending
stop command after Multi Block write. is this correct. If stop command
fails(CRC fail, timeout), does this mean card write failed.
Thanks In Advance for your help
--
Thanks
raki
On Sun, 23 Dec 2007 23:25:26 -0800
"raki john" <[email protected]> wrote:
>
> Does mmc_requeest->stop is equal to mmc_request->data->stop ?
>
> Does mmc_request is equal to mmc_request->data->mrq ?
>
> Does mmc_request->data is equal to mmc_request->cmd->data ?
>
> Does mmc_request is equal to mmc_request->cmd->mrq ?
>
Yes on all accounts. I don't know the reason for this extreme redundancy. It was there long before I got involved.
>
> I think Stop command which is part of mmc_request is used for sending stop
> command after Multi Block write. is this correct. If stop command fails(CRC
> fail, timeout), does this mean card write failed.
>
It is correct that it is used for multi block writes. But also other open ended transfers.
If the stop command fails, then the card will be in an unknown state. The write should have been completed though.
Rgds
Pierre