~ubuntu-branches/ubuntu/quantal/linux-linaro-mx51/quantal

« back to all changes in this revision

Viewing changes to drivers/infiniband/hw/qib/qib_iba7322.c

  • Committer: Package Import Robot
  • Author(s): John Rigby, John Rigby
  • Date: 2011-09-26 10:44:23 UTC
  • Revision ID: package-import@ubuntu.com-20110926104423-3o58a3c1bj7x00rs
Tags: 3.0.0-1007.9
[ John Rigby ]

Enable crypto modules and remove crypto-modules from
exclude-module files
LP: #826021

Show diffs side-by-side

added added

removed removed

Lines of Context:
469
469
#define IB_7322_LT_STATE_RECOVERIDLE     0x0f
470
470
#define IB_7322_LT_STATE_CFGENH          0x10
471
471
#define IB_7322_LT_STATE_CFGTEST         0x11
 
472
#define IB_7322_LT_STATE_CFGWAITRMTTEST  0x12
 
473
#define IB_7322_LT_STATE_CFGWAITENH      0x13
472
474
 
473
475
/* link state machine states from IBC */
474
476
#define IB_7322_L_STATE_DOWN             0x0
498
500
                IB_PHYSPORTSTATE_LINK_ERR_RECOVER,
499
501
        [IB_7322_LT_STATE_CFGENH] = IB_PHYSPORTSTATE_CFG_ENH,
500
502
        [IB_7322_LT_STATE_CFGTEST] = IB_PHYSPORTSTATE_CFG_TRAIN,
501
 
        [0x12] = IB_PHYSPORTSTATE_CFG_TRAIN,
502
 
        [0x13] = IB_PHYSPORTSTATE_CFG_WAIT_ENH,
 
503
        [IB_7322_LT_STATE_CFGWAITRMTTEST] =
 
504
                IB_PHYSPORTSTATE_CFG_TRAIN,
 
505
        [IB_7322_LT_STATE_CFGWAITENH] =
 
506
                IB_PHYSPORTSTATE_CFG_WAIT_ENH,
503
507
        [0x14] = IB_PHYSPORTSTATE_CFG_TRAIN,
504
508
        [0x15] = IB_PHYSPORTSTATE_CFG_TRAIN,
505
509
        [0x16] = IB_PHYSPORTSTATE_CFG_TRAIN,
1692
1696
                break;
1693
1697
        }
1694
1698
 
1695
 
        if (ibclt == IB_7322_LT_STATE_CFGTEST &&
 
1699
        if (((ibclt >= IB_7322_LT_STATE_CFGTEST &&
 
1700
              ibclt <= IB_7322_LT_STATE_CFGWAITENH) ||
 
1701
             ibclt == IB_7322_LT_STATE_LINKUP) &&
1696
1702
            (ibcst & SYM_MASK(IBCStatusA_0, LinkSpeedQDR))) {
1697
1703
                force_h1(ppd);
1698
1704
                ppd->cpspec->qdr_reforce = 1;
7301
7307
static void serdes_7322_los_enable(struct qib_pportdata *ppd, int enable)
7302
7308
{
7303
7309
        u64 data = qib_read_kreg_port(ppd, krp_serdesctrl);
7304
 
        printk(KERN_INFO QIB_DRV_NAME " IB%u:%u Turning LOS %s\n",
7305
 
                ppd->dd->unit, ppd->port, (enable ? "on" : "off"));
7306
 
        if (enable)
 
7310
        u8 state = SYM_FIELD(data, IBSerdesCtrl_0, RXLOSEN);
 
7311
 
 
7312
        if (enable && !state) {
 
7313
                printk(KERN_INFO QIB_DRV_NAME " IB%u:%u Turning LOS on\n",
 
7314
                        ppd->dd->unit, ppd->port);
7307
7315
                data |= SYM_MASK(IBSerdesCtrl_0, RXLOSEN);
7308
 
        else
 
7316
        } else if (!enable && state) {
 
7317
                printk(KERN_INFO QIB_DRV_NAME " IB%u:%u Turning LOS off\n",
 
7318
                        ppd->dd->unit, ppd->port);
7309
7319
                data &= ~SYM_MASK(IBSerdesCtrl_0, RXLOSEN);
 
7320
        }
7310
7321
        qib_write_kreg_port(ppd, krp_serdesctrl, data);
7311
7322
}
7312
7323
 
7534
7545
        ibsd_wr_allchans(ppd, 4, (1 << 10), BMASK(10, 10));
7535
7546
        tstart = get_jiffies_64();
7536
7547
        while (chan_done &&
7537
 
               !time_after64(tstart, tstart + msecs_to_jiffies(500))) {
 
7548
               !time_after64(get_jiffies_64(),
 
7549
                        tstart + msecs_to_jiffies(500))) {
7538
7550
                msleep(20);
7539
7551
                for (chan = 0; chan < SERDES_CHANS; ++chan) {
7540
7552
                        rxcaldone = ahb_mod(ppd->dd, IBSD(ppd->hw_pidx),