[U-Boot] [PATCH] mmc:sdhci:fix: Change default interrupts enabled at SDHCI initialization

Tom Rini trini at ti.com
Thu Feb 21 18:45:23 CET 2013


-----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 <l.majewski at samsung.com> 
>>>> Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com> Cc:
>>>> Lei Wen <leiwen at marvell.com> Cc: Andy Fleming
>>>> <afleming at freescale.com> --- 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-----


More information about the U-Boot mailing list