-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 02/21/2013 12:21 PM, Lukasz Majewski wrote: > Dear All, > > I'd like to kindly ask for any feedback on this patch. > > It is now more than month on the u-boot mailing list...
OK, sorry, the generic name of the driver threw me for a minute. I'm fine with this change going up u-boot-samsung -> u-boot-arm -> master since it's a samsung-only driver right now. Does this work for you? > > >> Dear All, >> >> Any feedback about this patch? >> >> It has been on the list for quite long time..... >> >> >>> Dear All, >>> >>> Any feedback about this patch? >>> >>>> This patch changes sdhci_init()'s behavior to NOT enable all >>>> interrupt sources by default. Moreover interrupt signaling >>>> has been disabled. >>>> >>>> This patch do not enable interrupts which aren't served in >>>> u-boot (they are defined at sdhci.h but NOT used elsewhere): >>>> - SDHCI_INT_CARD_INSERT, SDHCI_INT_CARD_REMOVE, >>>> SDHCI_BUS_POWER, SDHCI_INT_CARD_REMOVE, SDHCI_INT_CARD_INT >>>> >>>> Special care shall be put on SDHCI_INT_CARD_INT, which >>>> indicates interrupt generated by SD card. According to "SD >>>> Host Controller Simplified Spec. ver 3.00" when bit 8 (Card >>>> Interrupt Status Enable) at "Normal Interrupt Status Enable >>>> Register" (offset 0x34) is set, the card interrupt detection >>>> is started. Then eMMC card may cause the SD controller to set >>>> this bit and then this interrupt is passed to booted OS and >>>> might cause kernel crash. >>>> >>>> >>>> To sum up: - Only enable interrupts, which are served at >>>> u-boot - This cleanup as a side effect fixes SDHCI's CARD >>>> INTERRUPT problem at Linux kernel (versions 3.6+, sdhci >>>> controller) - Keep masked bits at "Normal Interrupt Signal >>>> Enable Register" (0x38h) >>>> >>>> Signed-off-by: Lukasz Majewski <[email protected]> >>>> Signed-off-by: Kyungmin Park <[email protected]> Cc: >>>> Lei Wen <[email protected]> Cc: Andy Fleming >>>> <[email protected]> --- drivers/mmc/sdhci.c | 8 >>>> +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) >>>> >>>> diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c index >>>> 0fd1337..76c14fb 100644 --- a/drivers/mmc/sdhci.c +++ >>>> b/drivers/mmc/sdhci.c @@ -412,9 +412,11 @@ int >>>> sdhci_init(struct mmc *mmc) status = sdhci_readl(host, >>>> SDHCI_PRESENT_STATE); } >>>> >>>> - /* Eable all state */ - sdhci_writel(host, >>>> SDHCI_INT_ALL_MASK, SDHCI_INT_ENABLE); - sdhci_writel(host, >>>> SDHCI_INT_ALL_MASK, SDHCI_SIGNAL_ENABLE); + /* Enable only >>>> interrupts served by the SD controller */ + >>>> sdhci_writel(host, SDHCI_INT_DATA_MASK | SDHCI_INT_CMD_MASK + >>>> , SDHCI_INT_ENABLE); + /* Mask all sdhci interrupt sources >>>> */ + sdhci_writel(host, 0x0, SDHCI_SIGNAL_ENABLE); >>>> >>>> return 0; } >>> >>> >>> >> >> >> > - -- Tom -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBAgAGBQJRJl0zAAoJENk4IS6UOR1WU68P/RTyQMDciU5rlgA0NfcSt2/y T55Q+R43eaRABLqEdLu5rQXJgKcLIQZEr4Czfu3LqWDfUylJiXkUc+ngSQ/uJR9p v1IN+rrIOs3ZQcFy9d3oDROtkz16Mc0T+32WI8g/NfL7X9IKYqSEeBUGmc0O54Ro kdmH9fqzCX3wbaY//+vG1uMA3s61Ekx+3Gbf5BcyoVMHrf1fNz4L1kZ7ZB/MBzdp HOQIoButM7/BGteF5o5LPHCNw7LtnAz5basRwaGQmrGVzeA2GCKFOrYEx3oa/ghC mK/PNTW6RCzRFBckbA2No9C1Tj1i7EMy8K/B8sub9FmJWF9XfDf4YhbacXOse5RA +mSwZiWuJP7K/0YaDUh7itQE2Wec2iA2LNlgb0Ujwnm4DsxnP805Cbz/JJuT9mCu 8LYw7crg4DwU9X0g0MEojKXupQ2mHMBHHrYRuUdIaYxHkkkf7j4mSIzPR75FzAjF 8l54TL4bEKHyUd7HmTaEkafyhziC8Kit4SEQqjTJW9S720nVOaM/pMmrji3mxUXH wHUpTTVS0TIAzhdAtxxpPxbRsMnnEgobOFGDbF8wzjGMQWWudZGLXqCm0kv+5B2K 3o6IlxPQ/TlokPe+A63NHTbJTJ0z/ylLX0UyNifzPzsoTiskO4qqSdHdrGTcA3f+ Tqq0rAM0CXj2oMMkkOFb =nGWo -----END PGP SIGNATURE----- _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

