[PATCH 3/9] mmc: dw_mmc: properly address command completion in dwmci_control_clken()

Kaustabh Chakraborty kauschluss at disroot.org
Thu Oct 23 18:36:16 CEST 2025


On 2025-10-22 07:56, Peng Fan wrote:
> Hi Kaustabh,
> On Fri, Oct 17, 2025 at 08:54:08PM +0530, Kaustabh Chakraborty wrote:
>>The current implementation polls for the DWMCI_CMD register, for the
>>DWMCI_CMD_START bit to turn off, which indicates that the command has
>>been completed. The problem with this approach is that it doesn't
>>address the DWMCI_INTMSK_CDONE bit in the interrupt register,
>>DWMCI_RINTSTS. As a result, subsequent commands result in timeout errors.
> 
> This patch looks good to me, but I need a few more details to understand:
> 
> Do you mean that DWMCI_INTMSK_CDONE must be cleared before sending
> out next cmd?
> 
> Per my guess, DWMCI_CMD_START will be cleared when CMD done from
> controller perspective, but the card may not return back response.
> DWMCI_INTMSK_CDONE means response done. But if there is some commands
> does not have response, will DWMCI_INTMSK_CDONE still be set?
> 
> Please help clarify.

This was observed experimentally actually. In Linux this seems to trigger
an interrupt, and the respective subroutine does clear the interrupt.

> 
> Thanks,
> Peng
> 


More information about the U-Boot mailing list