diff options
author | Joe Perches <joe@perches.com> | 2015-03-25 22:54:26 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-03-26 15:17:05 +0300 |
commit | 8ee775f92c8af2eb1626d39f06feac04fe0cb6e0 (patch) | |
tree | 99c4d76caa68351c18e18e39ed3e22975004ef2a /drivers/staging/rts5208/rtsx_card.c | |
parent | 031366ea65495f787eb792a135f51c093d75a197 (diff) | |
download | linux-8ee775f92c8af2eb1626d39f06feac04fe0cb6e0.tar.xz |
staging: rts5208: Remove RTSX_READ_REG and RTSX_WRITE_REG macros
Macros with hidden flow control are bad form as the code path
taken can be unexpected for the reader.
Expand these in-place and remove the macros.
Done with coccinelle script:
@@
expression chip;
expression arg1;
expression arg2;
expression arg3;
@@
- RTSX_WRITE_REG(chip, arg1, arg2, arg3);
+ retval = rtsx_write_register(chip, arg1, arg2, arg3);
+ if (retval) {
+ rtsx_trace(chip);
+ return retval;
+ }
@@
expression chip;
expression arg1;
expression arg2;
@@
- RTSX_READ_REG(chip, arg1, arg2);
+ retval = rtsx_read_register(chip, arg1, arg2);
+ if (retval) {
+ rtsx_trace(chip);
+ return retval;
+ }
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rts5208/rtsx_card.c')
-rw-r--r-- | drivers/staging/rts5208/rtsx_card.c | 96 |
1 files changed, 80 insertions, 16 deletions
diff --git a/drivers/staging/rts5208/rtsx_card.c b/drivers/staging/rts5208/rtsx_card.c index d7ca44f61447..437436f5dbdd 100644 --- a/drivers/staging/rts5208/rtsx_card.c +++ b/drivers/staging/rts5208/rtsx_card.c @@ -698,7 +698,11 @@ int switch_ssc_clock(struct rtsx_chip *chip, int clk) } udelay(10); - RTSX_WRITE_REG(chip, CLK_CTL, CLK_LOW_FREQ, 0); + retval = rtsx_write_register(chip, CLK_CTL, CLK_LOW_FREQ, 0); + if (retval) { + rtsx_trace(chip); + return retval; + } chip->cur_clk = clk; @@ -707,6 +711,7 @@ int switch_ssc_clock(struct rtsx_chip *chip, int clk) int switch_normal_clock(struct rtsx_chip *chip, int clk) { + int retval; u8 sel, div, mcu_cnt; int sd_vpclk_phase_reset = 0; @@ -791,23 +796,58 @@ int switch_normal_clock(struct rtsx_chip *chip, int clk) return STATUS_FAIL; } - RTSX_WRITE_REG(chip, CLK_CTL, 0xFF, CLK_LOW_FREQ); + retval = rtsx_write_register(chip, CLK_CTL, 0xFF, CLK_LOW_FREQ); + if (retval) { + rtsx_trace(chip); + return retval; + } if (sd_vpclk_phase_reset) { - RTSX_WRITE_REG(chip, SD_VPCLK0_CTL, PHASE_NOT_RESET, 0); - RTSX_WRITE_REG(chip, SD_VPCLK1_CTL, PHASE_NOT_RESET, 0); + retval = rtsx_write_register(chip, SD_VPCLK0_CTL, + PHASE_NOT_RESET, 0); + if (retval) { + rtsx_trace(chip); + return retval; + } + retval = rtsx_write_register(chip, SD_VPCLK1_CTL, + PHASE_NOT_RESET, 0); + if (retval) { + rtsx_trace(chip); + return retval; + } + } + retval = rtsx_write_register(chip, CLK_DIV, 0xFF, + (div << 4) | mcu_cnt); + if (retval) { + rtsx_trace(chip); + return retval; + } + retval = rtsx_write_register(chip, CLK_SEL, 0xFF, sel); + if (retval) { + rtsx_trace(chip); + return retval; } - RTSX_WRITE_REG(chip, CLK_DIV, 0xFF, (div << 4) | mcu_cnt); - RTSX_WRITE_REG(chip, CLK_SEL, 0xFF, sel); if (sd_vpclk_phase_reset) { udelay(200); - RTSX_WRITE_REG(chip, SD_VPCLK0_CTL, PHASE_NOT_RESET, - PHASE_NOT_RESET); - RTSX_WRITE_REG(chip, SD_VPCLK1_CTL, PHASE_NOT_RESET, - PHASE_NOT_RESET); + retval = rtsx_write_register(chip, SD_VPCLK0_CTL, + PHASE_NOT_RESET, PHASE_NOT_RESET); + if (retval) { + rtsx_trace(chip); + return retval; + } + retval = rtsx_write_register(chip, SD_VPCLK1_CTL, + PHASE_NOT_RESET, PHASE_NOT_RESET); + if (retval) { + rtsx_trace(chip); + return retval; + } udelay(200); } - RTSX_WRITE_REG(chip, CLK_CTL, 0xFF, 0); + retval = rtsx_write_register(chip, CLK_CTL, 0xFF, 0); + if (retval) { + rtsx_trace(chip); + return retval; + } chip->cur_clk = clk; @@ -842,6 +882,7 @@ void trans_dma_enable(enum dma_data_direction dir, struct rtsx_chip *chip, int enable_card_clock(struct rtsx_chip *chip, u8 card) { + int retval; u8 clk_en = 0; if (card & XD_CARD) @@ -851,13 +892,18 @@ int enable_card_clock(struct rtsx_chip *chip, u8 card) if (card & MS_CARD) clk_en |= MS_CLK_EN; - RTSX_WRITE_REG(chip, CARD_CLK_EN, clk_en, clk_en); + retval = rtsx_write_register(chip, CARD_CLK_EN, clk_en, clk_en); + if (retval) { + rtsx_trace(chip); + return retval; + } return STATUS_SUCCESS; } int disable_card_clock(struct rtsx_chip *chip, u8 card) { + int retval; u8 clk_en = 0; if (card & XD_CARD) @@ -867,7 +913,11 @@ int disable_card_clock(struct rtsx_chip *chip, u8 card) if (card & MS_CARD) clk_en |= MS_CLK_EN; - RTSX_WRITE_REG(chip, CARD_CLK_EN, clk_en, 0); + retval = rtsx_write_register(chip, CARD_CLK_EN, clk_en, 0); + if (retval) { + rtsx_trace(chip); + return retval; + } return STATUS_SUCCESS; } @@ -912,6 +962,7 @@ int card_power_on(struct rtsx_chip *chip, u8 card) int card_power_off(struct rtsx_chip *chip, u8 card) { + int retval; u8 mask, val; if (CHECK_LUN_MODE(chip, SD_MS_2LUN) && (card == MS_CARD)) { @@ -922,7 +973,11 @@ int card_power_off(struct rtsx_chip *chip, u8 card) val = SD_POWER_OFF; } - RTSX_WRITE_REG(chip, CARD_PWR_CTL, mask, val); + retval = rtsx_write_register(chip, CARD_PWR_CTL, mask, val); + if (retval) { + rtsx_trace(chip); + return retval; + } return STATUS_SUCCESS; } @@ -972,6 +1027,7 @@ int card_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip, int card_share_mode(struct rtsx_chip *chip, int card) { + int retval; u8 mask, value; if (CHECK_PID(chip, 0x5208)) { @@ -1005,7 +1061,11 @@ int card_share_mode(struct rtsx_chip *chip, int card) return STATUS_FAIL; } - RTSX_WRITE_REG(chip, CARD_SHARE_MODE, mask, value); + retval = rtsx_write_register(chip, CARD_SHARE_MODE, mask, value); + if (retval) { + rtsx_trace(chip); + return retval; + } return STATUS_SUCCESS; } @@ -1031,7 +1091,11 @@ int select_card(struct rtsx_chip *chip, int card) return STATUS_FAIL; } - RTSX_WRITE_REG(chip, CARD_SELECT, 0x07, mod); + retval = rtsx_write_register(chip, CARD_SELECT, 0x07, mod); + if (retval) { + rtsx_trace(chip); + return retval; + } chip->cur_card = card; retval = card_share_mode(chip, card); |