Thread (21 messages) 21 messages, 4 authors, 2017-09-01

Re: [PATCH 3/3] ACPI / PMIC: Add opregion driver for Intel Dollar Cove TI PMIC

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: 2017-08-22 11:37:26
Also in: linux-acpi, lkml

On Tue, 2017-08-22 at 13:01 +0200, Takashi Iwai wrote:
On Tue, 22 Aug 2017 12:25:12 +0200,
Takashi Iwai wrote:
quoted
On Tue, 22 Aug 2017 11:58:35 +0200,
Andy Shevchenko wrote:
quoted
On Tue, 2017-08-22 at 07:57 +0200, Takashi Iwai wrote:
quoted
This patch adds the opregion driver for Dollar Cove TI PMIC on
Intel
Cherry Trail devices.  The patch is based on the original work
by
Intel, found at:
      https://github.com/01org/ProductionKernelQuilts
with many cleanups and rewrites.

The driver is currently provided only as built-in to follow
other
PMIC opregion drivers convention.

The re-enumeration of devices at probe is required for fixing
the
issues on HP x2 210 G2.  See bug#195689.


+static int dc_ti_pmic_get_raw_temp(struct regmap *regmap, int
reg)
+{
+	int temp_l, temp_h;
+
+	if (regmap_read(regmap, reg, &temp_l) ||
+	    regmap_read(regmap, reg - 1, &temp_h))
+		return -EIO;
+
+	return temp_l | (temp_h & 0x3) << 8;
+}
I'm not sure I understand this "- 1" part along with choice of l
and h
suffixes.

Does it mean the register is big endian?
Good point, I need to check the original code and the values.
It's really big-endian, the order is hi:lo.

But, admittedly, the temperature code hasn't been tested, and it's
possibly missing something.  So I'm fine to drop that part in the
first version, too.
I don't know if regmap allows you to define registers with different
sizes for same chip, perhaps it would make sense to start register from
hi part (and not doing non-intuitive "- 1", or maybe "+ 1" instead) and
mark it in comment that is BE16.

-- 
Andy Shevchenko [off-list ref]
Intel Finland Oy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help