Fix sysmon POST problem: check I2C error codes

This fixes a problem of displaying bogus voltages when the voltages
are so low that the I2C devices start failing while the rest of the
system keeps running.
This commit is contained in:
Wolfgang Denk 2005-07-28 10:42:26 +02:00
parent e82bc62c03
commit 15f36a5efd
2 changed files with 16 additions and 2 deletions

View File

@ -2,6 +2,11 @@
Changes for U-Boot 1.1.3: Changes for U-Boot 1.1.3:
====================================================================== ======================================================================
* Fix sysmon POST problem: check I2C error codes
This fixes a problem of displaying bogus voltages when the voltages
are so low that the I2C devices start failing while the rest of the
system keeps running.
* Patch by Cedric Vincent, 6 Jul 2005: * Patch by Cedric Vincent, 6 Jul 2005:
Fix CFG_CMD_SETGETDCR handling in "common/cmd_dcr.c" Fix CFG_CMD_SETGETDCR handling in "common/cmd_dcr.c"

View File

@ -185,6 +185,10 @@ static char *sysmon_unit_value (sysmon_table_t *s, uint val)
char *p, sign; char *p, sign;
int dec, frac; int dec, frac;
if (val == -1) {
return "I/O ERROR";
}
if (unit_val < 0) { if (unit_val < 0) {
sign = '-'; sign = '-';
unit_val = -unit_val; unit_val = -unit_val;
@ -297,8 +301,13 @@ int sysmon_post_test (int flags)
} }
val = t->sysmon->read(t->sysmon, t->addr); val = t->sysmon->read(t->sysmon, t->addr);
t->val_valid = val >= t->val_min && val <= t->val_max; if (val != -1) {
t->val_valid_alt = val >= t->val_min_alt && val <= t->val_max_alt; t->val_valid = val >= t->val_min && val <= t->val_max;
t->val_valid_alt = val >= t->val_min_alt && val <= t->val_max_alt;
} else {
t->val_valid = 0;
t->val_valid_alt = 0;
}
if (t->exec_after) { if (t->exec_after) {
t->exec_after(t); t->exec_after(t);