ptp: xgbe: convert to the 64 bit get/set time methods.
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>
This commit is contained in:
parent
20ca7fb6e4
commit
15dd95ffe4
@ -179,7 +179,7 @@ static int xgbe_adjtime(struct ptp_clock_info *info, s64 delta)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int xgbe_gettime(struct ptp_clock_info *info, struct timespec *ts)
|
static int xgbe_gettime(struct ptp_clock_info *info, struct timespec64 *ts)
|
||||||
{
|
{
|
||||||
struct xgbe_prv_data *pdata = container_of(info,
|
struct xgbe_prv_data *pdata = container_of(info,
|
||||||
struct xgbe_prv_data,
|
struct xgbe_prv_data,
|
||||||
@ -193,12 +193,13 @@ static int xgbe_gettime(struct ptp_clock_info *info, struct timespec *ts)
|
|||||||
|
|
||||||
spin_unlock_irqrestore(&pdata->tstamp_lock, flags);
|
spin_unlock_irqrestore(&pdata->tstamp_lock, flags);
|
||||||
|
|
||||||
*ts = ns_to_timespec(nsec);
|
*ts = ns_to_timespec64(nsec);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int xgbe_settime(struct ptp_clock_info *info, const struct timespec *ts)
|
static int xgbe_settime(struct ptp_clock_info *info,
|
||||||
|
const struct timespec64 *ts)
|
||||||
{
|
{
|
||||||
struct xgbe_prv_data *pdata = container_of(info,
|
struct xgbe_prv_data *pdata = container_of(info,
|
||||||
struct xgbe_prv_data,
|
struct xgbe_prv_data,
|
||||||
@ -206,7 +207,7 @@ static int xgbe_settime(struct ptp_clock_info *info, const struct timespec *ts)
|
|||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
u64 nsec;
|
u64 nsec;
|
||||||
|
|
||||||
nsec = timespec_to_ns(ts);
|
nsec = timespec64_to_ns(ts);
|
||||||
|
|
||||||
spin_lock_irqsave(&pdata->tstamp_lock, flags);
|
spin_lock_irqsave(&pdata->tstamp_lock, flags);
|
||||||
|
|
||||||
@ -236,8 +237,8 @@ void xgbe_ptp_register(struct xgbe_prv_data *pdata)
|
|||||||
info->max_adj = pdata->ptpclk_rate;
|
info->max_adj = pdata->ptpclk_rate;
|
||||||
info->adjfreq = xgbe_adjfreq;
|
info->adjfreq = xgbe_adjfreq;
|
||||||
info->adjtime = xgbe_adjtime;
|
info->adjtime = xgbe_adjtime;
|
||||||
info->gettime = xgbe_gettime;
|
info->gettime64 = xgbe_gettime;
|
||||||
info->settime = xgbe_settime;
|
info->settime64 = xgbe_settime;
|
||||||
info->enable = xgbe_enable;
|
info->enable = xgbe_enable;
|
||||||
|
|
||||||
clock = ptp_clock_register(info, pdata->dev);
|
clock = ptp_clock_register(info, pdata->dev);
|
||||||
|
Loading…
Reference in New Issue
Block a user