Loading drivers/ptp/ptp_clock.c +17 −2 Original line number Diff line number Diff line Loading @@ -107,13 +107,28 @@ static int ptp_clock_getres(struct posix_clock *pc, struct timespec *tp) static int ptp_clock_settime(struct posix_clock *pc, const struct timespec *tp) { struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock); return ptp->info->settime(ptp->info, tp); struct timespec64 ts = timespec_to_timespec64(*tp); return ptp->info->settime64 ? ptp->info->settime64(ptp->info, &ts) : ptp->info->settime(ptp->info, tp); } static int ptp_clock_gettime(struct posix_clock *pc, struct timespec *tp) { struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock); return ptp->info->gettime(ptp->info, tp); struct timespec64 ts; int err; if (ptp->info->gettime64) { err = ptp->info->gettime64(ptp->info, &ts); if (!err) *tp = timespec64_to_timespec(ts); } else { err = ptp->info->gettime(ptp->info, tp); } return err; } static int ptp_clock_adjtime(struct posix_clock *pc, struct timex *tx) Loading Loading
drivers/ptp/ptp_clock.c +17 −2 Original line number Diff line number Diff line Loading @@ -107,13 +107,28 @@ static int ptp_clock_getres(struct posix_clock *pc, struct timespec *tp) static int ptp_clock_settime(struct posix_clock *pc, const struct timespec *tp) { struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock); return ptp->info->settime(ptp->info, tp); struct timespec64 ts = timespec_to_timespec64(*tp); return ptp->info->settime64 ? ptp->info->settime64(ptp->info, &ts) : ptp->info->settime(ptp->info, tp); } static int ptp_clock_gettime(struct posix_clock *pc, struct timespec *tp) { struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock); return ptp->info->gettime(ptp->info, tp); struct timespec64 ts; int err; if (ptp->info->gettime64) { err = ptp->info->gettime64(ptp->info, &ts); if (!err) *tp = timespec64_to_timespec(ts); } else { err = ptp->info->gettime(ptp->info, tp); } return err; } static int ptp_clock_adjtime(struct posix_clock *pc, struct timex *tx) Loading