aboutsummaryrefslogtreecommitdiff
path: root/src/southbridge/nvidia/ck804/ck804_smbus.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/southbridge/nvidia/ck804/ck804_smbus.h')
-rw-r--r--src/southbridge/nvidia/ck804/ck804_smbus.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/southbridge/nvidia/ck804/ck804_smbus.h b/src/southbridge/nvidia/ck804/ck804_smbus.h
index 079007836f..88843585aa 100644
--- a/src/southbridge/nvidia/ck804/ck804_smbus.h
+++ b/src/southbridge/nvidia/ck804/ck804_smbus.h
@@ -29,14 +29,13 @@ static int smbus_wait_until_ready(unsigned smbus_io_base)
unsigned char val;
smbus_delay();
val = inb(smbus_io_base + SMBHSTSTAT);
- if ((val & 0x1f) == 0) {
- break;
- }
- if(loops == (SMBUS_TIMEOUT / 2)) {
- outb((val & 0x1f),smbus_io_base + SMBHSTSTAT);
+ val &= 0x1f;
+ if (val == 0) {
+ return 0;
}
+ outb(val,smbus_io_base + SMBHSTSTAT);
} while(--loops);
- return loops?0:-2;
+ return -2;
}
static int smbus_wait_until_done(unsigned smbus_io_base)
@@ -49,10 +48,10 @@ static int smbus_wait_until_done(unsigned smbus_io_base)
val = inb(smbus_io_base + SMBHSTSTAT);
if ( (val & 0xff) != 0) {
- break;
+ return 0;
}
} while(--loops);
- return loops?0:-3;
+ return -3;
}
static int do_smbus_recv_byte(unsigned smbus_io_base, unsigned device)
{
@@ -200,3 +199,4 @@ static int do_smbus_write_byte(unsigned smbus_io_base, unsigned device, unsigned
}
return 0;
}
+