diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/block/nvme.c | 4 | ||||
-rw-r--r-- | hw/misc/tmp105.c | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 2882ffefce..5fd8f89822 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -752,8 +752,8 @@ static int nvme_init(PCIDevice *pci_dev) return -1; } - bs_size = bdrv_getlength(n->conf.bs); - if (bs_size <= 0) { + bs_size = bdrv_getlength(n->conf.bs); + if (bs_size < 0) { return -1; } diff --git a/hw/misc/tmp105.c b/hw/misc/tmp105.c index 155e03df80..63aa3d6277 100644 --- a/hw/misc/tmp105.c +++ b/hw/misc/tmp105.c @@ -56,12 +56,14 @@ static void tmp105_get_temperature(Object *obj, Visitor *v, void *opaque, const char *name, Error **errp) { TMP105State *s = TMP105(obj); - int64_t value = s->temperature; + int64_t value = s->temperature * 1000 / 256; visit_type_int(v, &value, name, errp); } -/* Units are 0.001 centigrades relative to 0 C. */ +/* Units are 0.001 centigrades relative to 0 C. s->temperature is 8.8 + * fixed point, so units are 1/256 centigrades. A simple ratio will do. + */ static void tmp105_set_temperature(Object *obj, Visitor *v, void *opaque, const char *name, Error **errp) { @@ -78,7 +80,7 @@ static void tmp105_set_temperature(Object *obj, Visitor *v, void *opaque, return; } - s->temperature = ((int16_t) (temp * 0x800 / 128000)) << 4; + s->temperature = (int16_t) (temp * 256 / 1000); tmp105_alarm_update(s); } |