Message ID | 20200708072401.169150-5-joyce.ooi@intel.com |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | net: eth: altera: tse: Add PTP and mSGDMA prefetcher | expand |
On 7/8/20 2:23 AM, Ooi, Joyce wrote: > From: Dalon Westergreen <dalon.westergreen@intel.com> > > Allow for optional start up of tx dma if the start_txdma > function is defined in altera_dmaops. > > Signed-off-by: Dalon Westergreen <dalon.westergreen@intel.com> > Signed-off-by: Joyce Ooi <joyce.ooi@intel.com> > --- > v2: no change > v3: no change > v4: no change > --- > drivers/net/ethernet/altera/altera_tse.h | 1 + > drivers/net/ethernet/altera/altera_tse_main.c | 5 +++++ > 2 files changed, 6 insertions(+) > > diff --git a/drivers/net/ethernet/altera/altera_tse.h b/drivers/net/ethernet/altera/altera_tse.h > index 7d0c98fc103e..26c5541fda27 100644 > --- a/drivers/net/ethernet/altera/altera_tse.h > +++ b/drivers/net/ethernet/altera/altera_tse.h > @@ -401,6 +401,7 @@ struct altera_dmaops { > int (*init_dma)(struct altera_tse_private *priv); > void (*uninit_dma)(struct altera_tse_private *priv); > void (*start_rxdma)(struct altera_tse_private *priv); > + void (*start_txdma)(struct altera_tse_private *priv); > }; > > /* This structure is private to each device. > diff --git a/drivers/net/ethernet/altera/altera_tse_main.c b/drivers/net/ethernet/altera/altera_tse_main.c > index a3749ffdcac9..0a724e4d2c8c 100644 > --- a/drivers/net/ethernet/altera/altera_tse_main.c > +++ b/drivers/net/ethernet/altera/altera_tse_main.c > @@ -1244,6 +1244,9 @@ static int tse_open(struct net_device *dev) > > priv->dmaops->start_rxdma(priv); > > + if (priv->dmaops->start_txdma) > + priv->dmaops->start_txdma(priv); > + > /* Start MAC Rx/Tx */ > spin_lock(&priv->mac_cfg_lock); > tse_set_mac(priv, true); > @@ -1646,6 +1649,7 @@ static const struct altera_dmaops altera_dtype_sgdma = { > .init_dma = sgdma_initialize, > .uninit_dma = sgdma_uninitialize, > .start_rxdma = sgdma_start_rxdma, > + .start_txdma = NULL, > }; > > static const struct altera_dmaops altera_dtype_msgdma = { > @@ -1665,6 +1669,7 @@ static const struct altera_dmaops altera_dtype_msgdma = { > .init_dma = msgdma_initialize, > .uninit_dma = msgdma_uninitialize, > .start_rxdma = msgdma_start_rxdma, > + .start_txdma = NULL, > }; > > static const struct of_device_id altera_tse_ids[] = { > Reviewed-by: Thor Thayer <thor.thayer@linux.intel.com>
diff --git a/drivers/net/ethernet/altera/altera_tse.h b/drivers/net/ethernet/altera/altera_tse.h index 7d0c98fc103e..26c5541fda27 100644 --- a/drivers/net/ethernet/altera/altera_tse.h +++ b/drivers/net/ethernet/altera/altera_tse.h @@ -401,6 +401,7 @@ struct altera_dmaops { int (*init_dma)(struct altera_tse_private *priv); void (*uninit_dma)(struct altera_tse_private *priv); void (*start_rxdma)(struct altera_tse_private *priv); + void (*start_txdma)(struct altera_tse_private *priv); }; /* This structure is private to each device. diff --git a/drivers/net/ethernet/altera/altera_tse_main.c b/drivers/net/ethernet/altera/altera_tse_main.c index a3749ffdcac9..0a724e4d2c8c 100644 --- a/drivers/net/ethernet/altera/altera_tse_main.c +++ b/drivers/net/ethernet/altera/altera_tse_main.c @@ -1244,6 +1244,9 @@ static int tse_open(struct net_device *dev) priv->dmaops->start_rxdma(priv); + if (priv->dmaops->start_txdma) + priv->dmaops->start_txdma(priv); + /* Start MAC Rx/Tx */ spin_lock(&priv->mac_cfg_lock); tse_set_mac(priv, true); @@ -1646,6 +1649,7 @@ static const struct altera_dmaops altera_dtype_sgdma = { .init_dma = sgdma_initialize, .uninit_dma = sgdma_uninitialize, .start_rxdma = sgdma_start_rxdma, + .start_txdma = NULL, }; static const struct altera_dmaops altera_dtype_msgdma = { @@ -1665,6 +1669,7 @@ static const struct altera_dmaops altera_dtype_msgdma = { .init_dma = msgdma_initialize, .uninit_dma = msgdma_uninitialize, .start_rxdma = msgdma_start_rxdma, + .start_txdma = NULL, }; static const struct of_device_id altera_tse_ids[] = {