]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ptp: cpts: convert to the 64 bit get/set time methods.
authorRichard Cochran <richardcochran@gmail.com>
Sun, 29 Mar 2015 21:12:08 +0000 (23:12 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 31 Mar 2015 16:01:18 +0000 (12:01 -0400)
This driver's clock is implemented using a timecounter, and so with
this patch the driver is ready for the year 2038.

Compile tested only.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpts.c

index fbe42cb107ecadde04bc5d6d07a709020075e7bb..074b6369da661f427a21b85d89f5efb9d296955d 100644 (file)
@@ -167,7 +167,7 @@ static int cpts_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta)
        return 0;
 }
 
-static int cpts_ptp_gettime(struct ptp_clock_info *ptp, struct timespec *ts)
+static int cpts_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts)
 {
        u64 ns;
        u32 remainder;
@@ -185,7 +185,7 @@ static int cpts_ptp_gettime(struct ptp_clock_info *ptp, struct timespec *ts)
 }
 
 static int cpts_ptp_settime(struct ptp_clock_info *ptp,
-                           const struct timespec *ts)
+                           const struct timespec64 *ts)
 {
        u64 ns;
        unsigned long flags;
@@ -216,20 +216,20 @@ static struct ptp_clock_info cpts_info = {
        .pps            = 0,
        .adjfreq        = cpts_ptp_adjfreq,
        .adjtime        = cpts_ptp_adjtime,
-       .gettime        = cpts_ptp_gettime,
-       .settime        = cpts_ptp_settime,
+       .gettime64      = cpts_ptp_gettime,
+       .settime64      = cpts_ptp_settime,
        .enable         = cpts_ptp_enable,
 };
 
 static void cpts_overflow_check(struct work_struct *work)
 {
-       struct timespec ts;
+       struct timespec64 ts;
        struct cpts *cpts = container_of(work, struct cpts, overflow_work.work);
 
        cpts_write32(cpts, CPTS_EN, control);
        cpts_write32(cpts, TS_PEND_EN, int_enable);
        cpts_ptp_gettime(&cpts->info, &ts);
-       pr_debug("cpts overflow check at %ld.%09lu\n", ts.tv_sec, ts.tv_nsec);
+       pr_debug("cpts overflow check at %lld.%09lu\n", ts.tv_sec, ts.tv_nsec);
        schedule_delayed_work(&cpts->overflow_work, CPTS_OVERFLOW_PERIOD);
 }