core: fix requesting events
authorBartosz Golaszewski <bartekgola@gmail.com>
Mon, 30 Jan 2017 11:02:07 +0000 (12:02 +0100)
committerBartosz Golaszewski <bartekgola@gmail.com>
Mon, 30 Jan 2017 11:04:40 +0000 (12:04 +0100)
There was a bitwise OR and assignment operator in an 'if else' instead
of an equality operator when requesting 'both edges' events.

Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
src/lib/core.c

index 2cede395a93eaf6bb245df7b847c399632b09e0a..55f144baa9458834b72e398d3ce94d5f7a0f4157 100644 (file)
@@ -774,7 +774,7 @@ int gpiod_line_event_request(struct gpiod_line *line,
                req->eventflags |= GPIOEVENT_EVENT_RISING_EDGE;
        else if (config->event_type == GPIOD_EVENT_FALLING_EDGE)
                req->eventflags |= GPIOEVENT_EVENT_FALLING_EDGE;
-       else if (req->eventflags |= GPIOD_EVENT_BOTH_EDGES)
+       else if (req->eventflags == GPIOD_EVENT_BOTH_EDGES)
                req->eventflags |= GPIOEVENT_REQUEST_BOTH_EDGES;
 
        chip = gpiod_line_get_chip(line);