EXTRACT_BITS
fn->max_afu_index = EXTRACT_BITS(val, 24, 29);
*len = EXTRACT_BITS(val32, 16, 31);
major = EXTRACT_BITS(val32, 8, 15);
minor = EXTRACT_BITS(val32, 0, 7);
afu->global_mmio_bar = EXTRACT_BITS(val, 0, 2);
afu->global_mmio_offset = EXTRACT_BITS(val, 16, 31) << 16;
afu->pp_mmio_bar = EXTRACT_BITS(val, 0, 2);
afu->pp_mmio_offset = EXTRACT_BITS(val, 16, 31) << 16;
afu->pasid_supported_log = EXTRACT_BITS(val8, 0, 4);
afu->actag_supported = EXTRACT_BITS(val16, 0, 11);
val32 = EXTRACT_BITS(val32, 0, 7);
afu->version_major = EXTRACT_BITS(val32, 24, 31);
afu->version_minor = EXTRACT_BITS(val32, 16, 23);
afu->afuc_type = EXTRACT_BITS(val32, 14, 15);
afu->afum_type = EXTRACT_BITS(val32, 12, 13);
afu->profile = EXTRACT_BITS(val32, 0, 7);
fn->max_pasid_log = EXTRACT_BITS(val, 8, 12);
*result = EXTRACT_BITS(temp, lbn, width);
return EXTRACT_BITS(le32_to_cpu(dword.u32[0]), lbn, width);