mmc: enable BKOPS for supported eMMC(4.41)
PATCH 1/1 mmc: enable BKOPS for supported eMMC(4.41)
Quoted 1 line
From
d596be94f87b86ccb372a4ae55ee478951524895Mon Sep 17 00:00:00 2001
From: Prasanna NAVARATNA <[email protected]>
Date: Fri, 30 Aug 2013 17:18:32 +0530
Subject: [PATCH] mmc: enable BKOPS for supported eMMC(4.41)
BKOPS feature is optional for eMMC 4.41. If an eMMC supports BKOPS and is of version 4.41 then BKOPS feature is ignored and not enabled.
Enable BKOPS for such eMMC. Also a capability is added to control the enabling of feature (only for eMMC 4.41, not valid for 4.5)
--- drivers/mmc/core/mmc.c | 18 ++++++++++++++++++ include/linux/mmc/host.h | 1 + 2 files changed, 19 insertions(+), 0 deletions(-)
drivers/mmc/core/mmc.c +18 -0
@@ -1269,6 +1269,24 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, }/* +* Enable BKOPS feature (if supported and not enabled) +*/ +if (!card->ext_csd.bkops_en && (host->caps2 &MMC_CAP2_BKOPS_EN ) && + (ext_csd[EXT_CSD_BKOPS_SUPPORT ] &0x1 )) { + err =mmc_switch (card,EXT_CSD_CMD_SET_NORMAL , +EXT_CSD_BKOPS_EN ,1 , + card->ext_csd.generic_cmd6_time); +if (err && err != -EBADMSG ) + goto free_card; +if (err) { +pr_warning ("%s: Enabling BKOPS failed\n" , +mmc_hostname (card->host)); + err =0 ; + }else + card->ext_csd.bkops_en =1 ; + } + +/* * Enable HPI feature (if supported) */ if (card->ext_csd.hpi) {
include/linux/mmc/host.h +1 -0
@@ -281,6 +281,7 @@ struct mmc_host { MMC_CAP2_PACKED_WR)#define MMC_CAP2_NO_PRESCAN_POWERUP (1 << 14)/* Don't power up before scan */ #define MMC_CAP2_SANITIZE (1 << 15)/* Support Sanitize */ +#define MMC_CAP2_BKOPS_EN (1 << 16)/* Enable BKOPS */ mmc_pm_flag_t pm_caps;/* supported pm features */
Signature · 1 line
1.7.6
Hi, Prasanna.
Why do you use MMC_CAP2_BKOPS_EN?
Maybe we had discussed about this point. i know that we can enable the BKOPS with the mmc-util. (Actually, This code had included into my first patch. but it's removed.)
Best Regards,
Jaehoon Chung
Quoted 59 lines · Prasanna NAVARATNA
Quoted 1 line
From
d596be94f87b86ccb372a4ae55ee478951524895Mon Sep 17 00:00:00 2001From: Prasanna NAVARATNA <[email protected]>
Date: Fri, 30 Aug 2013 17:18:32 +0530
Subject: [PATCH] mmc: enable BKOPS for supported eMMC(4.41)BKOPS feature is optional for eMMC 4.41. If an eMMC supports BKOPS and is of version 4.41 then BKOPS feature is ignored and not enabled.
Enable BKOPS for such eMMC. Also a capability is added to control the enabling of feature (only for eMMC 4.41, not valid for 4.5)
Signed-off-by Prasanna NAVARATNA <[email protected]>--- drivers/mmc/core/mmc.c | 18 ++++++++++++++++++ include/linux/mmc/host.h | 1 + 2 files changed, 19 insertions(+), 0 deletions(-)drivers/mmc/core/mmc.c +18
-0@@ -1269,6 +1269,24 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, }/* +* Enable BKOPS feature (if supported and not enabled) +*/ +if (!card->ext_csd.bkops_en && (host->caps2 &MMC_CAP2_BKOPS_EN ) && + (ext_csd[EXT_CSD_BKOPS_SUPPORT ] &0x1 )) { + err =mmc_switch (card,EXT_CSD_CMD_SET_NORMAL , +EXT_CSD_BKOPS_EN ,1 , + card->ext_csd.generic_cmd6_time); +if (err && err != -EBADMSG ) + goto free_card; +if (err) { +pr_warning ("%s: Enabling BKOPS failed\n" , +mmc_hostname (card->host)); + err =0 ; + }else + card->ext_csd.bkops_en =1 ; + } + +/* * Enable HPI feature (if supported) */ if (card->ext_csd.hpi) {include/linux/mmc/host.h +1
-0@@ -281,6 +281,7 @@ struct mmc_host { MMC_CAP2_PACKED_WR)#define MMC_CAP2_NO_PRESCAN_POWERUP (1 << 14)/* Don't power up before scan */ #define MMC_CAP2_SANITIZE (1 << 15)/* Support Sanitize */ +#define MMC_CAP2_BKOPS_EN (1 << 16)/* Enable BKOPS */ mmc_pm_flag_t pm_caps;/* supported pm features */
Hello Jaehoon,
Quoted 1 line
Why do you use
MMC_CAP2_BKOPS_EN?
Because BKOPS on eMMC4.41 is optional. So the capability is provided for the platform to either enable/disable this feature (its not mandatory to always enable BKOPS on 4.41)
Quoted 1 line
Maybe we had discussed about this point. i know that we can enable the
BKOPS with the mmc-util.
Quoted 1 line
(Actually, This code had included into my first patch. but it's removed.)
I'm not aware of this discussion and currently I'm running on eMMC4.41 and bkops is supported but not enabled. So i suggested this patch. Do you mean to say, right now, i can enable it using mmc-utils? Will you please elaborate?
Thanks,
Prasanna
Hi Prasanna,
MMC-Utils open source utility for enabling and disabling features. It use ioctl defined in block/card to send commands to host.git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git
Thanks,
Nitin
Quoted 22 lines · Prasanna NAVARATNA
Hello Jaehoon,
Quoted 1 line
Why do you use
MMC_CAP2_BKOPS_EN?Because BKOPS on eMMC4.41 is optional. So the capability is provided for the platform to either enable/disable this feature (its not mandatory to always enable BKOPS on 4.41)
Quoted 1 line
Maybe we had discussed about this point. i know that we can enable the
BKOPS with the mmc-util.
Quoted 1 line
(Actually, This code had included into my first patch. but it's removed.)
I'm not aware of this discussion and currently I'm running on eMMC4.41 and bkops is supported but not enabled. So i suggested this patch. Do you mean to say, right now, i can enable it using mmc-utils? Will you please elaborate?
Thanks,
Prasanna--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Prasanna,
You can refer to
http://permalink.gmane.org/gmane.linux.kernel.mmc/15430
Best Regards,
Jaehoon Chung
Quoted 38 lines · Nitin Singla
Hi Prasanna,
MMC-Utils open source utility for enabling and disabling features. It use ioctl defined in block/card to send commands to host.
git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.gitThanks,
NitinQuoted 15 lines · Prasanna NAVARATNA
Hello Jaehoon,
Quoted 1 line
Why do you use
MMC_CAP2_BKOPS_EN?Because BKOPS on eMMC4.41 is optional. So the capability is provided for the platform to either enable/disable this feature (its not mandatory to always enable BKOPS on 4.41)
Quoted 1 line
Maybe we had discussed about this point. i know that we can enable the
BKOPS with the mmc-util.
Quoted 1 line
(Actually, This code had included into my first patch. but it's removed.)
I'm not aware of this discussion and currently I'm running on eMMC4.41 and bkops is supported but not enabled. So i suggested this patch. Do you mean to say, right now, i can enable it using mmc-utils? Will you please elaborate?
Quoted 7 lines
Thanks,
Prasanna--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Hello,
This link mentions that BKOPS_EN 163bit in EXT_CSD is one-time programmable flag but from JEDEC Standard No. 84-A441 spec, it is R/W bit. Please re-confirm about the statement.
Quoted 3 lines
Quoted 3 lines
MMC-Utils open source utility for enabling and disabling features. It use ioctl defined in block/card to send commands to host.
git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git
I am not able to find this git in my platform repo.
Is this mmc-utils git mandatory to have?
What if, somebody don't have it and need to enabled BKOPS for eMMMC4.41? Is mmc-utils the only way to enable BKOPS?
Regards,
Prasanna NAVARATNA
Quoted 6 lines · Prasanna NAVARATNA
Hello,
This link mentions that
BKOPS_EN163bit inEXT_CSDis one-time programmable flag but from JEDEC Standard No. 84-A441 spec, it is R/W bit. Please re-confirm about the statement.
R/W bit is one-time programmable and readable. what do you mean?
Quoted 10 lines
Quoted 5 lines
Quoted 5 lines
MMC-Utils open source utility for enabling and disabling features. It use ioctl defined in block/card to send commands to host.
git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.gitI am not able to find this git in my platform repo.
Is this mmc-utils git mandatory to have?
What if, somebody don't have it and need to enabled BKOPS for eMMMC4.41? Is mmc-utils the only way to enable BKOPS?
If you want to enable the bkops, then you can use your patch at your local repo, not mainline.
Best Regards,
Jaehoon Chung
Quoted 9 lines
Regards,
Prasanna NAVARATNA--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Hello Jaehoon,
Quoted 1 line
R/W bit is one-time programmable and readable. what do you mean?
Yes, right. Sorry, I was confused with word one-time programmable as W bit.
Quoted 1 line
If you want to enable the bkops, then you can use your patch at your local
repo, not mainline.
OK. Thanks for the information.
Regards,
Prasanna NAVARATNA