OSDN Git Service

ptp: gianfar: convert to the 64 bit get/set time methods.
authorRichard Cochran <richardcochran@gmail.com>
Sun, 29 Mar 2015 21:11:59 +0000 (23:11 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 31 Mar 2015 16:01:17 +0000 (12:01 -0400)
The device features a 64 bit nanoseconds register, and so with this
patch the driver is ready for the year 2038.

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

index 7735336..04265a7 100644 (file)
@@ -322,7 +322,8 @@ static int ptp_gianfar_adjtime(struct ptp_clock_info *ptp, s64 delta)
        return 0;
 }
 
-static int ptp_gianfar_gettime(struct ptp_clock_info *ptp, struct timespec *ts)
+static int ptp_gianfar_gettime(struct ptp_clock_info *ptp,
+                              struct timespec64 *ts)
 {
        u64 ns;
        u32 remainder;
@@ -341,7 +342,7 @@ static int ptp_gianfar_gettime(struct ptp_clock_info *ptp, struct timespec *ts)
 }
 
 static int ptp_gianfar_settime(struct ptp_clock_info *ptp,
-                              const struct timespec *ts)
+                              const struct timespec64 *ts)
 {
        u64 ns;
        unsigned long flags;
@@ -418,8 +419,8 @@ static struct ptp_clock_info ptp_gianfar_caps = {
        .pps            = 1,
        .adjfreq        = ptp_gianfar_adjfreq,
        .adjtime        = ptp_gianfar_adjtime,
-       .gettime        = ptp_gianfar_gettime,
-       .settime        = ptp_gianfar_settime,
+       .gettime64      = ptp_gianfar_gettime,
+       .settime64      = ptp_gianfar_settime,
        .enable         = ptp_gianfar_enable,
 };
 
@@ -440,7 +441,7 @@ static int gianfar_ptp_probe(struct platform_device *dev)
 {
        struct device_node *node = dev->dev.of_node;
        struct etsects *etsects;
-       struct timespec now;
+       struct timespec64 now;
        int err = -ENOMEM;
        u32 tmr_ctrl;
        unsigned long flags;
@@ -495,7 +496,7 @@ static int gianfar_ptp_probe(struct platform_device *dev)
                pr_err("ioremap ptp registers failed\n");
                goto no_ioremap;
        }
-       getnstimeofday(&now);
+       getnstimeofday64(&now);
        ptp_gianfar_settime(&etsects->caps, &now);
 
        tmr_ctrl =