[U-Boot] [PATCH 1/3] mmc: dw_mmc: change the read/write order under fifo mode

Simon Glass sjg at chromium.org
Fri Sep 23 04:39:47 CEST 2016


Hi,

On 7 September 2016 at 21:54, Jaehoon Chung <jh80.chung at samsung.com> wrote:
> On 09/08/2016 12:43 PM, Ziyuan Xu wrote:
>>
>>
>> On 2016年09月07日 14:50, Jaehoon Chung wrote:
>>> On 09/07/2016 03:14 PM, Ziyuan Xu wrote:
>>>> hi Jaehoon,
>>>>
>>>>
>>>> On 2016年08月30日 17:54, Jaehoon Chung wrote:
>>>>> Hi Jacob,
>>>>>
>>>>> On 08/30/2016 02:26 AM, Jacob Chen wrote:
>>>>>> From: "jacob2.chen" <jacob2.chen at rock-chips.com>
>>>>>>
>>>>>> The former implement have a bug.
>>>>>> It will cause wrong data reading sometimes.
>>>>> Could you explain what bug is there?
>>>>>> Signed-off-by: jacob2.chen <jacob2.chen at rock-chips.com>
>>>>> Could you change from jacob2.chen to your name?
>>>>>
>>>>>> ---
>>>>>>
>>>>>>    drivers/mmc/dw_mmc.c | 32 +++++++++++++++++---------------
>>>>>>    1 file changed, 17 insertions(+), 15 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c
>>>>>> index afc674d..f072739 100644
>>>>>> --- a/drivers/mmc/dw_mmc.c
>>>>>> +++ b/drivers/mmc/dw_mmc.c
>>>>>> @@ -120,35 +120,37 @@ static int dwmci_data_transfer(struct dwmci_host *host, struct mmc_data *data)
>>>>>>              if (host->fifo_mode && size) {
>>>>>>                len = 0;
>>>>>> -            if (data->flags == MMC_DATA_READ) {
>>>>>> -                if ((dwmci_readl(host, DWMCI_RINTSTS) &
>>>>>> -                     DWMCI_INTMSK_RXDR)) {
>>>>>> +            if (data->flags == MMC_DATA_READ &&
>>>>>> +                (mask & DWMCI_INTMSK_RXDR)) {
>>>>>> +                while (size) {
>>>>>>                        len = dwmci_readl(host, DWMCI_STATUS);
>>>>>>                        len = (len >> DWMCI_FIFO_SHIFT) &
>>>>>> -                            DWMCI_FIFO_MASK;
>>>>>> +                        DWMCI_FIFO_MASK;

What is the status of this patch please?

[...]

Regards,
Simon


More information about the U-Boot mailing list