|
@@ -1783,8 +1783,8 @@ err:
|
|
|
/* set the EQ delay interval of an EQ to specified value
|
|
|
* Uses async mcc
|
|
|
*/
|
|
|
-int be_cmd_modify_eqd(struct be_adapter *adapter, struct be_set_eqd *set_eqd,
|
|
|
- int num)
|
|
|
+int __be_cmd_modify_eqd(struct be_adapter *adapter, struct be_set_eqd *set_eqd,
|
|
|
+ int num)
|
|
|
{
|
|
|
struct be_mcc_wrb *wrb;
|
|
|
struct be_cmd_req_modify_eq_delay *req;
|
|
@@ -1817,6 +1817,25 @@ err:
|
|
|
return status;
|
|
|
}
|
|
|
|
|
|
+int be_cmd_modify_eqd(struct be_adapter *adapter, struct be_set_eqd *set_eqd,
|
|
|
+ int num)
|
|
|
+{
|
|
|
+ int num_eqs, i = 0;
|
|
|
+
|
|
|
+ if (lancer_chip(adapter) && num > 8) {
|
|
|
+ while (num) {
|
|
|
+ num_eqs = min(num, 8);
|
|
|
+ __be_cmd_modify_eqd(adapter, &set_eqd[i], num_eqs);
|
|
|
+ i += num_eqs;
|
|
|
+ num -= num_eqs;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ __be_cmd_modify_eqd(adapter, set_eqd, num);
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
/* Uses sycnhronous mcc */
|
|
|
int be_cmd_vlan_config(struct be_adapter *adapter, u32 if_id, u16 *vtag_array,
|
|
|
u32 num)
|