ravb: Add tsrq to struct ravb_hw_info
R-Car AVB-DMAC has 4 Transmit start request queues, whereas RZ/G2L has only 1 Transmit start request queue. Add a tsrq variable to struct ravb_hw_info to handle this difference. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7e09a052dc
commit
0b395f2894
@ -997,6 +997,7 @@ struct ravb_hw_info {
|
||||
netdev_features_t net_features;
|
||||
int stats_len;
|
||||
size_t max_rx_len;
|
||||
u32 tsrq;
|
||||
unsigned aligned_tx: 1;
|
||||
|
||||
/* hardware features */
|
||||
|
@ -790,11 +790,13 @@ static void ravb_rcv_snd_enable(struct net_device *ndev)
|
||||
/* function for waiting dma process finished */
|
||||
static int ravb_stop_dma(struct net_device *ndev)
|
||||
{
|
||||
struct ravb_private *priv = netdev_priv(ndev);
|
||||
const struct ravb_hw_info *info = priv->info;
|
||||
int error;
|
||||
|
||||
/* Wait for stopping the hardware TX process */
|
||||
error = ravb_wait(ndev, TCCR,
|
||||
TCCR_TSRQ0 | TCCR_TSRQ1 | TCCR_TSRQ2 | TCCR_TSRQ3, 0);
|
||||
error = ravb_wait(ndev, TCCR, info->tsrq, 0);
|
||||
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
@ -2128,6 +2130,7 @@ static const struct ravb_hw_info ravb_gen3_hw_info = {
|
||||
.net_features = NETIF_F_RXCSUM,
|
||||
.stats_len = ARRAY_SIZE(ravb_gstrings_stats),
|
||||
.max_rx_len = RX_BUF_SZ + RAVB_ALIGN - 1,
|
||||
.tsrq = TCCR_TSRQ0 | TCCR_TSRQ1 | TCCR_TSRQ2 | TCCR_TSRQ3,
|
||||
.internal_delay = 1,
|
||||
.tx_counters = 1,
|
||||
.multi_irqs = 1,
|
||||
@ -2150,6 +2153,7 @@ static const struct ravb_hw_info ravb_gen2_hw_info = {
|
||||
.net_features = NETIF_F_RXCSUM,
|
||||
.stats_len = ARRAY_SIZE(ravb_gstrings_stats),
|
||||
.max_rx_len = RX_BUF_SZ + RAVB_ALIGN - 1,
|
||||
.tsrq = TCCR_TSRQ0 | TCCR_TSRQ1 | TCCR_TSRQ2 | TCCR_TSRQ3,
|
||||
.aligned_tx = 1,
|
||||
.gptp = 1,
|
||||
.nc_queue = 1,
|
||||
@ -2165,6 +2169,7 @@ static const struct ravb_hw_info gbeth_hw_info = {
|
||||
.dmac_init = ravb_dmac_init_gbeth,
|
||||
.emac_init = ravb_emac_init_gbeth,
|
||||
.max_rx_len = GBETH_RX_BUFF_MAX + RAVB_ALIGN - 1,
|
||||
.tsrq = TCCR_TSRQ0,
|
||||
.aligned_tx = 1,
|
||||
.tx_counters = 1,
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user