On Wed, Apr 4, 2012 at 4:59 AM, Richard Cochran
<richardcochran@xxxxxxxxx> wrote:
> Signed-off-by: Richard Cochran <richardcochran@xxxxxxxxx>
> ---
> drivers/net/ethernet/freescale/gianfar.h | 3 ++
> drivers/net/ethernet/freescale/gianfar_ethtool.c | 29 ++++++++++++++++++++++
> drivers/net/ethernet/freescale/gianfar_ptp.c | 2 +
> 3 files changed, 34 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/ethernet/freescale/gianfar.h b/drivers/net/ethernet/freescale/gianfar.h
> index 4c9f8d4..2136c7f 100644
> --- a/drivers/net/ethernet/freescale/gianfar.h
> +++ b/drivers/net/ethernet/freescale/gianfar.h
> @@ -1210,4 +1210,7 @@ struct filer_table {
> struct gfar_filer_entry fe[MAX_FILER_CACHE_IDX + 20];
> };
>
> +/* The gianfar_ptp module will set this variable */
> +extern int gfar_phc_index;
> +
> #endif /* __GIANFAR_H */
> diff --git a/drivers/net/ethernet/freescale/gianfar_ethtool.c b/drivers/net/ethernet/freescale/gianfar_ethtool.c
> index 8d74efd..27f49c7 100644
> --- a/drivers/net/ethernet/freescale/gianfar_ethtool.c
> +++ b/drivers/net/ethernet/freescale/gianfar_ethtool.c
> @@ -1739,6 +1739,34 @@ static int gfar_get_nfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
> return ret;
> }
>
> +int gfar_phc_index = -1;
> +
> +static int gfar_get_ts_info(struct net_device *dev,
> + struct ethtool_ts_info *info)
> +{
> + struct gfar_private *priv = netdev_priv(dev);
> +
> + if (!(priv->device_flags & FSL_GIANFAR_DEV_HAS_TIMER)) {
> + info->so_timestamping =
> + SOF_TIMESTAMPING_RX_SOFTWARE |
> + SOF_TIMESTAMPING_SOFTWARE;
Commit 66636287 in linux-next appears to cause this:
drivers/net/ethernet/freescale/gianfar_ethtool.c:1751:4: error:
'SOF_TIMESTAMPING_RX_SOFTWARE' undeclared (first use in this function)
drivers/net/ethernet/freescale/gianfar_ethtool.c:1752:4: error:
'SOF_TIMESTAMPING_SOFTWARE' undeclared (first use in this function)
Needs an include of <linux/net_tstamp.h> ?
http://kisskb.ellerman.id.au/kisskb/buildresult/6039723/
http://kisskb.ellerman.id.au/kisskb/buildresult/6039704/
http://kisskb.ellerman.id.au/kisskb/buildresult/6040028/
I'd normally just provide a tested and signed off patch, but I'm kind of
limited to just browsing the build results at this particular moment. Sorry
about that.
Paul.
> + info->phc_index = -1;
> + return 0;
> + }
> + info->so_timestamping =
> + SOF_TIMESTAMPING_TX_HARDWARE |
> + SOF_TIMESTAMPING_RX_HARDWARE |
> + SOF_TIMESTAMPING_RAW_HARDWARE;
> + info->phc_index = gfar_phc_index;
> + info->tx_types =
> + (1 << HWTSTAMP_TX_OFF) |
> + (1 << HWTSTAMP_TX_ON);
> + info->rx_filters =
> + (1 << HWTSTAMP_FILTER_NONE) |
> + (1 << HWTSTAMP_FILTER_ALL);
> + return 0;
> +}
> +
> const struct ethtool_ops gfar_ethtool_ops = {
> .get_settings = gfar_gsettings,
> .set_settings = gfar_ssettings,
> @@ -1761,4 +1789,5 @@ const struct ethtool_ops gfar_ethtool_ops = {
> #endif
> .set_rxnfc = gfar_set_nfc,
> .get_rxnfc = gfar_get_nfc,
> + .get_ts_info = gfar_get_ts_info,
> };
> diff --git a/drivers/net/ethernet/freescale/gianfar_ptp.c b/drivers/net/ethernet/freescale/gianfar_ptp.c
> index 5fd620b..c08e5d4 100644
> --- a/drivers/net/ethernet/freescale/gianfar_ptp.c
> +++ b/drivers/net/ethernet/freescale/gianfar_ptp.c
> @@ -515,6 +515,7 @@ static int gianfar_ptp_probe(struct platform_device *dev)
> err = PTR_ERR(etsects->clock);
> goto no_clock;
> }
> + gfar_phc_clock = ptp_clock_index(etsects->clock);
>
> dev_set_drvdata(&dev->dev, etsects);
>
> @@ -538,6 +539,7 @@ static int gianfar_ptp_remove(struct platform_device *dev)
> gfar_write(&etsects->regs->tmr_temask, 0);
> gfar_write(&etsects->regs->tmr_ctrl, 0);
>
> + gfar_phc_clock = -1;
> ptp_clock_unregister(etsects->clock);
> iounmap(etsects->regs);
> release_resource(etsects->rsrc);
> --
> 1.7.2.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-next" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux USB Devel]
[Video for Linux]
[Linux Audio Users]
[Photo]
[Yosemite News]
[Yosemite Photos]
[Free Online Dating]
[Linux Kernel]
[Linux SCSI]
[XFree86]