Lines Matching defs:ftrp
865 static u64 arm64_ftr_set_value(const struct arm64_ftr_bits *ftrp, s64 reg,
868 u64 mask = arm64_ftr_mask(ftrp);
871 reg |= (ftr_val << ftrp->shift) & mask;
875 s64 arm64_ftr_safe_value(const struct arm64_ftr_bits *ftrp, s64 new,
880 switch (ftrp->type) {
882 ret = ftrp->safe_val;
964 const struct arm64_ftr_bits *ftrp;
970 for (ftrp = reg->ftr_bits; ftrp->width; ftrp++) {
971 u64 ftr_mask = arm64_ftr_mask(ftrp);
972 s64 ftr_new = arm64_ftr_value(ftrp, new);
973 s64 ftr_ovr = arm64_ftr_value(ftrp, reg->override->val);
976 s64 tmp = arm64_ftr_safe_value(ftrp, ftr_ovr, ftr_new);
997 ftrp->shift + ftrp->width - 1,
998 ftrp->shift, str,
999 tmp & (BIT(ftrp->width) - 1));
1004 ftrp->shift + ftrp->width - 1,
1005 ftrp->shift);
1008 val = arm64_ftr_set_value(ftrp, val, ftr_new);
1011 if (!ftrp->strict)
1013 if (ftrp->visible)
1016 reg->user_val = arm64_ftr_set_value(ftrp,
1018 ftrp->safe_val);
1169 const struct arm64_ftr_bits *ftrp;
1171 for (ftrp = reg->ftr_bits; ftrp->width; ftrp++) {
1172 s64 ftr_cur = arm64_ftr_value(ftrp, reg->sys_val);
1173 s64 ftr_new = arm64_ftr_value(ftrp, new);
1178 ftr_new = arm64_ftr_safe_value(ftrp, ftr_new, ftr_cur);
1179 reg->sys_val = arm64_ftr_set_value(ftrp, reg->sys_val, ftr_new);
1201 const struct arm64_ftr_bits *ftrp;
1207 for (ftrp = regp->ftr_bits; ftrp->width; ftrp++) {
1208 if (ftrp->shift == field) {
1209 regp->strict_mask &= ~arm64_ftr_mask(ftrp);
1215 WARN_ON(!ftrp->width);