Skip to content

Commit

Permalink
NTB: return the side info status from amd_poll_link
Browse files Browse the repository at this point in the history
Bit 1 of SIDE_INFO register is an indication that
the driver on the other side of link is ready. We
set this bit during driver initialization sequence.
So rather than having separate macros to return the
status, we can simply return the status of this bit
from amd_poll_link(). So a return of 1 or 0 from
this function will indicate to the caller whether
the driver on the other side of link is ready or not,
respectively.

Signed-off-by: Arindam Nath <arindam.nath@amd.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
  • Loading branch information
Arindam Nath authored and Jon Mason committed Mar 13, 2020
1 parent 5c6404d commit 5cafa48
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 8 deletions.
11 changes: 5 additions & 6 deletions drivers/ntb/hw/amd/ntb_hw_amd.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ static int amd_ntb_get_link_status(struct amd_ntb_dev *ndev)
static int amd_link_is_up(struct amd_ntb_dev *ndev)
{
if (!ndev->peer_sta)
return NTB_LNK_STA_ACTIVE(ndev->cntl_sta);
return ndev->cntl_sta;

if (ndev->peer_sta & AMD_LINK_UP_EVENT) {
ndev->peer_sta = 0;
Expand Down Expand Up @@ -896,16 +896,15 @@ static int amd_poll_link(struct amd_ntb_dev *ndev)
u32 reg;

reg = readl(mmio + AMD_SIDEINFO_OFFSET);
reg &= NTB_LIN_STA_ACTIVE_BIT;
reg &= AMD_SIDE_READY;

dev_dbg(&ndev->ntb.pdev->dev, "%s: reg_val = 0x%x.\n", __func__, reg);

if (reg == ndev->cntl_sta)
return 0;

ndev->cntl_sta = reg;

return amd_ntb_get_link_status(ndev);
amd_ntb_get_link_status(ndev);

return ndev->cntl_sta;
}

static void amd_link_hb(struct work_struct *work)
Expand Down
2 changes: 0 additions & 2 deletions drivers/ntb/hw/amd/ntb_hw_amd.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,8 @@
#include <linux/pci.h>

#define AMD_LINK_HB_TIMEOUT msecs_to_jiffies(1000)
#define NTB_LIN_STA_ACTIVE_BIT 0x00000002
#define NTB_LNK_STA_SPEED_MASK 0x000F0000
#define NTB_LNK_STA_WIDTH_MASK 0x03F00000
#define NTB_LNK_STA_ACTIVE(x) (!!((x) & NTB_LIN_STA_ACTIVE_BIT))
#define NTB_LNK_STA_SPEED(x) (((x) & NTB_LNK_STA_SPEED_MASK) >> 16)
#define NTB_LNK_STA_WIDTH(x) (((x) & NTB_LNK_STA_WIDTH_MASK) >> 20)

Expand Down

0 comments on commit 5cafa48

Please sign in to comment.