mirror of https://gitee.com/openkylin/linux.git
IB/qib: Eliminate 64-bit jiffies use
The qib driver makes use of the the 64-bit jiffies API. Code inspection reveals that that version of the API is not really required. This patch converts to use the "normal" jiffies. Reviewed-by: Ram Vepa <ram.vepa@qlogic.com> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
parent
865b64be86
commit
8482d5d1bc
|
@ -97,7 +97,7 @@ struct qib_chippport_specific {
|
||||||
u64 iblnkerrsnap;
|
u64 iblnkerrsnap;
|
||||||
u64 ibcctrl; /* kr_ibcctrl shadow */
|
u64 ibcctrl; /* kr_ibcctrl shadow */
|
||||||
u64 ibcddrctrl; /* kr_ibcddrctrl shadow */
|
u64 ibcddrctrl; /* kr_ibcddrctrl shadow */
|
||||||
u64 chase_end;
|
unsigned long chase_end;
|
||||||
u32 last_delay_mult;
|
u32 last_delay_mult;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1051,7 +1051,7 @@ static void reenable_7220_chase(unsigned long opaque)
|
||||||
static void handle_7220_chase(struct qib_pportdata *ppd, u64 ibcst)
|
static void handle_7220_chase(struct qib_pportdata *ppd, u64 ibcst)
|
||||||
{
|
{
|
||||||
u8 ibclt;
|
u8 ibclt;
|
||||||
u64 tnow;
|
unsigned long tnow;
|
||||||
|
|
||||||
ibclt = (u8)SYM_FIELD(ibcst, IBCStatus, LinkTrainingState);
|
ibclt = (u8)SYM_FIELD(ibcst, IBCStatus, LinkTrainingState);
|
||||||
|
|
||||||
|
@ -1066,9 +1066,9 @@ static void handle_7220_chase(struct qib_pportdata *ppd, u64 ibcst)
|
||||||
case IB_7220_LT_STATE_CFGWAITRMT:
|
case IB_7220_LT_STATE_CFGWAITRMT:
|
||||||
case IB_7220_LT_STATE_TXREVLANES:
|
case IB_7220_LT_STATE_TXREVLANES:
|
||||||
case IB_7220_LT_STATE_CFGENH:
|
case IB_7220_LT_STATE_CFGENH:
|
||||||
tnow = get_jiffies_64();
|
tnow = jiffies;
|
||||||
if (ppd->cpspec->chase_end &&
|
if (ppd->cpspec->chase_end &&
|
||||||
time_after64(tnow, ppd->cpspec->chase_end)) {
|
time_after(tnow, ppd->cpspec->chase_end)) {
|
||||||
ppd->cpspec->chase_end = 0;
|
ppd->cpspec->chase_end = 0;
|
||||||
qib_set_ib_7220_lstate(ppd,
|
qib_set_ib_7220_lstate(ppd,
|
||||||
QLOGIC_IB_IBCC_LINKCMD_DOWN,
|
QLOGIC_IB_IBCC_LINKCMD_DOWN,
|
||||||
|
|
|
@ -615,8 +615,8 @@ struct qib_chippport_specific {
|
||||||
u64 ibmalfsnap;
|
u64 ibmalfsnap;
|
||||||
u64 ibcctrl_a; /* krp_ibcctrl_a shadow */
|
u64 ibcctrl_a; /* krp_ibcctrl_a shadow */
|
||||||
u64 ibcctrl_b; /* krp_ibcctrl_b shadow */
|
u64 ibcctrl_b; /* krp_ibcctrl_b shadow */
|
||||||
u64 qdr_dfe_time;
|
unsigned long qdr_dfe_time;
|
||||||
u64 chase_end;
|
unsigned long chase_end;
|
||||||
u32 autoneg_tries;
|
u32 autoneg_tries;
|
||||||
u32 recovery_init;
|
u32 recovery_init;
|
||||||
u32 qdr_dfe_on;
|
u32 qdr_dfe_on;
|
||||||
|
@ -1672,7 +1672,8 @@ static void reenable_chase(unsigned long opaque)
|
||||||
QLOGIC_IB_IBCC_LINKINITCMD_POLL);
|
QLOGIC_IB_IBCC_LINKINITCMD_POLL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void disable_chase(struct qib_pportdata *ppd, u64 tnow, u8 ibclt)
|
static void disable_chase(struct qib_pportdata *ppd, unsigned long tnow,
|
||||||
|
u8 ibclt)
|
||||||
{
|
{
|
||||||
ppd->cpspec->chase_end = 0;
|
ppd->cpspec->chase_end = 0;
|
||||||
|
|
||||||
|
@ -1688,7 +1689,7 @@ static void disable_chase(struct qib_pportdata *ppd, u64 tnow, u8 ibclt)
|
||||||
static void handle_serdes_issues(struct qib_pportdata *ppd, u64 ibcst)
|
static void handle_serdes_issues(struct qib_pportdata *ppd, u64 ibcst)
|
||||||
{
|
{
|
||||||
u8 ibclt;
|
u8 ibclt;
|
||||||
u64 tnow;
|
unsigned long tnow;
|
||||||
|
|
||||||
ibclt = (u8)SYM_FIELD(ibcst, IBCStatusA_0, LinkTrainingState);
|
ibclt = (u8)SYM_FIELD(ibcst, IBCStatusA_0, LinkTrainingState);
|
||||||
|
|
||||||
|
@ -1703,9 +1704,9 @@ static void handle_serdes_issues(struct qib_pportdata *ppd, u64 ibcst)
|
||||||
case IB_7322_LT_STATE_CFGWAITRMT:
|
case IB_7322_LT_STATE_CFGWAITRMT:
|
||||||
case IB_7322_LT_STATE_TXREVLANES:
|
case IB_7322_LT_STATE_TXREVLANES:
|
||||||
case IB_7322_LT_STATE_CFGENH:
|
case IB_7322_LT_STATE_CFGENH:
|
||||||
tnow = get_jiffies_64();
|
tnow = jiffies;
|
||||||
if (ppd->cpspec->chase_end &&
|
if (ppd->cpspec->chase_end &&
|
||||||
time_after64(tnow, ppd->cpspec->chase_end))
|
time_after(tnow, ppd->cpspec->chase_end))
|
||||||
disable_chase(ppd, tnow, ibclt);
|
disable_chase(ppd, tnow, ibclt);
|
||||||
else if (!ppd->cpspec->chase_end)
|
else if (!ppd->cpspec->chase_end)
|
||||||
ppd->cpspec->chase_end = tnow + QIB_CHASE_TIME;
|
ppd->cpspec->chase_end = tnow + QIB_CHASE_TIME;
|
||||||
|
@ -2714,7 +2715,7 @@ static noinline void unknown_7322_gpio_intr(struct qib_devdata *dd)
|
||||||
pins >>= SYM_LSB(EXTStatus, GPIOIn);
|
pins >>= SYM_LSB(EXTStatus, GPIOIn);
|
||||||
if (!(pins & mask)) {
|
if (!(pins & mask)) {
|
||||||
++handled;
|
++handled;
|
||||||
qd->t_insert = get_jiffies_64();
|
qd->t_insert = jiffies;
|
||||||
queue_work(ib_wq, &qd->work);
|
queue_work(ib_wq, &qd->work);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4794,7 +4795,7 @@ static void qib_get_7322_faststats(unsigned long opaque)
|
||||||
(ppd->lflags & (QIBL_LINKINIT | QIBL_LINKARMED |
|
(ppd->lflags & (QIBL_LINKINIT | QIBL_LINKARMED |
|
||||||
QIBL_LINKACTIVE)) &&
|
QIBL_LINKACTIVE)) &&
|
||||||
ppd->cpspec->qdr_dfe_time &&
|
ppd->cpspec->qdr_dfe_time &&
|
||||||
time_after64(get_jiffies_64(), ppd->cpspec->qdr_dfe_time)) {
|
time_is_before_jiffies(ppd->cpspec->qdr_dfe_time)) {
|
||||||
ppd->cpspec->qdr_dfe_on = 0;
|
ppd->cpspec->qdr_dfe_on = 0;
|
||||||
|
|
||||||
qib_write_kreg_port(ppd, krp_static_adapt_dis(2),
|
qib_write_kreg_port(ppd, krp_static_adapt_dis(2),
|
||||||
|
@ -5240,7 +5241,7 @@ static int qib_7322_ib_updown(struct qib_pportdata *ppd, int ibup, u64 ibcs)
|
||||||
/* schedule the qsfp refresh which should turn the link
|
/* schedule the qsfp refresh which should turn the link
|
||||||
off */
|
off */
|
||||||
if (ppd->dd->flags & QIB_HAS_QSFP) {
|
if (ppd->dd->flags & QIB_HAS_QSFP) {
|
||||||
qd->t_insert = get_jiffies_64();
|
qd->t_insert = jiffies;
|
||||||
queue_work(ib_wq, &qd->work);
|
queue_work(ib_wq, &qd->work);
|
||||||
}
|
}
|
||||||
spin_lock_irqsave(&ppd->sdma_lock, flags);
|
spin_lock_irqsave(&ppd->sdma_lock, flags);
|
||||||
|
@ -5592,7 +5593,7 @@ static void qsfp_7322_event(struct work_struct *work)
|
||||||
{
|
{
|
||||||
struct qib_qsfp_data *qd;
|
struct qib_qsfp_data *qd;
|
||||||
struct qib_pportdata *ppd;
|
struct qib_pportdata *ppd;
|
||||||
u64 pwrup;
|
unsigned long pwrup;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int ret;
|
int ret;
|
||||||
u32 le2;
|
u32 le2;
|
||||||
|
@ -5620,8 +5621,7 @@ static void qsfp_7322_event(struct work_struct *work)
|
||||||
* to insertion.
|
* to insertion.
|
||||||
*/
|
*/
|
||||||
while (1) {
|
while (1) {
|
||||||
u64 now = get_jiffies_64();
|
if (time_is_before_jiffies(pwrup))
|
||||||
if (time_after64(now, pwrup))
|
|
||||||
break;
|
break;
|
||||||
msleep(20);
|
msleep(20);
|
||||||
}
|
}
|
||||||
|
@ -7506,7 +7506,7 @@ static int serdes_7322_init_old(struct qib_pportdata *ppd)
|
||||||
|
|
||||||
static int serdes_7322_init_new(struct qib_pportdata *ppd)
|
static int serdes_7322_init_new(struct qib_pportdata *ppd)
|
||||||
{
|
{
|
||||||
u64 tstart;
|
unsigned long tend;
|
||||||
u32 le_val, rxcaldone;
|
u32 le_val, rxcaldone;
|
||||||
int chan, chan_done = (1 << SERDES_CHANS) - 1;
|
int chan, chan_done = (1 << SERDES_CHANS) - 1;
|
||||||
|
|
||||||
|
@ -7611,10 +7611,8 @@ static int serdes_7322_init_new(struct qib_pportdata *ppd)
|
||||||
msleep(20);
|
msleep(20);
|
||||||
/* Start Calibration */
|
/* Start Calibration */
|
||||||
ibsd_wr_allchans(ppd, 4, (1 << 10), BMASK(10, 10));
|
ibsd_wr_allchans(ppd, 4, (1 << 10), BMASK(10, 10));
|
||||||
tstart = get_jiffies_64();
|
tend = jiffies + msecs_to_jiffies(500);
|
||||||
while (chan_done &&
|
while (chan_done && !time_is_before_jiffies(tend)) {
|
||||||
!time_after64(get_jiffies_64(),
|
|
||||||
tstart + msecs_to_jiffies(500))) {
|
|
||||||
msleep(20);
|
msleep(20);
|
||||||
for (chan = 0; chan < SERDES_CHANS; ++chan) {
|
for (chan = 0; chan < SERDES_CHANS; ++chan) {
|
||||||
rxcaldone = ahb_mod(ppd->dd, IBSD(ppd->hw_pidx),
|
rxcaldone = ahb_mod(ppd->dd, IBSD(ppd->hw_pidx),
|
||||||
|
|
|
@ -177,7 +177,7 @@ struct qib_qsfp_data {
|
||||||
struct qib_pportdata *ppd;
|
struct qib_pportdata *ppd;
|
||||||
struct work_struct work;
|
struct work_struct work;
|
||||||
struct qib_qsfp_cache cache;
|
struct qib_qsfp_cache cache;
|
||||||
u64 t_insert;
|
unsigned long t_insert;
|
||||||
u8 modpresent;
|
u8 modpresent;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue