[PATCH RFT] mach-s3c64xx:Fix error handling for certain calls to s3c_gpio_cfgpin_range in the file dev-audio.c
Nicholas Krause
xerofoify at gmail.com
Wed Sep 16 20:00:35 PDT 2015
This fixes error handling for calls to the function
s3c_gpio_cfgpin_range in the file dev-audio.c that
assume calls to this particular function always run
successfully to properly check now if these calls
fail by returning a error code and if so return it
directly as otherwise we fail to signal that the
pins have failed to changed their configuration to
future function users of the gpio configuration
of this device, therefore making them incorrectly
access a misconfigured gpio subsystem on the board
using this gpio driver.
Signed-off-by: Nicholas Krause <xerofoify at gmail.com>
---
arch/arm/mach-s3c64xx/dev-audio.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-s3c64xx/dev-audio.c b/arch/arm/mach-s3c64xx/dev-audio.c
index ff780a8..81fabdb 100644
--- a/arch/arm/mach-s3c64xx/dev-audio.c
+++ b/arch/arm/mach-s3c64xx/dev-audio.c
@@ -27,6 +27,7 @@
static int s3c64xx_i2s_cfg_gpio(struct platform_device *pdev)
{
unsigned int base;
+ int ret;
switch (pdev->id) {
case 0:
@@ -47,9 +48,9 @@ static int s3c64xx_i2s_cfg_gpio(struct platform_device *pdev)
return -EINVAL;
}
- s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(3));
-
- return 0;
+ ret = s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(3));
+
+ return ret;
}
static struct resource s3c64xx_iis0_resource[] = {
@@ -122,6 +123,7 @@ EXPORT_SYMBOL(s3c64xx_device_iisv4);
static int s3c64xx_pcm_cfg_gpio(struct platform_device *pdev)
{
unsigned int base;
+ int ret;
switch (pdev->id) {
case 0:
@@ -136,8 +138,8 @@ static int s3c64xx_pcm_cfg_gpio(struct platform_device *pdev)
return -EINVAL;
}
- s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(2));
- return 0;
+ ret = s3c_gpio_cfgpin_range(base, 5, S3C_GPIO_SFN(2));
+ return ret;
}
static struct resource s3c64xx_pcm0_resource[] = {
--
2.1.4
More information about the linux-arm-kernel
mailing list