Commit d21c784c authored by Yangbo Lu's avatar Yangbo Lu Committed by David S. Miller

dpaa2-eth: define a global ptp_qoriq structure pointer

Define a global ptp_qoriq structure pointer, and export to use.
The ptp clock operations will be used in dpaa2-eth driver.
For example, supporting one step timestamping needs to write
current time to hardware frame annotation before sending and
then hardware inserts the delay time on frame during sending.
So in driver, at least clock gettime operation will be needed
to make sure right time is written to hardware frame annotation
for one step timestamping.
Signed-off-by: default avatarYangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 23cd4f27
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include <linux/fsl/mc.h> #include <linux/fsl/mc.h>
#include <linux/bpf.h> #include <linux/bpf.h>
#include <linux/bpf_trace.h> #include <linux/bpf_trace.h>
#include <linux/fsl/ptp_qoriq.h>
#include <net/pkt_cls.h> #include <net/pkt_cls.h>
#include <net/sock.h> #include <net/sock.h>
...@@ -30,6 +31,9 @@ MODULE_LICENSE("Dual BSD/GPL"); ...@@ -30,6 +31,9 @@ MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("Freescale Semiconductor, Inc"); MODULE_AUTHOR("Freescale Semiconductor, Inc");
MODULE_DESCRIPTION("Freescale DPAA2 Ethernet Driver"); MODULE_DESCRIPTION("Freescale DPAA2 Ethernet Driver");
struct ptp_qoriq *dpaa2_ptp;
EXPORT_SYMBOL(dpaa2_ptp);
static void *dpaa2_iova_to_virt(struct iommu_domain *domain, static void *dpaa2_iova_to_virt(struct iommu_domain *domain,
dma_addr_t iova_addr) dma_addr_t iova_addr)
{ {
......
...@@ -491,6 +491,7 @@ struct dpaa2_eth_priv { ...@@ -491,6 +491,7 @@ struct dpaa2_eth_priv {
extern const struct ethtool_ops dpaa2_ethtool_ops; extern const struct ethtool_ops dpaa2_ethtool_ops;
extern int dpaa2_phc_index; extern int dpaa2_phc_index;
extern struct ptp_qoriq *dpaa2_ptp;
static inline int dpaa2_eth_cmp_dpni_ver(struct dpaa2_eth_priv *priv, static inline int dpaa2_eth_cmp_dpni_ver(struct dpaa2_eth_priv *priv,
u16 ver_major, u16 ver_minor) u16 ver_major, u16 ver_minor)
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/* /*
* Copyright 2013-2016 Freescale Semiconductor Inc. * Copyright 2013-2016 Freescale Semiconductor Inc.
* Copyright 2016-2018 NXP * Copyright 2016-2018 NXP
* Copyright 2020 NXP
*/ */
#include <linux/module.h> #include <linux/module.h>
...@@ -9,7 +10,6 @@ ...@@ -9,7 +10,6 @@
#include <linux/of_address.h> #include <linux/of_address.h>
#include <linux/msi.h> #include <linux/msi.h>
#include <linux/fsl/mc.h> #include <linux/fsl/mc.h>
#include <linux/fsl/ptp_qoriq.h>
#include "dpaa2-ptp.h" #include "dpaa2-ptp.h"
...@@ -201,6 +201,7 @@ static int dpaa2_ptp_probe(struct fsl_mc_device *mc_dev) ...@@ -201,6 +201,7 @@ static int dpaa2_ptp_probe(struct fsl_mc_device *mc_dev)
goto err_free_threaded_irq; goto err_free_threaded_irq;
dpaa2_phc_index = ptp_qoriq->phc_index; dpaa2_phc_index = ptp_qoriq->phc_index;
dpaa2_ptp = ptp_qoriq;
dev_set_drvdata(dev, ptp_qoriq); dev_set_drvdata(dev, ptp_qoriq);
return 0; return 0;
......
/* SPDX-License-Identifier: GPL-2.0 */ /* SPDX-License-Identifier: GPL-2.0 */
/* /*
* Copyright 2018 NXP * Copyright 2018 NXP
* Copyright 2020 NXP
*/ */
#ifndef __RTC_H #ifndef __RTC_H
#define __RTC_H #define __RTC_H
#include <linux/fsl/ptp_qoriq.h>
#include "dprtc.h" #include "dprtc.h"
#include "dprtc-cmd.h" #include "dprtc-cmd.h"
extern int dpaa2_phc_index; extern int dpaa2_phc_index;
extern struct ptp_qoriq *dpaa2_ptp;
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment