REV
FPU_div(REV | DEST_RM, FPU_rm, control_word);
if (FPU_sub(REV | DEST_RM, FPU_rm, control_word) >= 0)
if (FPU_div(REV | DEST_RM, FPU_rm, control_word) >= 0)
FPU_sub(REV, FPU_rm, control_word);
FPU_div(REV, FPU_rm, control_word);
FPU_sub(REV | DEST_RM, FPU_rm, control_word);
FPU_sub(REV | LOADED | loaded_tag,
FPU_div(REV | LOADED | loaded_tag,
FPU_sub(REV | LOADED | TAG_Valid,
FPU_sub(REV | LOADED | TAG_Valid, (int)&CONST_PI2,
if (flags & REV) {
if (flags & REV) {
(flags & REV) ? st0_ptr : &st(rm));
(flags & REV) ? st0_ptr : &st(rm));
if (flags & REV) {
#define GET_REV(b) GET_GLOBAL_REG(REV, (b))
#define GET_MAJOR(b) GET_GLOBAL_FIELD(b, REV, MAJOR)
#define GET_MINOR(b) GET_GLOBAL_FIELD(b, REV, MINOR)
deb_info("Revision: 0x%1x, Layer: 0x%1x.\n",v.REVID_e0.REV,v.REVID_e0.LAYER);
if ((v.REVID_e0.REV != 0x1 && v.REVID_e0.LAYER != 0xb) && /* cold */
(v.REVID_e0.REV != 0x8 && v.REVID_e0.LAYER != 0x0)) /* warm */
info("Revision: 0x%1x, Layer: 0x%1x.",v.REVID_e0.REV,v.REVID_e0.LAYER);
u8 REV :4;
#define LN_PINS(REV, ID) \
LN_PIN(REV, ID##_BCLK), LN_PIN(REV, ID##_LRCLK), \
LN_PIN(REV, ID##_RXDAT), LN_PIN(REV, ID##_TXDAT)
#define LN_AIF_PINS(REV, ID) \
LOCHNAGAR##REV##_PIN_##ID##_BCLK, \
LOCHNAGAR##REV##_PIN_##ID##_LRCLK, \
LOCHNAGAR##REV##_PIN_##ID##_TXDAT, \
LOCHNAGAR##REV##_PIN_##ID##_RXDAT,
#define LN_FUNC_PIN(REV, ID, OP) \
LN_FUNC(lochnagar##REV##_##ID##_pin.name, PIN, OP)
#define LN_FUNC_AIF(REV, ID, OP) \
LN_FUNC(lochnagar##REV##_##ID##_aif.name, AIF, OP)
#define LN_PIN_GPIO(REV, ID, NAME, REG, SHIFT, INVERT) \
static const struct lochnagar_pin lochnagar##REV##_##ID##_pin = { \
.name = NAME, .type = LN_PTYPE_GPIO, .reg = LOCHNAGAR##REV##_##REG, \
.shift = LOCHNAGAR##REV##_##SHIFT##_SHIFT, .invert = INVERT, \
#define LN_PIN_SAIF(REV, ID, NAME) \
static const struct lochnagar_pin lochnagar##REV##_##ID##_pin = \
#define LN_GROUP_PIN(REV, ID) { \
.name = lochnagar##REV##_##ID##_pin.name, \
.pins = &lochnagar##REV##_pins[LOCHNAGAR##REV##_PIN_##ID].number, \
.priv = &lochnagar##REV##_pins[LOCHNAGAR##REV##_PIN_##ID], \
#define LN_GROUP_AIF(REV, ID) { \
.name = lochnagar##REV##_##ID##_aif.name, \
.pins = lochnagar##REV##_##ID##_aif.pins, \
.npins = ARRAY_SIZE(lochnagar##REV##_##ID##_aif.pins), \
.priv = &lochnagar##REV##_##ID##_aif, \
#define LN_PIN_AIF(REV, ID) \
LN_PIN_SAIF(REV, ID##_BCLK, LN_##ID##_STR"-bclk"); \
LN_PIN_SAIF(REV, ID##_LRCLK, LN_##ID##_STR"-lrclk"); \
LN_PIN_SAIF(REV, ID##_RXDAT, LN_##ID##_STR"-rxdat"); \
LN_PIN_SAIF(REV, ID##_TXDAT, LN_##ID##_STR"-txdat")
#define LN_PIN(REV, ID) [LOCHNAGAR##REV##_PIN_##ID] = { \
.number = LOCHNAGAR##REV##_PIN_##ID, \
.name = lochnagar##REV##_##ID##_pin.name, \
.drv_data = (void *)&lochnagar##REV##_##ID##_pin, \
u64 rev_data[MLNX_MFG_VAL_QWORD_CNT(REV) + 1] = { 0 };
for (word = 0; word < MLNX_MFG_VAL_QWORD_CNT(REV); word++) {
u64 rev[MLNX_MFG_VAL_QWORD_CNT(REV)] = { 0 };
for (word = 0; word < MLNX_MFG_VAL_QWORD_CNT(REV); word++) {
rev = GETPORT(REV);
GETPORT(REV) & 0x7,
#define UNICODE_AGE(MAJ,MIN,REV) \
((unsigned int)(REV)))
#define UNICODE_AGE(MAJ, MIN, REV) \
((unsigned int)(REV)))