mmc: sunxi: Fix misuse of gpio_direction_input()
Subsystems (3)
PATCH 1/1 mmc: sunxi: Fix misuse of gpio_direction_input()
It does not make sense to make gpio_direction_input() return the gpio input status. The return value of gpio_direction_input() is inconsistent if CONFIG_DM_GPIO is defined.
And we don't need to call gpio_direction_input() int sunxi_mmc_getcd(). Just init the gpio once in mmc_resource_init() is enough.
---
Only compile tested, so please test this patch.
Thanks.
drivers/gpio/sunxi_gpio.c | 2 +- drivers/mmc/sunxi_mmc.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-)
drivers/gpio/sunxi_gpio.c +1 -1
@@ -75,7 +75,7 @@ int gpio_direction_input(unsigned gpio) {sunxi_gpio_set_cfgpin (gpio,SUNXI_GPIO_INPUT ); -return sunxi_gpio_input (gpio); +return 0 ; }int gpio_direction_output (unsigned gpio,int value)
drivers/mmc/sunxi_mmc.c +5 -2
@@ -73,8 +73,11 @@ static int mmc_resource_init(int sdc_no) mmchost->mmc_no = sdc_no; cd_pin =sunxi_mmc_getcd_gpio (sdc_no); -if (cd_pin !=-1 ) +if (cd_pin !=-1 ) { ret =gpio_request (cd_pin,"mmc_cd" ); +if (!ret) + ret =gpio_direction_input (cd_pin); + }return ret; }
@@ -373,7 +376,7 @@ static int sunxi_mmc_getcd(struct mmc *mmc)if (cd_pin ==-1 )return 1 ; -return !gpio_direction_input (cd_pin); +return !gpio_get_value (cd_pin); }static const struct mmc_ops sunxi_mmc_ops = {
Signature · 1 line
1.9.1
PATCH 1/1 mmc: sunxi: Fix misuse of gpio_direction_input()
Quoted 6 lines · Axel Lin
It does not make sense to make
gpio_direction_input()return the gpio input status. The return value ofgpio_direction_input()is inconsistent ifCONFIG_DM_GPIOis defined.
And we don't need to callgpio_direction_input()intsunxi_mmc_getcd(). Just init the gpio once inmmc_resource_init()is enough.
Quoted 7 lines
Signed-off-by Axel Lin <[email protected]>---
Only compile tested, so please test this patch.
Thanks.drivers/gpio/sunxi_gpio.c | 2 +- drivers/mmc/sunxi_mmc.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-)
PATCH 1/1 mmc: sunxi: Fix misuse of gpio_direction_input()
Quoted 15 lines · Simon Glass
Quoted 6 lines · Axel Lin
It does not make sense to make
gpio_direction_input()return the gpio input status. The return value ofgpio_direction_input()is inconsistent ifCONFIG_DM_GPIOis defined.
And we don't need to callgpio_direction_input()intsunxi_mmc_getcd(). Just init the gpio once inmmc_resource_init()is enough.Quoted 7 lines
Signed-off-by Axel Lin <[email protected]>---
Only compile tested, so please test this patch.
Thanks.drivers/gpio/sunxi_gpio.c | 2 +- drivers/mmc/sunxi_mmc.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-)
Quoted 1 line
Reviewed-by Simon Glass <[email protected]>
Thanks, I booted it on my cubietruck and I could still see the mmc, so I've queued to u-boot-sunxi#next.
I don't think we need to rush this into v2015.01, but do shout if you think we do.
Ian.
PATCH 1/1 mmc: sunxi: Fix misuse of gpio_direction_input()
2014-12-22 20:59 GMT+08:00 Ian Campbell <[email protected]>:
Quoted 16 lines · Simon Glass
Quoted 15 lines · Axel Lin
Quoted 13 lines
It does not make sense to make
gpio_direction_input()return the gpio input status. The return value ofgpio_direction_input()is inconsistent ifCONFIG_DM_GPIOis defined.
And we don't need to callgpio_direction_input()intsunxi_mmc_getcd(). Just init the gpio once inmmc_resource_init()is enough.Signed-off-by Axel Lin <[email protected]>---
Only compile tested, so please test this patch.
Thanks.drivers/gpio/sunxi_gpio.c | 2 +- drivers/mmc/sunxi_mmc.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-)
Quoted 7 lines
Quoted 1 line
Reviewed-by Simon Glass <[email protected]>Thanks, I booted it on my cubietruck and I could still see the mmc, so I've queued to u-boot-sunxi#next.
I don't think we need to rush this into v2015.01, but do shout if you think we do.
Hi Ian,
It's fine for v2015.01.
Thanks,
Axel