From: Paolo Bonzini Date: Mon, 31 Mar 2014 16:26:29 +0000 (+0200) Subject: smbus: allow returning an error from reads X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=285364e96818c1a5f715fe256557b4a718222bc6;p=qemu.git smbus: allow returning an error from reads Signed-off-by: Paolo Bonzini Acked-by: Michael S. Tsirkin Reviewed-by: Andreas Färber Signed-off-by: Michael S. Tsirkin --- diff --git a/hw/i2c/smbus.c b/hw/i2c/smbus.c index 3febf3c258..190f08e089 100644 --- a/hw/i2c/smbus.c +++ b/hw/i2c/smbus.c @@ -214,7 +214,7 @@ void smbus_quick_command(I2CBus *bus, uint8_t addr, int read) i2c_end_transfer(bus); } -uint8_t smbus_receive_byte(I2CBus *bus, uint8_t addr) +int smbus_receive_byte(I2CBus *bus, uint8_t addr) { uint8_t data; @@ -232,7 +232,7 @@ void smbus_send_byte(I2CBus *bus, uint8_t addr, uint8_t data) i2c_end_transfer(bus); } -uint8_t smbus_read_byte(I2CBus *bus, uint8_t addr, uint8_t command) +int smbus_read_byte(I2CBus *bus, uint8_t addr, uint8_t command) { uint8_t data; i2c_start_transfer(bus, addr, 0); @@ -252,7 +252,7 @@ void smbus_write_byte(I2CBus *bus, uint8_t addr, uint8_t command, uint8_t data) i2c_end_transfer(bus); } -uint16_t smbus_read_word(I2CBus *bus, uint8_t addr, uint8_t command) +int smbus_read_word(I2CBus *bus, uint8_t addr, uint8_t command) { uint16_t data; i2c_start_transfer(bus, addr, 0); diff --git a/include/hw/i2c/smbus.h b/include/hw/i2c/smbus.h index 63f0cc4788..285d3b5de3 100644 --- a/include/hw/i2c/smbus.h +++ b/include/hw/i2c/smbus.h @@ -67,11 +67,11 @@ struct SMBusDevice { /* Master device commands. */ void smbus_quick_command(I2CBus *bus, uint8_t addr, int read); -uint8_t smbus_receive_byte(I2CBus *bus, uint8_t addr); +int smbus_receive_byte(I2CBus *bus, uint8_t addr); void smbus_send_byte(I2CBus *bus, uint8_t addr, uint8_t data); -uint8_t smbus_read_byte(I2CBus *bus, uint8_t addr, uint8_t command); +int smbus_read_byte(I2CBus *bus, uint8_t addr, uint8_t command); void smbus_write_byte(I2CBus *bus, uint8_t addr, uint8_t command, uint8_t data); -uint16_t smbus_read_word(I2CBus *bus, uint8_t addr, uint8_t command); +int smbus_read_word(I2CBus *bus, uint8_t addr, uint8_t command); void smbus_write_word(I2CBus *bus, uint8_t addr, uint8_t command, uint16_t data); int smbus_read_block(I2CBus *bus, uint8_t addr, uint8_t command, uint8_t *data); void smbus_write_block(I2CBus *bus, uint8_t addr, uint8_t command, uint8_t *data,