Lines Matching refs:drc_index
334 static bool dlpar_cpu_exists(struct device_node *parent, u32 drc_index) in dlpar_cpu_exists() argument
350 if (my_drc_index == drc_index) { in dlpar_cpu_exists()
360 static bool drc_info_valid_index(struct device_node *parent, u32 drc_index) in drc_info_valid_index() argument
387 if (drc_index > drc.last_drc_index) in drc_info_valid_index()
392 if (drc_index == index) in drc_info_valid_index()
402 static bool valid_cpu_drc_index(struct device_node *parent, u32 drc_index) in valid_cpu_drc_index() argument
408 return drc_info_valid_index(parent, drc_index); in valid_cpu_drc_index()
424 if (drc == drc_index) in valid_cpu_drc_index()
431 static ssize_t dlpar_cpu_add(u32 drc_index) in dlpar_cpu_add() argument
436 pr_debug("Attempting to add CPU, drc index: %x\n", drc_index); in dlpar_cpu_add()
444 if (dlpar_cpu_exists(parent, drc_index)) { in dlpar_cpu_add()
446 pr_warn("CPU with drc index %x already exists\n", drc_index); in dlpar_cpu_add()
450 if (!valid_cpu_drc_index(parent, drc_index)) { in dlpar_cpu_add()
452 pr_warn("Cannot find CPU (drc index %x) to add.\n", drc_index); in dlpar_cpu_add()
456 rc = dlpar_acquire_drc(drc_index); in dlpar_cpu_add()
459 rc, drc_index); in dlpar_cpu_add()
464 dn = dlpar_configure_connector(cpu_to_be32(drc_index), parent); in dlpar_cpu_add()
467 drc_index); in dlpar_cpu_add()
468 dlpar_release_drc(drc_index); in dlpar_cpu_add()
481 dn, rc, drc_index); in dlpar_cpu_add()
483 rc = dlpar_release_drc(drc_index); in dlpar_cpu_add()
494 dn, rc, drc_index); in dlpar_cpu_add()
498 dlpar_release_drc(drc_index); in dlpar_cpu_add()
504 drc_index); in dlpar_cpu_add()
508 static ssize_t dlpar_cpu_remove(struct device_node *dn, u32 drc_index) in dlpar_cpu_remove() argument
513 dn, drc_index); in dlpar_cpu_remove()
521 rc = dlpar_release_drc(drc_index); in dlpar_cpu_remove()
524 drc_index, dn, rc); in dlpar_cpu_remove()
535 rc = dlpar_acquire_drc(drc_index); in dlpar_cpu_remove()
542 pr_debug("Successfully removed CPU, drc index: %x\n", drc_index); in dlpar_cpu_remove()
546 static struct device_node *cpu_drc_index_to_dn(u32 drc_index) in cpu_drc_index_to_dn() argument
557 if (my_index == drc_index) in cpu_drc_index_to_dn()
564 static int dlpar_cpu_remove_by_index(u32 drc_index) in dlpar_cpu_remove_by_index() argument
569 dn = cpu_drc_index_to_dn(drc_index); in dlpar_cpu_remove_by_index()
572 drc_index); in dlpar_cpu_remove_by_index()
576 rc = dlpar_cpu_remove(dn, drc_index); in dlpar_cpu_remove_by_index()
669 u32 count, drc_index; in find_drc_info_cpus_to_add() local
685 drc_index = drc.drc_index_start; in find_drc_info_cpus_to_add()
687 if (dlpar_cpu_exists(cpus, drc_index)) in find_drc_info_cpus_to_add()
690 cpu_drcs[cpus_found++] = drc_index; in find_drc_info_cpus_to_add()
695 drc_index += drc.sequential_inc; in find_drc_info_cpus_to_add()
707 u32 drc_index; in find_drc_index_cpus_to_add() local
717 index++, &drc_index); in find_drc_index_cpus_to_add()
722 if (dlpar_cpu_exists(cpus, drc_index)) in find_drc_index_cpus_to_add()
725 cpu_drcs[cpus_found++] = drc_index; in find_drc_index_cpus_to_add()
792 u32 count, drc_index; in dlpar_cpu() local
796 drc_index = hp_elog->_drc_u.drc_index; in dlpar_cpu()
805 rc = dlpar_cpu_remove_by_index(drc_index); in dlpar_cpu()
813 rc = dlpar_cpu_add(drc_index); in dlpar_cpu()
831 u32 drc_index; in dlpar_cpu_probe() local
834 rc = kstrtou32(buf, 0, &drc_index); in dlpar_cpu_probe()
838 rc = dlpar_cpu_add(drc_index); in dlpar_cpu_probe()
846 u32 drc_index; in dlpar_cpu_release() local
853 rc = of_property_read_u32(dn, "ibm,my-drc-index", &drc_index); in dlpar_cpu_release()
859 rc = dlpar_cpu_remove(dn, drc_index); in dlpar_cpu_release()