bif: bif-core: parse secondary slave data
Ensure that BIF data of secondary slaves is parsed when selecting
the secondary slaves based on a BIF secondary slave object read
out of the primary slave.
Change-Id: Id0daceb37c5c052fd149cd7f8015bb54e5b425fb
Signed-off-by: David Collins <collinsd@codeaurora.org>
diff --git a/drivers/bif/bif-core.c b/drivers/bif/bif-core.c
index 7bc9af2..3030caa 100644
--- a/drivers/bif/bif-core.c
+++ b/drivers/bif/bif-core.c
@@ -2336,6 +2336,12 @@
} else if (rc == 1) {
sdev->present = true;
sdev->bdev->selected_sdev = sdev;
+ rc = bif_parse_slave_data(sdev);
+ if (rc) {
+ pr_err("Failed to parse secondary slave data, rc=%d\n",
+ rc);
+ goto free_slave;
+ }
} else {
sdev->present = false;
sdev->bdev->selected_sdev = NULL;
@@ -2459,6 +2465,11 @@
sdev->present = true;
sdev->bdev->selected_sdev = sdev;
rc = bif_parse_slave_data(sdev);
+ if (rc) {
+ pr_err("Failed to parse secondary slave data, rc=%d\n",
+ rc);
+ return rc;
+ }
} else {
pr_err("Slave failed to respond to DILC bus command; its UID is thus unverified.\n");
sdev->unique_id_bits_known = 0;