mmc: auto bkops fixes
Change "man_bkops_en" to "bkops_en" to hold the status of both manual and auto bkops. Change-Id: I60029bae67cebb2c91147ad741b96f4caed9c1d9 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
This commit is contained in:
parent
79d2f1626b
commit
e8032e07d1
3 changed files with 9 additions and 13 deletions
|
@ -1204,11 +1204,11 @@ int mmc_set_auto_bkops(struct mmc_card *card, bool enable)
|
||||||
if (enable) {
|
if (enable) {
|
||||||
if (mmc_card_doing_auto_bkops(card))
|
if (mmc_card_doing_auto_bkops(card))
|
||||||
goto out;
|
goto out;
|
||||||
bkops_en = card->ext_csd.man_bkops_en | EXT_CSD_BKOPS_AUTO_EN;
|
bkops_en = card->ext_csd.bkops_en | EXT_CSD_BKOPS_AUTO_EN;
|
||||||
} else {
|
} else {
|
||||||
if (!mmc_card_doing_auto_bkops(card))
|
if (!mmc_card_doing_auto_bkops(card))
|
||||||
goto out;
|
goto out;
|
||||||
bkops_en = card->ext_csd.man_bkops_en & ~EXT_CSD_BKOPS_AUTO_EN;
|
bkops_en = card->ext_csd.bkops_en & ~EXT_CSD_BKOPS_AUTO_EN;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_BKOPS_EN,
|
ret = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_BKOPS_EN,
|
||||||
|
@ -1224,7 +1224,7 @@ int mmc_set_auto_bkops(struct mmc_card *card, bool enable)
|
||||||
mmc_card_clr_auto_bkops(card);
|
mmc_card_clr_auto_bkops(card);
|
||||||
mmc_update_bkops_auto_off(&card->bkops.stats);
|
mmc_update_bkops_auto_off(&card->bkops.stats);
|
||||||
}
|
}
|
||||||
card->ext_csd.man_bkops_en = bkops_en;
|
card->ext_csd.bkops_en = bkops_en;
|
||||||
pr_debug("%s: %s: bkops state %x\n",
|
pr_debug("%s: %s: bkops state %x\n",
|
||||||
mmc_hostname(card->host), __func__, bkops_en);
|
mmc_hostname(card->host), __func__, bkops_en);
|
||||||
}
|
}
|
||||||
|
|
|
@ -530,17 +530,13 @@ static int mmc_decode_ext_csd(struct mmc_card *card, u8 *ext_csd)
|
||||||
if ((ext_csd[EXT_CSD_BKOPS_SUPPORT] & 0x1) &&
|
if ((ext_csd[EXT_CSD_BKOPS_SUPPORT] & 0x1) &&
|
||||||
card->ext_csd.hpi) {
|
card->ext_csd.hpi) {
|
||||||
card->ext_csd.bkops = 1;
|
card->ext_csd.bkops = 1;
|
||||||
card->ext_csd.man_bkops_en =
|
card->ext_csd.bkops_en = ext_csd[EXT_CSD_BKOPS_EN];
|
||||||
(ext_csd[EXT_CSD_BKOPS_EN] &
|
|
||||||
EXT_CSD_MANUAL_BKOPS_MASK);
|
|
||||||
card->ext_csd.raw_bkops_status =
|
card->ext_csd.raw_bkops_status =
|
||||||
ext_csd[EXT_CSD_BKOPS_STATUS];
|
ext_csd[EXT_CSD_BKOPS_STATUS];
|
||||||
if (!card->ext_csd.man_bkops_en)
|
if (!card->ext_csd.bkops_en)
|
||||||
pr_info("%s: BKOPS_EN equals 0x%x\n",
|
pr_info("%s: BKOPS_EN equals 0x%x\n",
|
||||||
mmc_hostname(card->host),
|
mmc_hostname(card->host),
|
||||||
card->ext_csd.man_bkops_en);
|
card->ext_csd.bkops_en);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check whether the eMMC card supports HPI */
|
/* check whether the eMMC card supports HPI */
|
||||||
|
|
|
@ -88,7 +88,7 @@ struct mmc_ext_csd {
|
||||||
bool hpi; /* HPI support bit */
|
bool hpi; /* HPI support bit */
|
||||||
unsigned int hpi_cmd; /* cmd used as HPI */
|
unsigned int hpi_cmd; /* cmd used as HPI */
|
||||||
bool bkops; /* background support bit */
|
bool bkops; /* background support bit */
|
||||||
u8 man_bkops_en; /* manual bkops enable */
|
u8 bkops_en; /* bkops enable */
|
||||||
unsigned int data_sector_size; /* 512 bytes or 4KB */
|
unsigned int data_sector_size; /* 512 bytes or 4KB */
|
||||||
unsigned int data_tag_unit_size; /* DATA TAG UNIT size */
|
unsigned int data_tag_unit_size; /* DATA TAG UNIT size */
|
||||||
unsigned int boot_ro_lock; /* ro lock support */
|
unsigned int boot_ro_lock; /* ro lock support */
|
||||||
|
@ -678,12 +678,12 @@ static inline bool mmc_card_support_auto_bkops(const struct mmc_card *c)
|
||||||
|
|
||||||
static inline bool mmc_card_configured_manual_bkops(const struct mmc_card *c)
|
static inline bool mmc_card_configured_manual_bkops(const struct mmc_card *c)
|
||||||
{
|
{
|
||||||
return c->ext_csd.man_bkops_en & EXT_CSD_BKOPS_MANUAL_EN;
|
return c->ext_csd.bkops_en & EXT_CSD_BKOPS_MANUAL_EN;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool mmc_card_configured_auto_bkops(const struct mmc_card *c)
|
static inline bool mmc_card_configured_auto_bkops(const struct mmc_card *c)
|
||||||
{
|
{
|
||||||
return c->ext_csd.man_bkops_en & EXT_CSD_BKOPS_AUTO_EN;
|
return c->ext_csd.bkops_en & EXT_CSD_BKOPS_AUTO_EN;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool mmc_enable_qca6574_settings(const struct mmc_card *c)
|
static inline bool mmc_enable_qca6574_settings(const struct mmc_card *c)
|
||||||
|
|
Loading…
Add table
Reference in a new issue