diff options
author | wwang <wei_wang@realsil.com.cn> | 2011-03-08 07:22:14 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-03-10 00:01:29 (GMT) |
commit | 9fe341e834bec1cad92c3f320931d0563674e112 (patch) | |
tree | 48e33c032d31f7ef02fd48beb1ac7e43f83f577c /drivers/staging/rts_pstor | |
parent | 7c31607e165d5edfa13dea5d329e59f322d4cad2 (diff) | |
download | linux-9fe341e834bec1cad92c3f320931d0563674e112.tar.xz |
staging: rts_pstor: MSXC card power class
1, Initialize chip->ms_power_class_en in rtsx_init_options;
2, In reset_ms_pro, set different initial value of change_power_class
according to chip->ms_power_class_en.
Signed-off-by: wwang <wei_wang@realsil.com.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/rts_pstor')
-rw-r--r-- | drivers/staging/rts_pstor/ms.c | 14 | ||||
-rw-r--r-- | drivers/staging/rts_pstor/rtsx.c | 1 |
2 files changed, 10 insertions, 5 deletions
diff --git a/drivers/staging/rts_pstor/ms.c b/drivers/staging/rts_pstor/ms.c index c43f911..810e170 100644 --- a/drivers/staging/rts_pstor/ms.c +++ b/drivers/staging/rts_pstor/ms.c @@ -1099,7 +1099,14 @@ static int reset_ms_pro(struct rtsx_chip *chip) struct ms_info *ms_card = &(chip->ms_card); int retval; #ifdef XC_POWERCLASS - u8 change_power_class = 2; + u8 change_power_class; + + if (chip->ms_power_class_en & 0x02) + change_power_class = 2; + else if (chip->ms_power_class_en & 0x01) + change_power_class = 1; + else + change_power_class = 0; #endif #ifdef XC_POWERCLASS @@ -1128,10 +1135,7 @@ Retry: } if (change_power_class && CHK_MSXC(ms_card)) { - u8 power_class_en = 0x03; - - if (CHECK_PID(chip, 0x5209)) - power_class_en = chip->ms_power_class_en; + u8 power_class_en = chip->ms_power_class_en; RTSX_DEBUGP("power_class_en = 0x%x\n", power_class_en); RTSX_DEBUGP("change_power_class = %d\n", change_power_class); diff --git a/drivers/staging/rts_pstor/rtsx.c b/drivers/staging/rts_pstor/rtsx.c index db3470e..4514419 100644 --- a/drivers/staging/rts_pstor/rtsx.c +++ b/drivers/staging/rts_pstor/rtsx.c @@ -850,6 +850,7 @@ static void rtsx_init_options(struct rtsx_chip *chip) chip->sd_default_rx_phase = 15; chip->pmos_pwr_on_interval = 200; chip->sd_voltage_switch_delay = 1000; + chip->ms_power_class_en = 3; chip->sd_400mA_ocp_thd = 1; chip->sd_800mA_ocp_thd = 5; |