summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2018-05-29 07:28:31 +0300
committerJoel Stanley <joel@jms.id.au>2018-05-30 05:54:11 +0300
commit0db42f180ca97e889f8098423d7f645579b76a35 (patch)
tree67ca17f4510b5f6bd2b6dbb958562638fcf6c553
parent34097f5d6a4ee5a6eb7c9ffdbf222ef1a2e09fd5 (diff)
downloadlinux-0db42f180ca97e889f8098423d7f645579b76a35.tar.xz
hwmon: occ: Display info about the OCC code level and sensors found
OpenBMC-Staging-Count: 1 Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Joel Stanley <joel@jms.id.au>
-rw-r--r--drivers/hwmon/occ/common.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/hwmon/occ/common.c b/drivers/hwmon/occ/common.c
index 88c32915b8bf..365bf207cf0d 100644
--- a/drivers/hwmon/occ/common.c
+++ b/drivers/hwmon/occ/common.c
@@ -1296,7 +1296,7 @@ done:
/* only need to do this once at startup, as OCC won't change sensors on us */
static void occ_parse_poll_response(struct occ *occ)
{
- unsigned int i, offset = 0, size = 0;
+ unsigned int i, offset = 0, size = 0, old_offset;
struct occ_sensor *sensor;
struct occ_sensors *sensors = &occ->sensors;
struct occ_response *resp = &occ->resp;
@@ -1305,8 +1305,12 @@ static void occ_parse_poll_response(struct occ *occ)
struct occ_poll_response_header *header = &poll->header;
struct occ_sensor_data_block *block = &poll->block;
+ dev_info(occ->bus_dev, "OCC found, code level: %.16s\n",
+ header->occ_code_level);
+
for (i = 0; i < header->num_sensor_data_blocks; ++i) {
block = (struct occ_sensor_data_block *)((u8 *)block + offset);
+ old_offset = offset;
offset = (block->header.num_sensors *
block->header.sensor_length) + sizeof(block->header);
size += offset;
@@ -1317,6 +1321,10 @@ static void occ_parse_poll_response(struct occ *occ)
return;
}
+ dev_dbg(occ->bus_dev, " %04x..%04x: %.4s (%d sensors)\n",
+ old_offset, offset - 1, block->header.eye_catcher,
+ block->header.num_sensors);
+
/* match sensor block type */
if (strncmp(block->header.eye_catcher, "TEMP", 4) == 0)
sensor = &sensors->temp;
@@ -1338,6 +1346,8 @@ static void occ_parse_poll_response(struct occ *occ)
sensor->version = block->header.sensor_format;
sensor->data = &block->data;
}
+ dev_dbg(occ->bus_dev, "Max resp size: %d+%d=%d\n",
+ size, sizeof(*header), size + sizeof(*header));
}
int occ_setup(struct occ *occ, const char *name)