* [PATCH] mmc: wmt-sdmmc: Simplify wmt_set_sd_power implementation
@ 2013-10-03 9:04 Axel Lin
2013-10-05 4:24 ` Tony Prisk
0 siblings, 1 reply; 3+ messages in thread
From: Axel Lin @ 2013-10-03 9:04 UTC (permalink / raw)
To: Chris Ball; +Cc: Tony Prisk, linux-mmc
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
Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
drivers/mmc/host/wmt-sdmmc.c | 30 ++++++++----------------------
1 file changed, 8 insertions(+), 22 deletions(-)
diff --git a/drivers/mmc/host/wmt-sdmmc.c b/drivers/mmc/host/wmt-sdmmc.c
index 34231d5..57858ef 100644
--- a/drivers/mmc/host/wmt-sdmmc.c
+++ b/drivers/mmc/host/wmt-sdmmc.c
@@ -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)
--
1.8.1.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] mmc: wmt-sdmmc: Simplify wmt_set_sd_power implementation
2013-10-03 9:04 [PATCH] mmc: wmt-sdmmc: Simplify wmt_set_sd_power implementation Axel Lin
@ 2013-10-05 4:24 ` Tony Prisk
2013-10-21 1:21 ` Chris Ball
0 siblings, 1 reply; 3+ messages in thread
From: Tony Prisk @ 2013-10-05 4:24 UTC (permalink / raw)
To: Axel Lin, Chris Ball; +Cc: linux-mmc
On 03/10/13 22:04, Axel Lin wrote:
> 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
>
> Signed-off-by: Axel Lin <axel.lin@ingics.com>
> ---
> drivers/mmc/host/wmt-sdmmc.c | 30 ++++++++----------------------
> 1 file changed, 8 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/mmc/host/wmt-sdmmc.c b/drivers/mmc/host/wmt-sdmmc.c
> index 34231d5..57858ef 100644
> --- a/drivers/mmc/host/wmt-sdmmc.c
> +++ b/drivers/mmc/host/wmt-sdmmc.c
> @@ -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)
Acked-by: Tony Prisk <linux@prisktech.co.nz>
Thanks Axel - much better code.
Regards
Tony Prisk
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] mmc: wmt-sdmmc: Simplify wmt_set_sd_power implementation
2013-10-05 4:24 ` Tony Prisk
@ 2013-10-21 1:21 ` Chris Ball
0 siblings, 0 replies; 3+ messages in thread
From: Chris Ball @ 2013-10-21 1:21 UTC (permalink / raw)
To: Tony Prisk; +Cc: Axel Lin, linux-mmc
Hi Axel,
On Sat, Oct 05 2013, Tony Prisk wrote:
> On 03/10/13 22:04, Axel Lin wrote:
>> 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
>>
>> Signed-off-by: Axel Lin <axel.lin@ingics.com>
>
> Acked-by: Tony Prisk <linux@prisktech.co.nz>
>
> Thanks Axel - much better code.
Thanks, pushed to mmc-next for 3.13.
- Chris.
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-10-21 1:21 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-03 9:04 [PATCH] mmc: wmt-sdmmc: Simplify wmt_set_sd_power implementation Axel Lin
2013-10-05 4:24 ` Tony Prisk
2013-10-21 1:21 ` Chris Ball
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.