Lines Matching refs:features

2144 static int query_cpu_subfunc(S390FeatBitmap features)  in query_cpu_subfunc()  argument
2163 s390_add_from_feat_block(features, S390_FEAT_TYPE_PLO, prop.plo); in query_cpu_subfunc()
2164 if (test_bit(S390_FEAT_TOD_CLOCK_STEERING, features)) { in query_cpu_subfunc()
2165 s390_add_from_feat_block(features, S390_FEAT_TYPE_PTFF, prop.ptff); in query_cpu_subfunc()
2167 if (test_bit(S390_FEAT_MSA, features)) { in query_cpu_subfunc()
2168 s390_add_from_feat_block(features, S390_FEAT_TYPE_KMAC, prop.kmac); in query_cpu_subfunc()
2169 s390_add_from_feat_block(features, S390_FEAT_TYPE_KMC, prop.kmc); in query_cpu_subfunc()
2170 s390_add_from_feat_block(features, S390_FEAT_TYPE_KM, prop.km); in query_cpu_subfunc()
2171 s390_add_from_feat_block(features, S390_FEAT_TYPE_KIMD, prop.kimd); in query_cpu_subfunc()
2172 s390_add_from_feat_block(features, S390_FEAT_TYPE_KLMD, prop.klmd); in query_cpu_subfunc()
2174 if (test_bit(S390_FEAT_MSA_EXT_3, features)) { in query_cpu_subfunc()
2175 s390_add_from_feat_block(features, S390_FEAT_TYPE_PCKMO, prop.pckmo); in query_cpu_subfunc()
2177 if (test_bit(S390_FEAT_MSA_EXT_4, features)) { in query_cpu_subfunc()
2178 s390_add_from_feat_block(features, S390_FEAT_TYPE_KMCTR, prop.kmctr); in query_cpu_subfunc()
2179 s390_add_from_feat_block(features, S390_FEAT_TYPE_KMF, prop.kmf); in query_cpu_subfunc()
2180 s390_add_from_feat_block(features, S390_FEAT_TYPE_KMO, prop.kmo); in query_cpu_subfunc()
2181 s390_add_from_feat_block(features, S390_FEAT_TYPE_PCC, prop.pcc); in query_cpu_subfunc()
2183 if (test_bit(S390_FEAT_MSA_EXT_5, features)) { in query_cpu_subfunc()
2184 s390_add_from_feat_block(features, S390_FEAT_TYPE_PPNO, prop.ppno); in query_cpu_subfunc()
2186 if (test_bit(S390_FEAT_MSA_EXT_8, features)) { in query_cpu_subfunc()
2187 s390_add_from_feat_block(features, S390_FEAT_TYPE_KMA, prop.kma); in query_cpu_subfunc()
2189 if (test_bit(S390_FEAT_MSA_EXT_9, features)) { in query_cpu_subfunc()
2190 s390_add_from_feat_block(features, S390_FEAT_TYPE_KDSA, prop.kdsa); in query_cpu_subfunc()
2192 if (test_bit(S390_FEAT_ESORT_BASE, features)) { in query_cpu_subfunc()
2193 s390_add_from_feat_block(features, S390_FEAT_TYPE_SORTL, prop.sortl); in query_cpu_subfunc()
2195 if (test_bit(S390_FEAT_DEFLATE_BASE, features)) { in query_cpu_subfunc()
2196 s390_add_from_feat_block(features, S390_FEAT_TYPE_DFLTCC, prop.dfltcc); in query_cpu_subfunc()
2201 static int configure_cpu_subfunc(const S390FeatBitmap features) in configure_cpu_subfunc() argument
2216 s390_fill_feat_block(features, S390_FEAT_TYPE_PLO, prop.plo); in configure_cpu_subfunc()
2217 if (test_bit(S390_FEAT_TOD_CLOCK_STEERING, features)) { in configure_cpu_subfunc()
2218 s390_fill_feat_block(features, S390_FEAT_TYPE_PTFF, prop.ptff); in configure_cpu_subfunc()
2220 if (test_bit(S390_FEAT_MSA, features)) { in configure_cpu_subfunc()
2221 s390_fill_feat_block(features, S390_FEAT_TYPE_KMAC, prop.kmac); in configure_cpu_subfunc()
2222 s390_fill_feat_block(features, S390_FEAT_TYPE_KMC, prop.kmc); in configure_cpu_subfunc()
2223 s390_fill_feat_block(features, S390_FEAT_TYPE_KM, prop.km); in configure_cpu_subfunc()
2224 s390_fill_feat_block(features, S390_FEAT_TYPE_KIMD, prop.kimd); in configure_cpu_subfunc()
2225 s390_fill_feat_block(features, S390_FEAT_TYPE_KLMD, prop.klmd); in configure_cpu_subfunc()
2227 if (test_bit(S390_FEAT_MSA_EXT_3, features)) { in configure_cpu_subfunc()
2228 s390_fill_feat_block(features, S390_FEAT_TYPE_PCKMO, prop.pckmo); in configure_cpu_subfunc()
2230 if (test_bit(S390_FEAT_MSA_EXT_4, features)) { in configure_cpu_subfunc()
2231 s390_fill_feat_block(features, S390_FEAT_TYPE_KMCTR, prop.kmctr); in configure_cpu_subfunc()
2232 s390_fill_feat_block(features, S390_FEAT_TYPE_KMF, prop.kmf); in configure_cpu_subfunc()
2233 s390_fill_feat_block(features, S390_FEAT_TYPE_KMO, prop.kmo); in configure_cpu_subfunc()
2234 s390_fill_feat_block(features, S390_FEAT_TYPE_PCC, prop.pcc); in configure_cpu_subfunc()
2236 if (test_bit(S390_FEAT_MSA_EXT_5, features)) { in configure_cpu_subfunc()
2237 s390_fill_feat_block(features, S390_FEAT_TYPE_PPNO, prop.ppno); in configure_cpu_subfunc()
2239 if (test_bit(S390_FEAT_MSA_EXT_8, features)) { in configure_cpu_subfunc()
2240 s390_fill_feat_block(features, S390_FEAT_TYPE_KMA, prop.kma); in configure_cpu_subfunc()
2242 if (test_bit(S390_FEAT_MSA_EXT_9, features)) { in configure_cpu_subfunc()
2243 s390_fill_feat_block(features, S390_FEAT_TYPE_KDSA, prop.kdsa); in configure_cpu_subfunc()
2245 if (test_bit(S390_FEAT_ESORT_BASE, features)) { in configure_cpu_subfunc()
2246 s390_fill_feat_block(features, S390_FEAT_TYPE_SORTL, prop.sortl); in configure_cpu_subfunc()
2248 if (test_bit(S390_FEAT_DEFLATE_BASE, features)) { in configure_cpu_subfunc()
2249 s390_fill_feat_block(features, S390_FEAT_TYPE_DFLTCC, prop.dfltcc); in configure_cpu_subfunc()
2260 static bool ap_enabled(const S390FeatBitmap features) in ap_enabled() argument
2262 return test_bit(S390_FEAT_AP, features); in ap_enabled()
2271 static int query_uv_feat_guest(S390FeatBitmap features) in query_uv_feat_guest() argument
2292 set_bit(S390_FEAT_UV_FEAT_AP, features); in query_uv_feat_guest()
2295 set_bit(S390_FEAT_UV_FEAT_AP_INTR, features); in query_uv_feat_guest()
2318 static int query_cpu_feat(S390FeatBitmap features) in query_cpu_feat() argument
2336 set_bit(kvm_to_feat[i][1], features); in query_cpu_feat()
2342 static int configure_cpu_feat(const S390FeatBitmap features) in configure_cpu_feat() argument
2353 if (test_bit(kvm_to_feat[i][1], features)) { in configure_cpu_feat()
2413 s390_add_from_feat_block(model->features, S390_FEAT_TYPE_STFL, in kvm_s390_get_host_cpu_model()
2416 if (test_bit(S390_FEAT_STFLE, model->features)) { in kvm_s390_get_host_cpu_model()
2417 set_bit(S390_FEAT_DAT_ENH_2, model->features); in kvm_s390_get_host_cpu_model()
2420 rc = query_cpu_feat(model->features); in kvm_s390_get_host_cpu_model()
2426 rc = query_cpu_subfunc(model->features); in kvm_s390_get_host_cpu_model()
2433 if (!test_bit(S390_FEAT_MULTIPLE_EPOCH, model->features)) { in kvm_s390_get_host_cpu_model()
2434 clear_bit(S390_FEAT_PTFF_QSIE, model->features); in kvm_s390_get_host_cpu_model()
2435 clear_bit(S390_FEAT_PTFF_QTOUE, model->features); in kvm_s390_get_host_cpu_model()
2436 clear_bit(S390_FEAT_PTFF_STOE, model->features); in kvm_s390_get_host_cpu_model()
2437 clear_bit(S390_FEAT_PTFF_STOUE, model->features); in kvm_s390_get_host_cpu_model()
2442 set_bit(S390_FEAT_CMM, model->features); in kvm_s390_get_host_cpu_model()
2445 clear_bit(S390_FEAT_CMM_NT, model->features); in kvm_s390_get_host_cpu_model()
2450 clear_bit(S390_FEAT_BPB, model->features); in kvm_s390_get_host_cpu_model()
2458 set_bit(S390_FEAT_UNPACK, model->features); in kvm_s390_get_host_cpu_model()
2466 set_bit(S390_FEAT_CONFIGURATION_TOPOLOGY, model->features); in kvm_s390_get_host_cpu_model()
2470 set_bit(S390_FEAT_ZPCI, model->features); in kvm_s390_get_host_cpu_model()
2471 set_bit(S390_FEAT_ADAPTER_EVENT_NOTIFICATION, model->features); in kvm_s390_get_host_cpu_model()
2481 model->features); in kvm_s390_get_host_cpu_model()
2489 set_bit(S390_FEAT_AP, model->features); in kvm_s390_get_host_cpu_model()
2497 set_bit(S390_FEAT_EXTENDED_LENGTH_SCCB, model->features); in kvm_s390_get_host_cpu_model()
2500 set_bit(S390_FEAT_DIAG_318, model->features); in kvm_s390_get_host_cpu_model()
2504 query_uv_feat_guest(model->features); in kvm_s390_get_host_cpu_model()
2507 bitmap_and(model->features, model->features, model->def->full_feat, in kvm_s390_get_host_cpu_model()
2512 static int configure_uv_feat_guest(const S390FeatBitmap features) in configure_uv_feat_guest() argument
2522 if (!(uv_feat_supported() && ap_enabled(features))) { in configure_uv_feat_guest()
2526 if (test_bit(S390_FEAT_UV_FEAT_AP, features)) { in configure_uv_feat_guest()
2529 if (test_bit(S390_FEAT_UV_FEAT_AP_INTR, features)) { in configure_uv_feat_guest()
2572 s390_fill_feat_block(model->features, S390_FEAT_TYPE_STFL, in kvm_s390_apply_cpu_model()
2580 rc = configure_cpu_feat(model->features); in kvm_s390_apply_cpu_model()
2586 rc = configure_cpu_subfunc(model->features); in kvm_s390_apply_cpu_model()
2592 if (test_bit(S390_FEAT_CMM, model->features)) { in kvm_s390_apply_cpu_model()
2596 if (ap_enabled(model->features)) { in kvm_s390_apply_cpu_model()
2601 rc = configure_uv_feat_guest(model->features); in kvm_s390_apply_cpu_model()