Lines Matching refs:drc_index
434 static bool dlpar_cpu_exists(struct device_node *parent, u32 drc_index) in dlpar_cpu_exists() argument
450 if (my_drc_index == drc_index) { in dlpar_cpu_exists()
460 static bool drc_info_valid_index(struct device_node *parent, u32 drc_index) in drc_info_valid_index() argument
487 if (drc_index > drc.last_drc_index) in drc_info_valid_index()
492 if (drc_index == index) in drc_info_valid_index()
502 static bool valid_cpu_drc_index(struct device_node *parent, u32 drc_index) in valid_cpu_drc_index() argument
508 return drc_info_valid_index(parent, drc_index); in valid_cpu_drc_index()
524 if (drc == drc_index) in valid_cpu_drc_index()
552 static ssize_t dlpar_cpu_add(u32 drc_index) in dlpar_cpu_add() argument
557 pr_debug("Attempting to add CPU, drc index: %x\n", drc_index); in dlpar_cpu_add()
565 if (dlpar_cpu_exists(parent, drc_index)) { in dlpar_cpu_add()
567 pr_warn("CPU with drc index %x already exists\n", drc_index); in dlpar_cpu_add()
571 if (!valid_cpu_drc_index(parent, drc_index)) { in dlpar_cpu_add()
573 pr_warn("Cannot find CPU (drc index %x) to add.\n", drc_index); in dlpar_cpu_add()
577 rc = dlpar_acquire_drc(drc_index); in dlpar_cpu_add()
580 rc, drc_index); in dlpar_cpu_add()
585 dn = dlpar_configure_connector(cpu_to_be32(drc_index), parent); in dlpar_cpu_add()
588 drc_index); in dlpar_cpu_add()
589 dlpar_release_drc(drc_index); in dlpar_cpu_add()
602 dn, rc, drc_index); in dlpar_cpu_add()
604 rc = dlpar_release_drc(drc_index); in dlpar_cpu_add()
617 dn, rc, drc_index); in dlpar_cpu_add()
621 dlpar_release_drc(drc_index); in dlpar_cpu_add()
627 drc_index); in dlpar_cpu_add()
685 static ssize_t dlpar_cpu_remove(struct device_node *dn, u32 drc_index) in dlpar_cpu_remove() argument
690 dn, drc_index); in dlpar_cpu_remove()
698 rc = dlpar_release_drc(drc_index); in dlpar_cpu_remove()
701 drc_index, dn, rc); in dlpar_cpu_remove()
712 rc = dlpar_acquire_drc(drc_index); in dlpar_cpu_remove()
719 pr_debug("Successfully removed CPU, drc index: %x\n", drc_index); in dlpar_cpu_remove()
723 static struct device_node *cpu_drc_index_to_dn(u32 drc_index) in cpu_drc_index_to_dn() argument
734 if (my_index == drc_index) in cpu_drc_index_to_dn()
741 static int dlpar_cpu_remove_by_index(u32 drc_index) in dlpar_cpu_remove_by_index() argument
746 dn = cpu_drc_index_to_dn(drc_index); in dlpar_cpu_remove_by_index()
749 drc_index); in dlpar_cpu_remove_by_index()
753 rc = dlpar_cpu_remove(dn, drc_index); in dlpar_cpu_remove_by_index()
760 u32 drc_index; in dlpar_cpu() local
763 drc_index = be32_to_cpu(hp_elog->_drc_u.drc_index); in dlpar_cpu()
770 rc = dlpar_cpu_remove_by_index(drc_index); in dlpar_cpu()
777 dlpar_unisolate_drc(drc_index); in dlpar_cpu()
784 rc = dlpar_cpu_add(drc_index); in dlpar_cpu()
802 u32 drc_index; in dlpar_cpu_probe() local
805 rc = kstrtou32(buf, 0, &drc_index); in dlpar_cpu_probe()
809 rc = dlpar_cpu_add(drc_index); in dlpar_cpu_probe()
817 u32 drc_index; in dlpar_cpu_release() local
824 rc = of_property_read_u32(dn, "ibm,my-drc-index", &drc_index); in dlpar_cpu_release()
830 rc = dlpar_cpu_remove(dn, drc_index); in dlpar_cpu_release()