[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAP=VYLrNBjHgPJFzwBrQ4=5rouCD81PLW4f_TPZMkF7yObUdcA@mail.gmail.com>
Date: Fri, 6 Apr 2012 00:25:32 -0400
From: Paul Gortmaker <paul.gortmaker@...driver.com>
To: Richard Cochran <richardcochran@...il.com>
Cc: netdev@...r.kernel.org, David Miller <davem@...emloft.net>,
Ben Hutchings <bhutchings@...arflare.com>,
Martin Porter <mporter@...arflare.com>,
Jacob Keller <jacob.e.keller@...el.com>,
Jeff Kirsher <jeffrey.t.kirsher@...el.com>,
John Ronciak <john.ronciak@...el.com>,
e1000-devel@...ts.sourceforge.net, linux-next@...r.kernel.org
Subject: Re: [PATCH V4 net-next 04/26] gianfar: Support the get_ts_info
ethtool method.
On Wed, Apr 4, 2012 at 4:59 AM, Richard Cochran
<richardcochran@...il.com> wrote:
> Signed-off-by: Richard Cochran <richardcochran@...il.com>
> ---
> 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@...r.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists