lkml.org 
[lkml]   [2018]   [Mar]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.9 001/281] qed: Fix overriding of supported autoneg value.
    Date
    From: "sudarsana.kalluru@cavium.com" <sudarsana.kalluru@cavium.com>

    [ Upstream commit 34f9199ce7b7e5c641b96e928bd60e086bf7f278 ]

    Driver currently uses advertised-autoneg value to populate the
    supported-autoneg field. When advertised field is updated, user gets
    the same value for supported field. Supported-autoneg value need to be
    populated from the link capabilities value returned by the MFW.

    Signed-off-by: Sudarsana Reddy Kalluru <Sudarsana.Kalluru@cavium.com>
    Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    drivers/net/ethernet/qlogic/qed/qed_dev.c | 3 +++
    drivers/net/ethernet/qlogic/qed/qed_main.c | 6 +++++-
    drivers/net/ethernet/qlogic/qed/qed_mcp.h | 1 +
    3 files changed, 9 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c b/drivers/net/ethernet/qlogic/qed/qed_dev.c
    index afe5e57d9acb..9a6adbd9ed34 100644
    --- a/drivers/net/ethernet/qlogic/qed/qed_dev.c
    +++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c
    @@ -1628,6 +1628,9 @@ static int qed_hw_get_nvm_info(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
    DP_NOTICE(p_hwfn, "Unknown Speed in 0x%08x\n", link_temp);
    }

    + p_hwfn->mcp_info->link_capabilities.default_speed_autoneg =
    + link->speed.autoneg;
    +
    link_temp &= NVM_CFG1_PORT_DRV_FLOW_CONTROL_MASK;
    link_temp >>= NVM_CFG1_PORT_DRV_FLOW_CONTROL_OFFSET;
    link->pause.autoneg = !!(link_temp &
    diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c
    index 333c7442e48a..605351a2a1bc 100644
    --- a/drivers/net/ethernet/qlogic/qed/qed_main.c
    +++ b/drivers/net/ethernet/qlogic/qed/qed_main.c
    @@ -1239,7 +1239,7 @@ static void qed_fill_link(struct qed_hwfn *hwfn,

    /* TODO - at the moment assume supported and advertised speed equal */
    if_link->supported_caps = QED_LM_FIBRE_BIT;
    - if (params.speed.autoneg)
    + if (link_caps.default_speed_autoneg)
    if_link->supported_caps |= QED_LM_Autoneg_BIT;
    if (params.pause.autoneg ||
    (params.pause.forced_rx && params.pause.forced_tx))
    @@ -1249,6 +1249,10 @@ static void qed_fill_link(struct qed_hwfn *hwfn,
    if_link->supported_caps |= QED_LM_Pause_BIT;

    if_link->advertised_caps = if_link->supported_caps;
    + if (params.speed.autoneg)
    + if_link->advertised_caps |= QED_LM_Autoneg_BIT;
    + else
    + if_link->advertised_caps &= ~QED_LM_Autoneg_BIT;
    if (params.speed.advertised_speeds &
    NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_1G)
    if_link->advertised_caps |= QED_LM_1000baseT_Half_BIT |
    diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.h b/drivers/net/ethernet/qlogic/qed/qed_mcp.h
    index dff520ed069b..7b7a84d2c839 100644
    --- a/drivers/net/ethernet/qlogic/qed/qed_mcp.h
    +++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.h
    @@ -35,6 +35,7 @@ struct qed_mcp_link_params {

    struct qed_mcp_link_capabilities {
    u32 speed_capabilities;
    + bool default_speed_autoneg;
    };

    struct qed_mcp_link_state {
    --
    2.14.1
    \
     
     \ /
      Last update: 2018-03-19 22:52    [W:4.356 / U:0.572 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site