On 10/11/2025 19:40, Andy Shevchenko wrote:
> Use %ptSp instead of open coded variants to print content of
> struct timespec64 in human readable format.
>
> Signed-off-by: Andy Shevchenko <[email protected]>
> ---
> drivers/media/v4l2-core/v4l2-ioctl.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c
> b/drivers/media/v4l2-core/v4l2-ioctl.c
> index 01cf52c3ea33..edc4d97b4161 100644
> --- a/drivers/media/v4l2-core/v4l2-ioctl.c
> +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
> @@ -791,9 +791,8 @@ static void v4l_print_event(const void *arg, bool
> write_only)
> const struct v4l2_event *p = arg;
> const struct v4l2_event_ctrl *c;
>
> - pr_cont("type=0x%x, pending=%u, sequence=%u, id=%u,
> timestamp=%llu.%9.9llu\n",
> - p->type, p->pending, p->sequence, p->id,
> - p->timestamp.tv_sec, p->timestamp.tv_nsec);
> + pr_cont("type=0x%x, pending=%u, sequence=%u, id=%u, timestamp=%ptSp\n",
> + p->type, p->pending, p->sequence, p->id, &p->timestamp);
Hmm, p->timestamp is a struct __kernel_timespec, but that's not quite the
same thing as struct timespec64:
struct __kernel_timespec {
__kernel_time64_t tv_sec; /* seconds */
long long tv_nsec; /* nanoseconds */
};
vs:
struct timespec64 {
time64_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
So I'm not sure this will work.
Regards,
Hans
> switch (p->type) {
> case V4L2_EVENT_VSYNC:
> printk(KERN_DEBUG "field=%s\n",