mmc: wmt-sdmmc: Simplify wmt_set_sd_power implementation
Subsystems (2)
PATCH 1/1 mmc: wmt-sdmmc: Simplify wmt_set_sd_power implementation
Simplify the code to set/clear BM_SD_OFF bit:
| power_inverted: 0 | power_inverted: 1
-------------------------------------------------
enable: 0 | SET BM_SD_OFF | CLEAR BM_SD_OFF
-------------------------------------------------
enable: 1 | CLEAR BM_SD_OFF | SET BM_SD_OFF
--- drivers/mmc/host/wmt-sdmmc.c | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-)
drivers/mmc/host/wmt-sdmmc.c +8 -22
@@ -212,28 +212,14 @@ struct wmt_mci_priv {static void wmt_set_sd_power (struct wmt_mci_priv *priv,int enable) { -u32 reg_tmp; -if (enable) { -if (priv->power_inverted) { - reg_tmp =readb (priv->sdmmc_base +SDMMC_BUSMODE ); -writeb (reg_tmp |BM_SD_OFF , - priv->sdmmc_base +SDMMC_BUSMODE ); - }else { - reg_tmp =readb (priv->sdmmc_base +SDMMC_BUSMODE ); -writeb (reg_tmp & (~BM_SD_OFF ), - priv->sdmmc_base +SDMMC_BUSMODE ); - } - }else { -if (priv->power_inverted) { - reg_tmp =readb (priv->sdmmc_base +SDMMC_BUSMODE ); -writeb (reg_tmp & (~BM_SD_OFF ), - priv->sdmmc_base +SDMMC_BUSMODE ); - }else { - reg_tmp =readb (priv->sdmmc_base +SDMMC_BUSMODE ); -writeb (reg_tmp |BM_SD_OFF , - priv->sdmmc_base +SDMMC_BUSMODE ); - } - } +u32 reg_tmp =readb (priv->sdmmc_base +SDMMC_BUSMODE ); + +if (enable ^ priv->power_inverted) + reg_tmp &= ~BM_SD_OFF ; +else + reg_tmp |=BM_SD_OFF ; + +writeb (reg_tmp, priv->sdmmc_base +SDMMC_BUSMODE ); }static void wmt_mci_read_response (struct mmc_host *mmc)
Signature · 1 line
1.8.1.2
Quoted 44 lines · Axel Lin
Simplify the code to set/clear
BM_SD_OFFbit:|
power_inverted: 0 |power_inverted: 1
-------------------------------------------------
enable: 0 | SETBM_SD_OFF| CLEARBM_SD_OFF
-------------------------------------------------
enable: 1 | CLEARBM_SD_OFF| SETBM_SD_OFFSigned-off-by Axel Lin <[email protected]>--- drivers/mmc/host/wmt-sdmmc.c | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-)drivers/mmc/host/wmt-sdmmc.c +1
-22@@ -212,28 +212,14 @@ struct wmt_mci_priv {static void wmt_set_sd_power (struct wmt_mci_priv *priv,int enable) { -u32 reg_tmp; -if (enable) { -if (priv->power_inverted) { - reg_tmp =readb (priv->sdmmc_base +SDMMC_BUSMODE ); -writeb (reg_tmp |BM_SD_OFF , - priv->sdmmc_base +SDMMC_BUSMODE ); - }else { - reg_tmp =readb (priv->sdmmc_base +SDMMC_BUSMODE ); -writeb (reg_tmp & (~BM_SD_OFF ), - priv->sdmmc_base +SDMMC_BUSMODE ); - } - }else { -if (priv->power_inverted) { - reg_tmp =readb (priv->sdmmc_base +SDMMC_BUSMODE ); -writeb (reg_tmp & (~BM_SD_OFF ), - priv->sdmmc_base +SDMMC_BUSMODE ); - }else { - reg_tmp =readb (priv->sdmmc_base +SDMMC_BUSMODE ); -writeb (reg_tmp |BM_SD_OFF , - priv->sdmmc_base +SDMMC_BUSMODE ); - } - } +u32 reg_tmp =readb (priv->sdmmc_base +SDMMC_BUSMODE );
drivers/mmc/host/wmt-sdmmc.c struct wmt_mci_priv { · line 225
Quoted 10 lines
drivers/mmc/host/wmt-sdmmc.c +7
-0+ +if (enable ^ priv->power_inverted) + reg_tmp &= ~BM_SD_OFF ; +else + reg_tmp |=BM_SD_OFF ; + +writeb (reg_tmp, priv->sdmmc_base +SDMMC_BUSMODE ); }static void wmt_mci_read_response (struct mmc_host *mmc)
Thanks Axel - much better code.
Regards
Tony Prisk
Hi Axel,
Quoted 9 lines · Tony Prisk
Quoted 8 lines · Axel Lin
Simplify the code to set/clear
BM_SD_OFFbit:|
power_inverted: 0 |power_inverted: 1
-------------------------------------------------
enable: 0 | SETBM_SD_OFF| CLEARBM_SD_OFF
-------------------------------------------------
enable: 1 | CLEARBM_SD_OFF| SETBM_SD_OFF
Quoted 5 lines
Quoted 1 line
Signed-off-by Axel Lin <[email protected]>Acked-by Tony Prisk <[email protected]>Thanks Axel - much better code.
Thanks, pushed to mmc-next for 3.13.
- Chris.
Signature · 1 line
Chris Ball <[email protected]> <http://printf.net/>