On Fri, Aug 17, 2018 at 07:54:09PM +0300, Sergei Shtylyov wrote: > I have encountered an interrupt storm during the eMMC chip probing (and > the chip finally didn't get detected). It turned out that U-Boot left > the SDHI DMA interrupts enabled while the Linux driver didn't use those. > Masking those interrupts in renesas_sdhi_internal_dmac_request_dma() gets > rid of both issues... > > Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx> Thanks for fixing this issue. > > --- > The patch is against Ulf Hansson's 'mmc.git' repo's 'fixes' branch. > > drivers/mmc/host/renesas_sdhi_internal_dmac.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > Index: mmc/drivers/mmc/host/renesas_sdhi_internal_dmac.c > =================================================================== > --- mmc.orig/drivers/mmc/host/renesas_sdhi_internal_dmac.c > +++ mmc/drivers/mmc/host/renesas_sdhi_internal_dmac.c > @@ -51,10 +51,12 @@ > #define INFO1_CLEAR 0 > #define INFO1_DTRANEND1 BIT(17) > #define INFO1_DTRANEND0 BIT(16) > +#define INFO1_RESERVED_BITS GENMASK_ULL(32, 0) 31? Also, RESERVED_BITS is not quite proper. Not all of those bits are reserved. Maybe CLEAR_MASK? > /* DM_CM_INFO2 and DM_CM_INFO2_MASK */ > #define INFO2_DTRANERR1 BIT(17) > #define INFO2_DTRANERR0 BIT(16) > +#define INFO2_RESERVED_BITS GENMASK_ULL(32, 0) Same as above. Maybe we even need one define only? > + /* > + * We don't use the DMA interrupts, but they might have been enabled > + * by a bootloader, so mask them to avoid an interrupt storm... > + */ Two spaces after ',' looks odd to me. Also, no need for "..." I'd even think with a name like CLEAR_MASK, the comment could even go. > + renesas_sdhi_internal_dmac_dm_write(host, DM_CM_INFO1_MASK, > + INFO1_RESERVED_BITS); > + renesas_sdhi_internal_dmac_dm_write(host, DM_CM_INFO2_MASK, > + INFO2_RESERVED_BITS);
Attachment:
signature.asc
Description: PGP signature