From: Alok Mishra <[email protected]>

Populate mode for kernels that uses args.mode for link speed
update.

Signed-off-by: Alok Mishra <[email protected]>
---
 drivers/common/cnxk/roc_nix_mac.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/common/cnxk/roc_nix_mac.c 
b/drivers/common/cnxk/roc_nix_mac.c
index 4f856677e0..2c8c9a6443 100644
--- a/drivers/common/cnxk/roc_nix_mac.c
+++ b/drivers/common/cnxk/roc_nix_mac.c
@@ -316,6 +316,7 @@ roc_nix_mac_link_info_set(struct roc_nix *roc_nix,
        struct dev *dev = &nix->dev;
        struct mbox *mbox = mbox_get(dev->mbox);
        struct cgx_set_link_mode_req *req;
+       struct cgx_set_link_mode_rsp *rsp;
        int rc;
 
        req = mbox_alloc_msg_cgx_set_link_mode(mbox);
@@ -329,8 +330,14 @@ roc_nix_mac_link_info_set(struct roc_nix *roc_nix,
        req->args.duplex = link_info->full_duplex;
        req->args.an = link_info->autoneg;
 
+       /* Populate mode for kernels that select it from args.mode. */
+       if (link_info->advertising)
+               req->args.mode = plt_ctz64(link_info->advertising);
+
        /* Link mode changes takes more time. */
-       rc = mbox_process_tmo(mbox, mbox->rsp_tmo * 4);
+       rc = mbox_process_msg_tmo(mbox, (void **)&rsp, mbox->rsp_tmo * 4);
+       if (!rc)
+               rc = rsp->status;
 exit:
        mbox_put(mbox);
        return rc;
-- 
2.34.1

Reply via email to