Re: [PATCH V4 net-next 04/26] gianfar: Support the get_ts_info ethtool method.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


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]

Add to Google Powered by Linux