core: clamp GPIO values to either 1 or 0
authorBartosz Golaszewski <bartekgola@gmail.com>
Mon, 2 Jan 2017 14:55:30 +0000 (15:55 +0100)
committerBartosz Golaszewski <bartekgola@gmail.com>
Mon, 2 Jan 2017 14:55:30 +0000 (15:55 +0100)
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
core.c

diff --git a/core.c b/core.c
index 5e4914cee99c9437186b2d948bfbb80fa6b062f8..d777f5c0af195a7ae37011d669541268d768e6b5 100644 (file)
--- a/core.c
+++ b/core.c
@@ -219,7 +219,7 @@ int gpiod_line_request(struct gpiod_line *line, const char *consumer,
        req->lines = 1;
 
        if (direction == GPIOD_DIRECTION_OUT)
-               req->default_values[0] = (__u8)default_val;
+               req->default_values[0] = (__u8)!!default_val;
 
        strncpy(req->consumer_label, consumer,
                sizeof(req->consumer_label) - 1);
@@ -279,7 +279,7 @@ int gpiod_line_set_value(struct gpiod_line *line, int value)
        }
 
        memset(&data, 0, sizeof(data));
-       data.values[0] = value ? 1 : 0;
+       data.values[0] = (__u8)!!value;
 
        status = gpio_ioctl(line->req->fd,
                            GPIOHANDLE_SET_LINE_VALUES_IOCTL, &data);