void __init xics_init(void) { int rc = -1; /* Fist locate ICP */ if (firmware_has_feature(FW_FEATURE_LPAR)) rc = icp_hv_init(); if (rc < 0) rc = icp_native_init(); if (rc < 0) { pr_warning("XICS: Cannot find a Presentation Controller !\n"); return; } /* Copy get_irq callback over to ppc_md */ ppc_md.get_irq = icp_ops->get_irq; /* Patch up IPI chip EOI */ xics_ipi_chip.irq_eoi = icp_ops->eoi; /* Now locate ICS */ rc = ics_rtas_init(); if (rc < 0) rc = ics_opal_init(); if (rc < 0) pr_warning("XICS: Cannot find a Source Controller !\n"); /* Initialize common bits */ xics_get_server_size(); xics_update_irq_servers(); xics_init_host(); xics_setup_cpu(); }
void __init xics_init(void) { int rc = -1; if (firmware_has_feature(FW_FEATURE_LPAR)) rc = icp_hv_init(); if (rc < 0) rc = icp_native_init(); if (rc < 0) { pr_warning("XICS: Cannot find a Presentation Controller !\n"); return; } ppc_md.get_irq = icp_ops->get_irq; xics_ipi_chip.irq_eoi = icp_ops->eoi; rc = ics_rtas_init(); if (rc < 0) rc = ics_opal_init(); if (rc < 0) pr_warning("XICS: Cannot find a Source Controller !\n"); xics_get_server_size(); xics_update_irq_servers(); xics_init_host(); xics_setup_cpu(); }