net/qede/base: update MFW when default MTU is changed
authorRasesh Mody <rasesh.mody@cavium.com>
Wed, 29 Mar 2017 20:36:14 +0000 (13:36 -0700)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 4 Apr 2017 17:02:50 +0000 (19:02 +0200)
Send mailbox command to Management FW when MTU changes.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
drivers/net/qede/base/ecore_dev.c
drivers/net/qede/base/ecore_mcp.c

index 7a501bb..13e13ba 100644 (file)
@@ -1629,6 +1629,7 @@ enum _ecore_status_t ecore_hw_init(struct ecore_dev *p_dev,
 {
        enum _ecore_status_t rc = ECORE_SUCCESS, mfw_rc;
        u32 load_code, param, drv_mb_param;
+       bool b_default_mtu = true;
        struct ecore_hwfn *p_hwfn;
        int i;
 
@@ -1648,6 +1649,12 @@ enum _ecore_status_t ecore_hw_init(struct ecore_dev *p_dev,
        for_each_hwfn(p_dev, i) {
                struct ecore_hwfn *p_hwfn = &p_dev->hwfns[i];
 
+               /* If management didn't provide a default, set one of our own */
+               if (!p_hwfn->hw_info.mtu) {
+                       p_hwfn->hw_info.mtu = 1500;
+                       b_default_mtu = false;
+               }
+
                if (IS_VF(p_dev)) {
                        p_hwfn->b_int_enabled = 1;
                        continue;
@@ -1776,6 +1783,10 @@ enum _ecore_status_t ecore_hw_init(struct ecore_dev *p_dev,
                        return rc;
                }
 
+               if (!b_default_mtu)
+                       ecore_mcp_ov_update_mtu(p_hwfn, p_hwfn->p_main_ptt,
+                                               p_hwfn->hw_info.mtu);
+
                rc = ecore_mcp_ov_update_driver_state(p_hwfn,
                                                      p_hwfn->p_main_ptt,
                                                ECORE_OV_DRIVER_STATE_DISABLED);
index 8720ae7..0338576 100644 (file)
@@ -1438,9 +1438,6 @@ enum _ecore_status_t ecore_mcp_fill_shmem_func_info(struct ecore_hwfn *p_hwfn,
 
        info->mtu = (u16)shmem_info.mtu_size;
 
-       if (info->mtu == 0)
-               info->mtu = 1500;
-
        DP_VERBOSE(p_hwfn, (ECORE_MSG_SP | ECORE_MSG_IFUP),
                   "Read configuration from shmem: pause_on_host %02x"
                    " protocol %02x BW [%02x - %02x]"