From c7e595ea526f1c438ed42c24382099fb4f2d4242 Mon Sep 17 00:00:00 2001 From: kfx Date: Fri, 29 Mar 2013 12:23:53 +0800 Subject: [PATCH] fix bug: sram_gpio_init return -EINVAL if gpio is RK30_GPIO6_PXy --- arch/arm/plat-rk/sram.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/arm/plat-rk/sram.c b/arch/arm/plat-rk/sram.c index ec1cbadf9388..2da07f1383c4 100755 --- a/arch/arm/plat-rk/sram.c +++ b/arch/arm/plat-rk/sram.c @@ -184,7 +184,8 @@ static void __iomem *gpio_base[] = {RK2928_GPIO0_BASE, RK2928_GPIO1_BASE, RK2928 #elif defined(CONFIG_ARCH_RK3066B) || defined(CONFIG_ARCH_RK3188) static void __iomem *gpio_base[] = {RK30_GPIO0_BASE, RK30_GPIO1_BASE, RK30_GPIO2_BASE, RK30_GPIO3_BASE}; #elif defined(CONFIG_ARCH_RK30) -static void __iomem *gpio_base[] = {RK30_GPIO0_BASE, RK30_GPIO1_BASE, RK30_GPIO2_BASE, RK30_GPIO3_BASE, RK30_GPIO4_BASE, RK30_GPIO6_BASE}; +static void __iomem *gpio_base[] = {RK30_GPIO0_BASE, RK30_GPIO1_BASE, RK30_GPIO2_BASE, RK30_GPIO3_BASE, + RK30_GPIO4_BASE, 0, RK30_GPIO6_BASE}; #endif int sram_gpio_init(int gpio, struct sram_gpio_data *data) @@ -198,6 +199,9 @@ int sram_gpio_init(int gpio, struct sram_gpio_data *data) return -EINVAL; data->base = gpio_base[index/NUM_GROUP]; + if(data->base == 0) + return -EINVAL; + data->offset = index%NUM_GROUP; return 0; -- 2.34.1