From: "Andreas Färber" <afaerber@suse.de>
To: qemu-devel@nongnu.org
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Andreas Färber" <afaerber@suse.de>
Subject: [Qemu-devel] [PULL for-2.0 13/16] tmp105: Read temperature in milli-celsius
Date: Mon, 31 Mar 2014 23:10:59 +0200 [thread overview]
Message-ID: <1396300262-10430-14-git-send-email-afaerber@suse.de> (raw)
In-Reply-To: <1396300262-10430-1-git-send-email-afaerber@suse.de>
From: Paolo Bonzini <pbonzini@redhat.com>
Right now, the temperature property must be written in milli-celsius,
but it reads back the value in 8.8 fixed point. Fix this by letting the
property read back the original value (possibly rounded). Also simplify
the code that does the conversion.
Before:
(QEMU) qom-set path=/machine/peripheral/sensor property=temperature value=20000
{u'return': {}}
(QEMU) qom-get path=sensor property=temperature
{u'return': 5120}
After:
(QEMU) qom-set path=/machine/peripheral/sensor property=temperature value=20000
{u'return': {}}
(QEMU) qom-get path=sensor property=temperature
{u'return': 20000}
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
hw/misc/tmp105.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/hw/misc/tmp105.c b/hw/misc/tmp105.c
index 155e03d..63aa3d6 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);
}
--
1.8.4.5
next prev parent reply other threads:[~2014-03-31 21:11 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-31 21:10 [Qemu-devel] [PULL for-2.0 00/16] QOM devices patch queue 2014-03-31 Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 01/16] Revert "qtest: Fix crash if SIGABRT during qtest_init()" Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 02/16] qtest: Keep list of qtest instances for SIGABRT handler Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 03/16] tests: Remove unsupported tests for MinGW Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 04/16] tests: Skip POSIX-only tests on Windows Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 05/16] tests: Correctly skip qtest on non-POSIX hosts Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 06/16] nvme: Permit zero-length block devices Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 07/16] tests: Add nvme qtest Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 08/16] tests: Add virtio-9p qtest Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 09/16] tests: Add pvpanic qtest Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 10/16] qtest: Factor out qtest_qmp_receive() Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 11/16] pvpanic-test: Assert pause event Andreas Färber
2014-03-31 21:10 ` [Qemu-devel] [PULL for-2.0 12/16] tests: Add i82801b11 qtest Andreas Färber
2014-03-31 21:10 ` Andreas Färber [this message]
2014-03-31 21:11 ` [Qemu-devel] [PULL for-2.0 14/16] tmp105-test: Wrap simple building blocks for testing Andreas Färber
2014-03-31 21:11 ` [Qemu-devel] [PULL for-2.0 15/16] tmp105-test: Add a second sensor and test that one Andreas Färber
2014-03-31 21:11 ` [Qemu-devel] [PULL for-2.0 16/16] tmp105-test: Test QOM property and precision Andreas Färber
2014-04-01 16:09 ` [Qemu-devel] [PULL for-2.0 00/16] QOM devices patch queue 2014-03-31 Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1396300262-10430-14-git-send-email-afaerber@suse.de \
--to=afaerber@suse.de \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).