diff --git a/src/linux/up-device-supply.c b/src/linux/up-device-supply.c
index 309c0e3..271e1f6 100644
--- a/src/linux/up-device-supply.c
+++ b/src/linux/up-device-supply.c
@@ -606,11 +606,10 @@ up_device_supply_refresh_battery (UpDeviceSupply *supply)
 		/* we only coldplug once, as these values will never change */
 		supply->priv->has_coldplug_values = TRUE;
 	} else {
-		/* get the old full */
-		g_object_get (device,
-			      "energy-full", &energy_full,
-			      "energy-full-design", &energy_full_design,
-			      NULL);
+			energy_full = sysfs_get_double (native_path, "charge_full") / 1000000.0;
+			energy_full_design = sysfs_get_double (native_path, "charge_full_design") / 1000000.0;
+			energy_full *= voltage_design;
+			energy_full_design *= voltage_design;
 	}
 
 	status = g_strstrip (sysfs_get_string (native_path, "status"));
