aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPridhiviraj Paidipeddi <ppaidipe@linux.vnet.ibm.com>2018-05-11 01:56:10 +0530
committerStewart Smith <stewart@linux.ibm.com>2018-05-11 17:17:13 -0500
commit05d9d981df9c96c967882699574ff2cc4ae13f8b (patch)
tree01b3c1da418f0c42068d10299acdb28f15e629c2
parentd5d7966431af4c0782a57e81d650f99f14f69a48 (diff)
downloadskiboot-05d9d981df9c96c967882699574ff2cc4ae13f8b.zip
skiboot-05d9d981df9c96c967882699574ff2cc4ae13f8b.tar.gz
skiboot-05d9d981df9c96c967882699574ff2cc4ae13f8b.tar.bz2
p9dsu: detect variant in init only if probe fails to found.
Currently the slot table init happens twice in both probe and init functions due to the variant detection logic called with in-correct condition check. Fixes: d32ddea9 ("p9dsu: detect p9dsu variant even when hostboot doesn't tell us") Signed-off-by: Pridhiviraj Paidipeddi <ppaidipe@linux.vnet.ibm.com> [stewart: renanem variant-detected to p9dsu-riser-detected] Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
-rw-r--r--platforms/astbmc/p9dsu.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/platforms/astbmc/p9dsu.c b/platforms/astbmc/p9dsu.c
index e4fef5e..e14b071 100644
--- a/platforms/astbmc/p9dsu.c
+++ b/platforms/astbmc/p9dsu.c
@@ -28,6 +28,8 @@
#include "astbmc.h"
+static bool p9dsu_riser_found = false;
+
static const struct slot_table_entry p9dsu1u_phb0_0_slot[] = {
{
.etype = st_pluggable_slot,
@@ -590,6 +592,8 @@ static bool p9dsu_probe(void)
dt_node_is_compatible(dt_root, "supermicro,p9dsu2uess")))
return false;
+ p9dsu_riser_found = true;
+
/* Lot of common early inits here */
astbmc_early_init();
@@ -607,7 +611,7 @@ static bool p9dsu_probe(void)
} else if (dt_node_is_compatible(dt_root, "supermicro,p9dsu2uess")) {
prlog(PR_INFO, "Detected p9dsu2uess variant\n");
slot_table_init(p9dsu2uess_phb_table);
- }
+ } else {
/*
* else we need to ask the BMC what subtype we are, but we need IPMI
* which we don't get until astbmc_init(), so we delay setting up the
@@ -616,6 +620,8 @@ static bool p9dsu_probe(void)
* This only applies if you're using a Hostboot that doesn't do this
* for us.
*/
+ p9dsu_riser_found = false;
+ }
return true;
}
@@ -642,7 +648,7 @@ static void p9dsu_init(void)
* variant we are if Hostboot isn't the patched one that does this
* for us.
*/
- if (dt_node_is_compatible(dt_root, "supermicro,p9dsu")) {
+ if (!p9dsu_riser_found) {
ipmi_msg = ipmi_mkmsg(IPMI_DEFAULT_INTERFACE,
IPMI_CODE(IPMI_NETFN_APP, 0x52),
p9dsu_riser_query_complete,