diff options
author | Fabio Falzoi <fabio.falzoi84@gmail.com> | 2015-06-14 16:48:48 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-06-18 07:23:15 +0300 |
commit | 507635763d83f425debd41c58e6c95e31db56323 (patch) | |
tree | b967546656addd09ee5e50aad152d0cb1859a8e1 /drivers/staging/rts5208 | |
parent | cb547643c37cc78b7eabeb236bcc618b31e66d5b (diff) | |
download | linux-507635763d83f425debd41c58e6c95e31db56323.tar.xz |
Staging: rts5208: helper function to manage power off
Use a helper function to check if power off is needed.
Signed-off-by: Fabio Falzoi <fabio.falzoi84@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rts5208')
-rw-r--r-- | drivers/staging/rts5208/rtsx_chip.c | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/drivers/staging/rts5208/rtsx_chip.c b/drivers/staging/rts5208/rtsx_chip.c index e7d328086d8a..5946cc47e86b 100644 --- a/drivers/staging/rts5208/rtsx_chip.c +++ b/drivers/staging/rts5208/rtsx_chip.c @@ -1143,6 +1143,25 @@ static void rtsx_monitor_aspm_config(struct rtsx_chip *chip) } } +static void rtsx_manage_ocp(struct rtsx_chip *chip) +{ +#ifdef SUPPORT_OCP + if (!chip->ocp_int) + return; + + rtsx_read_register(chip, OCPSTAT, &chip->ocp_stat); + + if (chip->card_exist & SD_CARD) + sd_power_off_card3v3(chip); + else if (chip->card_exist & MS_CARD) + ms_power_off_card3v3(chip); + else if (chip->card_exist & XD_CARD) + xd_power_off_card3v3(chip); + + chip->ocp_int = 0; +#endif +} + static void rtsx_manage_sd_lock(struct rtsx_chip *chip) { #ifdef SUPPORT_SD_LOCK @@ -1184,20 +1203,7 @@ void rtsx_polling_func(struct rtsx_chip *chip) if (rtsx_chk_stat(chip, RTSX_STAT_SS)) return; -#ifdef SUPPORT_OCP - if (chip->ocp_int) { - rtsx_read_register(chip, OCPSTAT, &chip->ocp_stat); - - if (chip->card_exist & SD_CARD) - sd_power_off_card3v3(chip); - else if (chip->card_exist & MS_CARD) - ms_power_off_card3v3(chip); - else if (chip->card_exist & XD_CARD) - xd_power_off_card3v3(chip); - - chip->ocp_int = 0; - } -#endif + rtsx_manage_ocp(chip); rtsx_manage_sd_lock(chip); |