ptp: support event queue reader channel masks
authorXabier Marquiegui <reibax@gmail.com>
Wed, 11 Oct 2023 22:39:56 +0000 (00:39 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 15 Oct 2023 19:07:52 +0000 (20:07 +0100)
commitc5a445b1e9347b14752b01f1a304bd7a2f260acc
tree52baa7d81f8a107faf818fdb2ee06ed9550ca747
parent8f5de6fb245326704f37d91780b9a10253a8a100
ptp: support event queue reader channel masks

On systems with multiple timestamp event channels, some readers might
want to receive only a subset of those channels.

Add the necessary modifications to support timestamp event channel
filtering, including two IOCTL operations:

- Clear all channels
- Enable one channel

The mask modification operations will be applied exclusively on the
event queue assigned to the file descriptor used on the IOCTL operation,
so the typical procedure to have a reader receiving only a subset of the
enabled channels would be:

- Open device file
- ioctl: clear all channels
- ioctl: enable one channel
- start reading

Calling the enable one channel ioctl more than once will result in
multiple enabled channels.

Signed-off-by: Xabier Marquiegui <reibax@gmail.com>
Suggested-by: Richard Cochran <richardcochran@gmail.com>
Suggested-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/ptp/ptp_chardev.c
drivers/ptp/ptp_clock.c
drivers/ptp/ptp_private.h
include/uapi/linux/ptp_clock.h