Re: Re: [PATCH] mmc: dw_mmc: Add hardware lock error (HLE) to the CMD error flag

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jaeohoon,
Thanks for quick review.
>------- Original Message -------
>Sender : Jaehoon Chung<jh80.chung@xxxxxxxxxxx> S4/Engineer/System S/W Lab./Samsung Electronics
>Date : Oct 07, 2013 17:36 (GMT+09:00)
>Title : Re: [PATCH] mmc: dw_mmc: Add hardware lock error (HLE) to the CMD error flag

>Hi, Alim.

>On 10/07/2013 05:21 PM, ALIM AKHTAR wrote:
>> 
>> 
>>> ------- Original Message -------
>>> Sender : Jaehoon Chung S4/Engineer/System S/W Lab./Samsung Electronics
>>> Date : Oct 07, 2013 13:34 (GMT+09:00)
>>> Title : Re: [PATCH] mmc: dw_mmc: Add hardware lock error (HLE) to the CMD error flag
>> 
>>> On 10/07/2013 01:22 PM, ALIM AKHTAR wrote:
>>>> Hi Jaehoon,
>>>>
>>>>> ------- Original Message -------
>>>>> Sender : Jaehoon Chung S4/Engineer/System S/W Lab./Samsung Electronics
>>>>> Date : Oct 06, 2013 17:28 (GMT+09:00)
>>>> Title : Re: [PATCH] mmc: dw_mmc: Add hardware lock error (HLE) to the CMD error flag
>>>  
>>>> Hi Alim,
>>>
>>>> On 10/03/2013 06:18 PM, alim akhtar wrote:
>>>>> From: Alim Akhtar 
>>>>>
>>>>> Hardware locked error set when the dw_mmc controller cannot load a
>>>>> command issued by software. When software sets the start_cmd bit in the
>>>>> CMD register, the controller tries to load the command. If the command
>>>>> buffer is already filled with a command, this error is raised. Currently
>>>>> driver does not handle HLE interrupt, which results in a system hang.
>>>> When SDMMC_INT_HLE is set into CMD_ERROR_FLAGS,.then could driver handle the HLE interrupt?
>>> Yes, this will be handled as a part of DW_MCI_CMD_ERROR_FLAGS error handling.
>>> Could some command or data be lost?
>> No, Data and command will not be lost as they are not send out.
>Maybe it needs to discuss how recovery the command/data, when HLE interrupt is occured.
>I want to know, do you have the recovery method when HLE interrupt is occured?
>
>As you mentioned, this patch controlled the HLE error and can't send the any command/data.
>Patch like this had already posted at mailing list.
Can you point to the link?
>But we also need to control after occurred the HLE.
Well, dw_mmc controller document just say "The software then has to reload the command" to recover from HLE.
>In SD-card's case, card can be inserted/removed. but in case of eMMC, can't it.
>It should be maintained the hardware lock status.
HLE is independent of emmc/sd slot and handling should be the same.
Insert/removal is one way to simulate HLE, this is how I found this.
Are you suggesting to check for INT_STATUE for emmc and handle it in case of HLE? 
>>Best Regards,
>>Jaehoon Chung

>>>>
>>>>> Best Regards,
>>>>> Jaehoon Chung
>>>>>
>>>>> HLE can be simulated by quickly inserting and removing sd card in card
>>>>> slot (30 ~ 40 times in say 20 secs)
>>>>>
>>>>> Reviewed-by: Doug Anderson 
>>>>> Signed-off-by: Alim Akhtar 
>>>>> ---
>>>>>   drivers/mmc/host/dw_mmc.c | 2 +-
>>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>>>>> index 0a6a512..24b4a52 100644
>>>>> --- a/drivers/mmc/host/dw_mmc.c
>>>>> +++ b/drivers/mmc/host/dw_mmc.c
>>>>> @@ -44,7 +44,7 @@
>>>>>   SDMMC_INT_HTO | SDMMC_INT_SBE  | \
>>>>>   SDMMC_INT_EBE)
>>>>>   #define DW_MCI_CMD_ERROR_FLAGS (SDMMC_INT_RTO | SDMMC_INT_RCRC | \
>>>>> - SDMMC_INT_RESP_ERR)
>>>>> + SDMMC_INT_RESP_ERR | SDMMC_INT_HLE)
>>>>>   #define DW_MCI_ERROR_FLAGS (DW_MCI_DATA_ERROR_FLAGS | \
>>>>>   DW_MCI_CMD_ERROR_FLAGS  | SDMMC_INT_HLE)
>>>>>   #define DW_MCI_SEND_STATUS 1
>>>>> N‹§²æìr¸›yúèšØb²X¬¶Ç§vØ^–)Þº{.nÇ+‰·¥Š{±šg"žØ^n‡r¡ö¦zË?ëh™¨è­Ú&¢ø®G«?éh®(­éšŽŠÝ¢j"?ú¶m§ÿï?êäz¹Þ–Šàþf£¢·hšˆ§~ˆmml==ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ¥Šwÿº{.nÇ+‰·¥Š{±þiœþ)í…æèw*jg¬±¨¶‰šŽŠÝ¢jÿ¾«þG«?éÿ¢¸¢·¦j:+v‰¨ŠwèjØm¶Ÿÿþø¯ù®w¥þŠàþf£¢·hš?â?úÿ†Ù¥





[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux