static void mct_SendMrsCmd(struct DCTStatStruc *pDCTstat, u8 dct, u32 EMRS) { u32 dev = pDCTstat->dev_dct; u32 val; printk(BIOS_DEBUG, "%s: Start\n", __func__); val = Get_NB32_DCT(dev, dct, 0x7c); val &= ~0x00ffffff; val |= EMRS; val |= 1 << SendMrsCmd; Set_NB32_DCT(dev, dct, 0x7c, val); do { val = Get_NB32_DCT(dev, dct, 0x7c); } while (val & (1 << SendMrsCmd)); printk(BIOS_DEBUG, "%s: Done\n", __func__); }
static void mct_setMaxRdLatTrnVal_D(struct DCTStatStruc *pDCTstat, u8 Channel, u16 MaxRdLatVal) { u8 i; u32 reg; u32 dev; u32 val; if (pDCTstat->GangedMode) { Channel = 0; /* for safe */ for (i = 0; i < 2; i++) pDCTstat->CH_MaxRdLat[i][0] = MaxRdLatVal; } else { pDCTstat->CH_MaxRdLat[Channel][0] = MaxRdLatVal; } dev = pDCTstat->dev_dct; reg = 0x78; val = Get_NB32_DCT(dev, Channel, reg); val &= ~(0x3ff<<22); val |= MaxRdLatVal<<22; /* program MaxRdLatency to correspond with current delay */ Set_NB32_DCT(dev, Channel, reg, val); }