aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKalesh AP <kalesh.purayil@emulex.com>2014-09-12 08:09:20 -0400
committerDavid S. Miller <davem@davemloft.net>2014-09-13 17:12:15 -0400
commit936767039cdf9409153fbaafa3127b0c85101097 (patch)
tree43e24094f7542893cc8f91ca27e4b5d8aca3f4cd
parent6809cee0ca2139877566d860abc892b4736de8af (diff)
be2net: send a max of 8 EQs to be_cmd_modify_eqd() on Lancer
The MODIFY_EQ_DELAY FW cmd on Lancer is supported for a max of 8 EQs per cmd. Signed-off-by: Kalesh AP <kalesh.purayil@emulex.com> Signed-off-by: Sathya Perla <sathya.perla@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/emulex/benet/be_cmds.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c
index 85edde6603fe..cd213d967529 100644
--- a/drivers/net/ethernet/emulex/benet/be_cmds.c
+++ b/drivers/net/ethernet/emulex/benet/be_cmds.c
@@ -1783,8 +1783,8 @@ err:
1783/* set the EQ delay interval of an EQ to specified value 1783/* set the EQ delay interval of an EQ to specified value
1784 * Uses async mcc 1784 * Uses async mcc
1785 */ 1785 */
1786int be_cmd_modify_eqd(struct be_adapter *adapter, struct be_set_eqd *set_eqd, 1786int __be_cmd_modify_eqd(struct be_adapter *adapter, struct be_set_eqd *set_eqd,
1787 int num) 1787 int num)
1788{ 1788{
1789 struct be_mcc_wrb *wrb; 1789 struct be_mcc_wrb *wrb;
1790 struct be_cmd_req_modify_eq_delay *req; 1790 struct be_cmd_req_modify_eq_delay *req;
@@ -1817,6 +1817,25 @@ err:
1817 return status; 1817 return status;
1818} 1818}
1819 1819
1820int be_cmd_modify_eqd(struct be_adapter *adapter, struct be_set_eqd *set_eqd,
1821 int num)
1822{
1823 int num_eqs, i = 0;
1824
1825 if (lancer_chip(adapter) && num > 8) {
1826 while (num) {
1827 num_eqs = min(num, 8);
1828 __be_cmd_modify_eqd(adapter, &set_eqd[i], num_eqs);
1829 i += num_eqs;
1830 num -= num_eqs;
1831 }
1832 } else {
1833 __be_cmd_modify_eqd(adapter, set_eqd, num);
1834 }
1835
1836 return 0;
1837}
1838
1820/* Uses sycnhronous mcc */ 1839/* Uses sycnhronous mcc */
1821int be_cmd_vlan_config(struct be_adapter *adapter, u32 if_id, u16 *vtag_array, 1840int be_cmd_vlan_config(struct be_adapter *adapter, u32 if_id, u16 *vtag_array,
1822 u32 num) 1841 u32 num)