Merge branch 'davinci_emac-read-the-MAC-address-from-nvmem'
[linux-2.6-block.git] / drivers / ptp / ptp_clock.c
index 5419a89d300e3cb8769fa338e8616065cc28ec4c..8a81eecc0ecd4b58746487c5bec7938f616e8152 100644 (file)
@@ -117,7 +117,10 @@ static int ptp_clock_gettime(struct posix_clock *pc, struct timespec64 *tp)
        struct ptp_clock *ptp = container_of(pc, struct ptp_clock, clock);
        int err;
 
-       err = ptp->info->gettime64(ptp->info, tp);
+       if (ptp->info->gettimex64)
+               err = ptp->info->gettimex64(ptp->info, tp, NULL);
+       else
+               err = ptp->info->gettime64(ptp->info, tp);
        return err;
 }
 
@@ -249,8 +252,10 @@ struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
        ptp->dev = device_create_with_groups(ptp_class, parent, ptp->devid,
                                             ptp, ptp->pin_attr_groups,
                                             "ptp%d", ptp->index);
-       if (IS_ERR(ptp->dev))
+       if (IS_ERR(ptp->dev)) {
+               err = PTR_ERR(ptp->dev);
                goto no_device;
+       }
 
        /* Register a new PPS source. */
        if (info->pps) {
@@ -261,6 +266,7 @@ struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
                pps.owner = info->owner;
                ptp->pps_source = pps_register_source(&pps, PTP_PPS_DEFAULTS);
                if (!ptp->pps_source) {
+                       err = -EINVAL;
                        pr_err("failed to register pps source\n");
                        goto no_pps;
                }