diff mbox series

[14/16] acpi: battery: add Battery Charge Limiting (mantis 2090)

Message ID 20210126203040.6101-14-alex.hung@canonical.com
State Accepted
Headers show
Series [01/16] acpi: update ACPI version to 6.4 | expand

Commit Message

Alex Hung Jan. 26, 2021, 8:30 p.m. UTC
Signed-off-by: Alex Hung <alex.hung@canonical.com>
---
 src/acpi/devices/battery/battery.c  |  2 +-
 src/acpi/method/method.c            |  2 +-
 src/lib/src/fwts_acpi_object_eval.c | 14 ++++----------
 3 files changed, 6 insertions(+), 12 deletions(-)

Comments

Colin Ian King Jan. 26, 2021, 8:56 p.m. UTC | #1
On 26/01/2021 20:30, Alex Hung wrote:
> Signed-off-by: Alex Hung <alex.hung@canonical.com>
> ---
>  src/acpi/devices/battery/battery.c  |  2 +-
>  src/acpi/method/method.c            |  2 +-
>  src/lib/src/fwts_acpi_object_eval.c | 14 ++++----------
>  3 files changed, 6 insertions(+), 12 deletions(-)
> 
> diff --git a/src/acpi/devices/battery/battery.c b/src/acpi/devices/battery/battery.c
> index 84fcc7d0..68d5fc7f 100644
> --- a/src/acpi/devices/battery/battery.c
> +++ b/src/acpi/devices/battery/battery.c
> @@ -273,7 +273,7 @@ static int method_test_BMD(fwts_framework *fw)
>  
>  static int method_test_BMC(fwts_framework *fw)
>  {
> -	static const int values[] = { 0, 1, 2, 4 };
> +	static const int values[] = { 0, 1, 2, 4, 8};
>  	ACPI_STATUS status;
>  	uint8_t i;
>  
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 90e03304..8ef5da5e 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -3328,7 +3328,7 @@ static int method_test_BMD(fwts_framework *fw)
>  
>  static int method_test_BMC(fwts_framework *fw)
>  {
> -	static const int values[] = { 0, 1, 2, 4 };
> +	static const int values[] = { 0, 1, 2, 4, 8};
>  	int i;
>  
>  	for (i = 0; i < FWTS_ARRAY_SIZE(values); i++) {
> diff --git a/src/lib/src/fwts_acpi_object_eval.c b/src/lib/src/fwts_acpi_object_eval.c
> index d894d149..17e42ca0 100644
> --- a/src/lib/src/fwts_acpi_object_eval.c
> +++ b/src/lib/src/fwts_acpi_object_eval.c
> @@ -2437,10 +2437,10 @@ void fwts_method_test_BMD_return(
>  		return;
>  
>  	fwts_acpi_reserved_bits_check(fw, "_BMD", "Status Flags",
> -		obj->Package.Elements[0].Integer.Value, sizeof(uint32_t), 5, 31, &failed);
> +		obj->Package.Elements[0].Integer.Value, sizeof(uint32_t), 7, 31, &failed);
>  
>  	fwts_acpi_reserved_bits_check(fw, "_BMD", "Capability Flags",
> -		obj->Package.Elements[1].Integer.Value, sizeof(uint32_t), 5, 31, &failed);
> +		obj->Package.Elements[1].Integer.Value, sizeof(uint32_t), 6, 31, &failed);
>  
>  	if (!failed)
>  		fwts_method_passed_sane(fw, name, "package");
> @@ -3034,14 +3034,8 @@ void fwts_method_test_BST_return(
>  
>  	/* Sanity check each field */
>  	/* Battery State */
> -	if ((obj->Package.Elements[0].Integer.Value) > 7) {
> -		fwts_failed(fw, LOG_LEVEL_CRITICAL,
> -			"Method_BSTBadState",
> -			"%s: Expected Battery State (Element 0) to "
> -			"be 0..7, got 0x%8.8" PRIx64 ".",
> -			name, (uint64_t)obj->Package.Elements[0].Integer.Value);
> -		failed = true;
> -	}
> +	fwts_acpi_reserved_bits_check(fw, "_BST", "Battery State",
> +			obj->Package.Elements[0].Integer.Value, sizeof(uint32_t), 3, 31, &failed);
>  	/* Ensure bits 0 (discharging) and 1 (charging) are not both set, see 10.2.2.6 */
>  	if (((obj->Package.Elements[0].Integer.Value) & 3) == 3) {
>  		fwts_failed(fw, LOG_LEVEL_CRITICAL,
> 

Acked-by: Colin Ian King <colin.king@canonical.com>
Ivan Hu Feb. 1, 2021, 6:35 a.m. UTC | #2
On 1/27/21 4:30 AM, Alex Hung wrote:
> Signed-off-by: Alex Hung <alex.hung@canonical.com>
> ---
>  src/acpi/devices/battery/battery.c  |  2 +-
>  src/acpi/method/method.c            |  2 +-
>  src/lib/src/fwts_acpi_object_eval.c | 14 ++++----------
>  3 files changed, 6 insertions(+), 12 deletions(-)
> 
> diff --git a/src/acpi/devices/battery/battery.c b/src/acpi/devices/battery/battery.c
> index 84fcc7d0..68d5fc7f 100644
> --- a/src/acpi/devices/battery/battery.c
> +++ b/src/acpi/devices/battery/battery.c
> @@ -273,7 +273,7 @@ static int method_test_BMD(fwts_framework *fw)
>  
>  static int method_test_BMC(fwts_framework *fw)
>  {
> -	static const int values[] = { 0, 1, 2, 4 };
> +	static const int values[] = { 0, 1, 2, 4, 8};
>  	ACPI_STATUS status;
>  	uint8_t i;
>  
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 90e03304..8ef5da5e 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -3328,7 +3328,7 @@ static int method_test_BMD(fwts_framework *fw)
>  
>  static int method_test_BMC(fwts_framework *fw)
>  {
> -	static const int values[] = { 0, 1, 2, 4 };
> +	static const int values[] = { 0, 1, 2, 4, 8};
>  	int i;
>  
>  	for (i = 0; i < FWTS_ARRAY_SIZE(values); i++) {
> diff --git a/src/lib/src/fwts_acpi_object_eval.c b/src/lib/src/fwts_acpi_object_eval.c
> index d894d149..17e42ca0 100644
> --- a/src/lib/src/fwts_acpi_object_eval.c
> +++ b/src/lib/src/fwts_acpi_object_eval.c
> @@ -2437,10 +2437,10 @@ void fwts_method_test_BMD_return(
>  		return;
>  
>  	fwts_acpi_reserved_bits_check(fw, "_BMD", "Status Flags",
> -		obj->Package.Elements[0].Integer.Value, sizeof(uint32_t), 5, 31, &failed);
> +		obj->Package.Elements[0].Integer.Value, sizeof(uint32_t), 7, 31, &failed);
>  
>  	fwts_acpi_reserved_bits_check(fw, "_BMD", "Capability Flags",
> -		obj->Package.Elements[1].Integer.Value, sizeof(uint32_t), 5, 31, &failed);
> +		obj->Package.Elements[1].Integer.Value, sizeof(uint32_t), 6, 31, &failed);
>  
>  	if (!failed)
>  		fwts_method_passed_sane(fw, name, "package");
> @@ -3034,14 +3034,8 @@ void fwts_method_test_BST_return(
>  
>  	/* Sanity check each field */
>  	/* Battery State */
> -	if ((obj->Package.Elements[0].Integer.Value) > 7) {
> -		fwts_failed(fw, LOG_LEVEL_CRITICAL,
> -			"Method_BSTBadState",
> -			"%s: Expected Battery State (Element 0) to "
> -			"be 0..7, got 0x%8.8" PRIx64 ".",
> -			name, (uint64_t)obj->Package.Elements[0].Integer.Value);
> -		failed = true;
> -	}
> +	fwts_acpi_reserved_bits_check(fw, "_BST", "Battery State",
> +			obj->Package.Elements[0].Integer.Value, sizeof(uint32_t), 3, 31, &failed);
>  	/* Ensure bits 0 (discharging) and 1 (charging) are not both set, see 10.2.2.6 */
>  	if (((obj->Package.Elements[0].Integer.Value) & 3) == 3) {
>  		fwts_failed(fw, LOG_LEVEL_CRITICAL,
> 

Acked-by: Ivan Hu <ivan.hu@canonical.com>
diff mbox series

Patch

diff --git a/src/acpi/devices/battery/battery.c b/src/acpi/devices/battery/battery.c
index 84fcc7d0..68d5fc7f 100644
--- a/src/acpi/devices/battery/battery.c
+++ b/src/acpi/devices/battery/battery.c
@@ -273,7 +273,7 @@  static int method_test_BMD(fwts_framework *fw)
 
 static int method_test_BMC(fwts_framework *fw)
 {
-	static const int values[] = { 0, 1, 2, 4 };
+	static const int values[] = { 0, 1, 2, 4, 8};
 	ACPI_STATUS status;
 	uint8_t i;
 
diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
index 90e03304..8ef5da5e 100644
--- a/src/acpi/method/method.c
+++ b/src/acpi/method/method.c
@@ -3328,7 +3328,7 @@  static int method_test_BMD(fwts_framework *fw)
 
 static int method_test_BMC(fwts_framework *fw)
 {
-	static const int values[] = { 0, 1, 2, 4 };
+	static const int values[] = { 0, 1, 2, 4, 8};
 	int i;
 
 	for (i = 0; i < FWTS_ARRAY_SIZE(values); i++) {
diff --git a/src/lib/src/fwts_acpi_object_eval.c b/src/lib/src/fwts_acpi_object_eval.c
index d894d149..17e42ca0 100644
--- a/src/lib/src/fwts_acpi_object_eval.c
+++ b/src/lib/src/fwts_acpi_object_eval.c
@@ -2437,10 +2437,10 @@  void fwts_method_test_BMD_return(
 		return;
 
 	fwts_acpi_reserved_bits_check(fw, "_BMD", "Status Flags",
-		obj->Package.Elements[0].Integer.Value, sizeof(uint32_t), 5, 31, &failed);
+		obj->Package.Elements[0].Integer.Value, sizeof(uint32_t), 7, 31, &failed);
 
 	fwts_acpi_reserved_bits_check(fw, "_BMD", "Capability Flags",
-		obj->Package.Elements[1].Integer.Value, sizeof(uint32_t), 5, 31, &failed);
+		obj->Package.Elements[1].Integer.Value, sizeof(uint32_t), 6, 31, &failed);
 
 	if (!failed)
 		fwts_method_passed_sane(fw, name, "package");
@@ -3034,14 +3034,8 @@  void fwts_method_test_BST_return(
 
 	/* Sanity check each field */
 	/* Battery State */
-	if ((obj->Package.Elements[0].Integer.Value) > 7) {
-		fwts_failed(fw, LOG_LEVEL_CRITICAL,
-			"Method_BSTBadState",
-			"%s: Expected Battery State (Element 0) to "
-			"be 0..7, got 0x%8.8" PRIx64 ".",
-			name, (uint64_t)obj->Package.Elements[0].Integer.Value);
-		failed = true;
-	}
+	fwts_acpi_reserved_bits_check(fw, "_BST", "Battery State",
+			obj->Package.Elements[0].Integer.Value, sizeof(uint32_t), 3, 31, &failed);
 	/* Ensure bits 0 (discharging) and 1 (charging) are not both set, see 10.2.2.6 */
 	if (((obj->Package.Elements[0].Integer.Value) & 3) == 3) {
 		fwts_failed(fw, LOG_LEVEL_CRITICAL,