aboutsummaryrefslogtreecommitdiff
path: root/hw/dts.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/dts.c')
-rw-r--r--hw/dts.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/hw/dts.c b/hw/dts.c
index 881d66e..ecfe847 100644
--- a/hw/dts.c
+++ b/hw/dts.c
@@ -276,14 +276,15 @@ static void dts_async_read_temp(struct timer *t __unused, void *data,
rc = dts_read_core_temp_p9(cpu->pir, &dts);
if (!rc) {
if (cpu->sensor_attr == SENSOR_DTS_ATTR_TEMP_MAX)
- *(u32 *)cpu->sensor_data = dts.temp;
+ *cpu->sensor_data = dts.temp;
else if (cpu->sensor_attr == SENSOR_DTS_ATTR_TEMP_TRIP)
- *(u32 *)cpu->sensor_data = dts.trip;
+ *cpu->sensor_data = dts.trip;
}
if (!swkup_rc)
dctl_clear_special_wakeup(cpu);
+ check_sensor_read(cpu->token);
rc = opal_queue_msg(OPAL_MSG_ASYNC_COMP, NULL, NULL, cpu->token, rc);
if (rc)
prerror("Failed to queue async message\n");
@@ -292,7 +293,7 @@ static void dts_async_read_temp(struct timer *t __unused, void *data,
}
static int dts_read_core_temp(u32 pir, struct dts *dts, u8 attr,
- int token, u32 *sensor_data)
+ int token, u64 *sensor_data)
{
struct cpu_thread *cpu;
int rc;
@@ -390,7 +391,7 @@ enum sensor_dts_class {
*/
#define centaur_get_id(rid) (0x80000000 | ((rid) & 0x3ff))
-int64_t dts_sensor_read(u32 sensor_hndl, int token, u32 *sensor_data)
+int64_t dts_sensor_read(u32 sensor_hndl, int token, u64 *sensor_data)
{
uint8_t attr = sensor_get_attr(sensor_hndl);
uint32_t rid = sensor_get_rid(sensor_hndl);