summaryrefslogtreecommitdiff
path: root/host/arch/arm/lib/crossystem_arch.c
diff options
context:
space:
mode:
Diffstat (limited to 'host/arch/arm/lib/crossystem_arch.c')
-rw-r--r--host/arch/arm/lib/crossystem_arch.c23
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) {