Re: [PATCH 1/4] include/uapi/linux: add gxfp_ioctl.h for GXFP5130 fingerprint sensor

Greg KH <[email protected]>
Newsgroups org.kernel.vger.linux-acpi,org.kernel.vger.linux-gpio,org.kernel.vger.linux-kernel
Message-ID <2026071801-headdress-gab-348e@gregkh>
On Sat, Jul 18, 2026 at 11:14:28AM +0300, Metehan Günen wrote:
> Define the userspace ABI for the Goodix GXFP5130 eSPI fingerprint sensor
> driver:
> 
>  - struct gxfp_tap_hdr: header prepended to every read(2) record, carries
>    payload length, MP protocol type and a ktime_get_ns() timestamp.
>  - struct gxfp_tx_pkt_hdr: header that userspace prepends to write(2)
>    payloads so the driver can wrap them in the eSPI frame format.
>  - GXFP_IOCTL_FLUSH_RXQ: flush the kernel-side RX record queue.
> 
> Signed-off-by: Metehan Günen <[email protected]>
> ---
>  include/uapi/linux/gxfp_ioctl.h | 43 +++++++++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
>  create mode 100644 include/uapi/linux/gxfp_ioctl.h
> 
> diff --git a/include/uapi/linux/gxfp_ioctl.h b/include/uapi/linux/gxfp_ioctl.h
> new file mode 100644
> index 000000000..c9c6c2d48
> --- /dev/null
> +++ b/include/uapi/linux/gxfp_ioctl.h
> @@ -0,0 +1,43 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef __UAPI_GXFP_IOCTL_H
> +#define __UAPI_GXFP_IOCTL_H
> +
> +#include <linux/types.h>
> +#include <linux/ioctl.h>
> +
> +#define GXFP_IOCTL_MAGIC 'G'
> +
> +/*
> + * 4-byte MP header + payload must fit GXFP_TX_BUFFER_SIZE(512).
> + */
> +#define GXFP_IOCTL_TX_PAYLOAD_MAX 508u
> +
> +/* Maximum protocol payload bytes exported via read(2) records. */
> +#define GXFP_IOCTL_TAP_PAYLOAD_MAX (128u * 1024u)
> +
> +/*
> + * Stream tap (read/poll) record header.
> + * Followed by `len` bytes of protocol payload.
> + */
> +struct gxfp_tap_hdr {
> +	__u32 len;       /* protocol payload bytes */
> +	__u32 type;      /* MP type */
> +	__u32 _rsvd0;

C variables do not start with _, this isn't rust :)

And are you checking this for 0?

> +	__u64 ts_ns;     /* ktime_get_ns() */
> +	__u8 head16[16]; /* first 16 bytes of payload */
> +};
> +
> +/*
> + * write(2) packet header.
> + * Userspace writes: [gxfp_tx_pkt_hdr][payload bytes]
> + */
> +struct gxfp_tx_pkt_hdr {
> +	__u8 mp_flags;
> +	__u8 _pad0;

Are you checking this for 0?

> +	__u16 payload_len;
> +	__u32 flags;

No definition of what these flags are?

thanks,

greg k-h
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.