mmc: core: Fix select power class after resume
Use the saved values in card->ext_csd when selecting power class. By doing this the power class will be selected even if mmc_init_card is called with oldcard != NULL, which is the case after a suspend/resume. Today ext_csd is NULL if mmc_init_card is called with oldcard != NULL and power class will not be selected. According to the eMMC specification the POWER_CLASS value is reset after power failure, H/W reset assertion and any CMD0 reset. Signed-off-by: Fredrik Soderstedt <fredrik.soderstedt@stericsson.com> Reviewed-by: Johan Rudholm <jrudholm@gmail.com> Acked By: Girish K S <girish.shivananjappa@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org>
This commit is contained in:

committed by
Chris Ball

parent
07a6821608
commit
6044371219
@@ -94,7 +94,11 @@ struct mmc_ext_csd {
|
||||
u8 raw_ext_csd_structure; /* 194 */
|
||||
u8 raw_card_type; /* 196 */
|
||||
u8 out_of_int_time; /* 198 */
|
||||
u8 raw_s_a_timeout; /* 217 */
|
||||
u8 raw_pwr_cl_52_195; /* 200 */
|
||||
u8 raw_pwr_cl_26_195; /* 201 */
|
||||
u8 raw_pwr_cl_52_360; /* 202 */
|
||||
u8 raw_pwr_cl_26_360; /* 203 */
|
||||
u8 raw_s_a_timeout; /* 217 */
|
||||
u8 raw_hc_erase_gap_size; /* 221 */
|
||||
u8 raw_erase_timeout_mult; /* 223 */
|
||||
u8 raw_hc_erase_grp_size; /* 224 */
|
||||
@@ -102,6 +106,10 @@ struct mmc_ext_csd {
|
||||
u8 raw_sec_erase_mult; /* 230 */
|
||||
u8 raw_sec_feature_support;/* 231 */
|
||||
u8 raw_trim_mult; /* 232 */
|
||||
u8 raw_pwr_cl_200_195; /* 236 */
|
||||
u8 raw_pwr_cl_200_360; /* 237 */
|
||||
u8 raw_pwr_cl_ddr_52_195; /* 238 */
|
||||
u8 raw_pwr_cl_ddr_52_360; /* 239 */
|
||||
u8 raw_bkops_status; /* 246 */
|
||||
u8 raw_sectors[4]; /* 212 - 4 bytes */
|
||||
|
||||
|
Reference in New Issue
Block a user