/drivers/ptp/

e_oword(const ef4_oword_t *a, const ef4_oword_t *b, const ef4_oword_t *mask) { return ((a->u64[0] ^ b->u64[0]) & mask->u64[0]) || ((a->u64[1] ^ b->u64[1]) & mask->u64[1]); } int ef4_farch_test_registers(struct ef4_nic *efx, const struct ef4_farch_register_test *regs, size_t n_regs) { unsigned address = 0; int i, j; ef4_oword_t mask, imask, original, reg, buf; for (i = 0; i < n_regs; ++i) { address = regs[i].address; mask = imask = regs[i].mask; EF4_INVERT_OWORD(imask); ef4_reado(efx, &original, address); /* bit sweep on and off */ for (j = 0; j < 128; j++) { if (!EF4_EXTRACT_OWORD32(mask, j, j)) continue; /* Test this testable bit can be set in isolation */ EF4_AND_OWORD(reg, original, mask); EF4_SET_OWORD32(reg, j, j,