diff options
author | Pridhiviraj Paidipeddi <ppaidipe@linux.vnet.ibm.com> | 2018-05-11 01:56:10 +0530 |
---|---|---|
committer | Stewart Smith <stewart@linux.ibm.com> | 2018-05-11 17:17:13 -0500 |
commit | 05d9d981df9c96c967882699574ff2cc4ae13f8b (patch) | |
tree | 01b3c1da418f0c42068d10299acdb28f15e629c2 | |
parent | d5d7966431af4c0782a57e81d650f99f14f69a48 (diff) | |
download | skiboot-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.c | 10 |
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, |