diff options
-rw-r--r-- | src/drivers/vpd/vpd.c | 8 | ||||
-rw-r--r-- | src/drivers/vpd/vpd.h | 7 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/drivers/vpd/vpd.c b/src/drivers/vpd/vpd.c index f5ac81ebfd..c332a6e94c 100644 --- a/src/drivers/vpd/vpd.c +++ b/src/drivers/vpd/vpd.c @@ -209,10 +209,14 @@ const void *vpd_find(const char *key, int *size, enum vpd_region region) init_vpd_rdevs(); - if (region != VPD_RW) + if (region == VPD_RW_THEN_RO) + vpd_find_in(&rw_vpd, &arg); + + if (!arg.matched && (region == VPD_RO || region == VPD_RO_THEN_RW || + region == VPD_RW_THEN_RO)) vpd_find_in(&ro_vpd, &arg); - if (!arg.matched && region != VPD_RO) + if (!arg.matched && (region == VPD_RW || region == VPD_RO_THEN_RW)) vpd_find_in(&rw_vpd, &arg); if (!arg.matched) diff --git a/src/drivers/vpd/vpd.h b/src/drivers/vpd/vpd.h index df7711af90..25e0aed4ee 100644 --- a/src/drivers/vpd/vpd.h +++ b/src/drivers/vpd/vpd.h @@ -8,9 +8,10 @@ #define GOOGLE_VPD_2_0_OFFSET 0x600 enum vpd_region { - VPD_RO_THEN_RW = 0, - VPD_RO = 1, - VPD_RW = 2 + VPD_RO, + VPD_RW, + VPD_RO_THEN_RW, + VPD_RW_THEN_RO }; /* |