Am 31.03.2014 18:26, schrieb Paolo Bonzini: > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > hw/i2c/smbus.c | 62 > +++++++++++++++++++++++++++++++++++--------------- > include/hw/i2c/smbus.h | 12 +++++----- > 2 files changed, 50 insertions(+), 24 deletions(-) > > diff --git a/hw/i2c/smbus.c b/hw/i2c/smbus.c > index 190f08e..6e27ae8 100644 > --- a/hw/i2c/smbus.c > +++ b/hw/i2c/smbus.c > @@ -208,34 +208,44 @@ static int smbus_device_init(I2CSlave *i2c) > } > > /* Master device commands. */ > -void smbus_quick_command(I2CBus *bus, uint8_t addr, int read) > +int smbus_quick_command(I2CBus *bus, uint8_t addr, int read) > { > - i2c_start_transfer(bus, addr, read); > + if (i2c_start_transfer(bus, addr, read)) {
For anyone else who wondered about this condition: i2c_start_transfer() returns 1 if slave device is not found and 0 on success, so no normal return codes interfering here. > + return -1; > + } > i2c_end_transfer(bus); > + return 0; > } [snip] Reviewed-by: Andreas Färber <afaer...@suse.de> Might have mentioned also doing some adjacent Coding Style cleanups. Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg