power: multiply power table value by 8 for Intel driver

Intel driver expects the power table value coming from user to be 8
times of the value measured by the instrument. To avoid confusion and
align with the Intel's iw fork, we expect the value coming from user to
be direct result of the measurement.

BUG=chrome-os-partner:51246
TEST=`emerge-cave power_manager`

Change-Id: I6f369535d934d60777b1aeddb406d3f589827878
Reviewed-on: https://chromium-review.googlesource.com/373318
Commit-Ready: Wei-Ning Huang <wnhuang@chromium.org>
Tested-by: Wei-Ning Huang <wnhuang@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
diff --git a/power_manager/common/power_constants.h b/power_manager/common/power_constants.h
index 1f20d9c..8bb41a3 100644
--- a/power_manager/common/power_constants.h
+++ b/power_manager/common/power_constants.h
@@ -212,6 +212,8 @@
 // The table is a string containing 6 unsigned integers separated by colon.
 // The first 3 integers are the power table values for clamshell mode, and the
 // later 3 integers are the power table values for tablet mode.
+// These value are the values measured by the Intel wifi power measurement tool,
+// which will be multiplied by 8 before being passed to Intel iwlwifi driver.
 extern const char kIwlWifiTransmitPowerTablePref[];
 
 // Miscellaneous constants.
diff --git a/power_manager/powerd/set_wifi_transmit_power.cc b/power_manager/powerd/set_wifi_transmit_power.cc
index e46e0c9..081d124 100644
--- a/power_manager/powerd/set_wifi_transmit_power.cc
+++ b/power_manager/powerd/set_wifi_transmit_power.cc
@@ -221,15 +221,15 @@
   int group = tablet ? 1 : 0;
 
   err = nla_put_u32(msg, IWL_MVM_VENDOR_ATTR_TXP_LIMIT_24,
-                    values[group * 3 + 0]);
+                    values[group * 3 + 0] * 8);
   CHECK(!err) << "Failed to put MWIFIEX_VENDOR_CMD_ATTR_TXP_LIMIT_24";
 
   err = nla_put_u32(msg, IWL_MVM_VENDOR_ATTR_TXP_LIMIT_52L,
-                    values[group * 3 + 1]);
+                    values[group * 3 + 1] * 8);
   CHECK(!err) << "Failed to put MWIFIEX_VENDOR_CMD_ATTR_TXP_LIMIT_52L";
 
   err = nla_put_u32(msg, IWL_MVM_VENDOR_ATTR_TXP_LIMIT_52H,
-                    values[group * 3 + 2]);
+                    values[group * 3 + 2] * 8);
   CHECK(!err) << "Failed to put MWIFIEX_VENDOR_CMD_ATTR_TXP_LIMIT_52H";
 
   err = nla_nest_end(msg, limits);