In addition to the ETS weight, older firmware also requires the min_bw
parameter to be set for it to work properly.
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
                        cos2bw.tsa =
                                QUEUE_COS2BW_QCFG_RESP_QUEUE_ID0_TSA_ASSIGN_ETS;
                        cos2bw.bw_weight = ets->tc_tx_bw[i];
+                       /* older firmware requires min_bw to be set to the
+                        * same weight value in percent.
+                        */
+                       cos2bw.min_bw =
+                               cpu_to_le32((ets->tc_tx_bw[i] * 100) |
+                                           BW_VALUE_UNIT_PERCENT1_100);
                }
                memcpy(data, &cos2bw.queue_id, sizeof(cos2bw) - 4);
                if (i == 0) {
 
        u8                      queue_id;
        __le32                  min_bw;
        __le32                  max_bw;
+#define BW_VALUE_UNIT_PERCENT1_100             (0x1UL << 29)
        u8                      tsa;
        u8                      pri_lvl;
        u8                      bw_weight;