diff options
Diffstat (limited to 'host/arch/arm/lib/crossystem_arch.c')
-rw-r--r-- | host/arch/arm/lib/crossystem_arch.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/host/arch/arm/lib/crossystem_arch.c b/host/arch/arm/lib/crossystem_arch.c index 92b61b4c..3864451c 100644 --- a/host/arch/arm/lib/crossystem_arch.c +++ b/host/arch/arm/lib/crossystem_arch.c @@ -68,12 +68,15 @@ const PlatformFamily platform_family_array[] = { static int FindEmmcDev(void) { int mmcblk; + unsigned value; char filename[FNAME_SIZE]; for (mmcblk = 0; mmcblk < MAX_NMMCBLK; mmcblk++) { /* Get first non-removable mmc block device */ snprintf(filename, sizeof(filename), "/sys/block/mmcblk%d/removable", mmcblk); - if (ReadFileInt(filename) == 0) + if (ReadFileInt(filename, &value) < 0) + continue; + if (value == 0) return mmcblk; } /* eMMC not found */ @@ -211,24 +214,23 @@ static char * ReadFdtPlatformFamily(void) { static int VbGetPlatformGpioStatus(const char* name) { char gpio_name[FNAME_SIZE]; - int value; + unsigned value; snprintf(gpio_name, sizeof(gpio_name), "%s/%s/value", PLATFORM_DEV_PATH, name); - value = ReadFileInt(gpio_name); + if (ReadFileInt(gpio_name, &value) < 0) + return -1; - return value; + return (int)value; } static int VbGetGpioStatus(unsigned gpio_number) { char gpio_name[FNAME_SIZE]; - int value; + unsigned value; snprintf(gpio_name, sizeof(gpio_name), "%s/gpio%d/value", GPIO_BASE_PATH, gpio_number); - value = ReadFileInt(gpio_name); - - if (value == -1) { + if (ReadFileInt(gpio_name, &value) < 0) { /* Try exporting the GPIO */ FILE* f = fopen(GPIO_EXPORT_PATH, "wt"); if (!f) @@ -237,10 +239,11 @@ static int VbGetGpioStatus(unsigned gpio_number) { fclose(f); /* Try re-reading the GPIO value */ - value = ReadFileInt(gpio_name); + if (ReadFileInt(gpio_name, &value) < 0) + return -1; } - return value; + return (int)value; } static int VbGetVarGpio(const char* name) { |