diff options
author | Sandeep Malik <Sandeep.Malik@freescale.com> | 2014-05-09 13:28:13 (GMT) |
---|---|---|
committer | Jose Rivera <German.Rivera@freescale.com> | 2014-05-09 16:07:36 (GMT) |
commit | c413b7a34a8eef5b581570c8da1df9b9972f3971 (patch) | |
tree | 9506371737b3131c533b0de756f78bbf2dae31ea /drivers/net/ethernet/freescale | |
parent | 98345f7c55a5a52b30aa0982cec8644ad9636bdb (diff) | |
download | linux-fsl-qoriq-c413b7a34a8eef5b581570c8da1df9b9972f3971.tar.xz |
asf_gfar: Patch to fix the crash seen in ifup for bsc9132.
ASF uses two TX queues to avoid contention. BSC9132 even though having
controller which can support two groups was having the DTS file written
for one group. To fix this we allow ASF to override the default tx queue
mapping with the "fsl,tx-bit-map" value given in the DT.
This patch resolves the crash seen in case of bsc9132 board
when the network interface is up and trying to xmit the packet.
Signed-off-by: Sandeep Malik <Sandeep.Malik@freescale.com>
---
CQ:ENGR311623
Change-Id: I9d61b0ac73674774f4b674836478048e9a0c8873
Reviewed-on: http://git.am.freescale.net:8181/12091
Reviewed-by: Claudiu Manoil <claudiu.manoil@freescale.com>
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale')
-rw-r--r-- | drivers/net/ethernet/freescale/gianfar.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c index 9844e1a..8ce76ec 100644 --- a/drivers/net/ethernet/freescale/gianfar.c +++ b/drivers/net/ethernet/freescale/gianfar.c @@ -704,6 +704,12 @@ static int gfar_parse_group(struct device_node *np, /* One Q per interrupt group: Q0 to G0, Q1 to G1 */ grp->rx_bit_map = (DEFAULT_MAPPING >> priv->num_grps); grp->tx_bit_map = (DEFAULT_MAPPING >> priv->num_grps); + #ifdef CONFIG_AS_FASTPATH + grp->rx_bit_map = rxq_mask ? + *rxq_mask : (DEFAULT_MAPPING >> priv->num_grps); + grp->tx_bit_map = txq_mask ? + *txq_mask : (DEFAULT_MAPPING >> priv->num_grps); + #endif } else { /* GFAR_MQ_POLLING */ grp->rx_bit_map = rxq_mask ? *rxq_mask : (DEFAULT_MAPPING >> priv->num_grps); |