The recent Macbooks have temperature registers of a new type.
This patch adds the logic to handle them.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
        entry = applesmc_get_entry_by_index(index);
        if (IS_ERR(entry))
                return PTR_ERR(entry);
+       if (entry->len > 2)
+               return -EINVAL;
 
-       ret = applesmc_read_entry(entry, buffer, 2);
+       ret = applesmc_read_entry(entry, buffer, entry->len);
        if (ret)
                return ret;
 
-       temp = buffer[0]*1000;
-       temp += (buffer[1] >> 6) * 250;
+       if (entry->len == 2) {
+               temp = buffer[0] * 1000;
+               temp += (buffer[1] >> 6) * 250;
+       } else {
+               temp = buffer[0] * 4000;
+       }
 
        return snprintf(sysfsbuf, PAGE_SIZE, "%u\n", temp);
 }