01 Mar, 2018

1 commit

  • PRIu64 is defined in user space to match libc's uint64_t definition.
    However, gpioevent_data structure in the kernel is defined using the
    kernel's own __u64 type.

    gpio-event-mon.c: In function ‘monitor_device’:
    gpio-event-mon.c:102:19: warning: format ‘%lu’ expects argument of type
    ‘long unsigned int’, but argument 3 has type ‘__u64 {aka long long
    unsigned int}’ [-Wformat=]
    fprintf(stdout, "GPIO EVENT %" PRIu64 ": ", event.timestamp);
    ^~~~~~~~~~~~~~
    LD /tmp/kselftest/gpiogpio-event-mon-in.o
    LINK /tmp/kselftest/gpiogpio-event-mon

    Fix is to replace PRIu64 with llu, which we know is what the kernel uses
    for __u64.

    Signed-off-by: Anders Roxell
    Tested-by: Daniel Díaz
    Signed-off-by: Linus Walleij

    Anders Roxell
     

21 Dec, 2017

1 commit

  • The GPIO tools build fails when using a buildroot toolchain that uses musl
    as it's C library:

    arm-broomstick-linux-musleabi-gcc -Wp,-MD,./.gpio-event-mon.o.d \
    -Wp,-MT,gpio-event-mon.o -O2 -Wall -g -D_GNU_SOURCE \
    -Iinclude -D"BUILD_STR(s)=#s" -c -o gpio-event-mon.o gpio-event-mon.c
    gpio-event-mon.c:30:6: error: unknown type name ‘u_int32_t’; did you mean ‘uint32_t’?
    u_int32_t handleflags,
    ^~~~~~~~~
    uint32_t

    The glibc headers installed on my laptop include sys/types.h in
    unistd.h, but it appears that musl does not.

    Fixes: 97f69747d8b1 ("tools/gpio: add the gpio-event-mon tool")
    Cc: stable@vger.kernel.org
    Signed-off-by: Joel Stanley
    Signed-off-by: Linus Walleij

    Joel Stanley
     

20 Dec, 2017

1 commit


08 Aug, 2016

1 commit


15 Jun, 2016

1 commit

  • The gpio-event-mon is used from userspace as an example of how
    to monitor GPIO line events. It will latch on to a certain
    GPIO line on a certain gpiochip and print timestamped events
    as they arrive.

    Example output:
    $ gpio-event-mon -n gpiochip2 -o 0 -r -f
    Monitoring line 0 on gpiochip2
    Initial line value: 1
    GPIO EVENT 946685798487609863: falling edge
    GPIO EVENT 946685798732482910: rising edge
    GPIO EVENT 946685799115997314: falling edge
    GPIO EVENT 946685799381469726: rising edge

    Signed-off-by: Linus Walleij

    Linus Walleij