diff mbox

acpi: method: add check for _MBM

Message ID 1412664207-32297-4-git-send-email-alex.hung@canonical.com
State Accepted
Headers show

Commit Message

Alex Hung Oct. 7, 2014, 6:43 a.m. UTC
Signed-off-by: Alex Hung <alex.hung@canonical.com>
---
 src/acpi/method/method.c | 47 +++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 45 insertions(+), 2 deletions(-)

Comments

Colin Ian King Oct. 7, 2014, 7:19 a.m. UTC | #1
On 07/10/14 07:43, Alex Hung wrote:
> Signed-off-by: Alex Hung <alex.hung@canonical.com>
> ---
>  src/acpi/method/method.c | 47 +++++++++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 45 insertions(+), 2 deletions(-)
> 
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 879e072..9310abc 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -125,7 +125,7 @@
>   * _LCK  6.3.4		Y
>   * _LID  9.4.1		Y
>   * _MAT  6.2.9		N
> - * _MBM  9.12.2.1	N
> + * _MBM  9.12.2.1	Y
>   * _MLS  6.1.7		N
>   * _MSG  9.1.2		Y
>   * _MSM  9.12.2.2	N
> @@ -3716,6 +3716,49 @@ static int method_test_GTM(fwts_framework *fw)
>  }
>  
>  /*
> + * Section 9.12 Memory Devices
> + */
> +
> +static void method_test_MBM_return(
> +	fwts_framework *fw,
> +	char *name,
> +	ACPI_BUFFER *buf,
> +	ACPI_OBJECT *obj,
> +	void *private)
> +{
> +	static fwts_package_element elements[] = {
> +		{ ACPI_TYPE_INTEGER,	"Revision" },
> +		{ ACPI_TYPE_INTEGER,	"Window Size" },
> +		{ ACPI_TYPE_INTEGER,	"Sampling Interval" },
> +		{ ACPI_TYPE_INTEGER,	"Maximum Bandwidth" },
> +		{ ACPI_TYPE_INTEGER,	"Average Bandwidth" },
> +		{ ACPI_TYPE_INTEGER,	"Low Bandwidth" },
> +		{ ACPI_TYPE_INTEGER,	"Low Notification Threshold" },
> +		{ ACPI_TYPE_INTEGER,	"High Notification Threshold" },
> +	};
> +
> +	FWTS_UNUSED(private);
> +
> +	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
> +		return;
> +
> +	if (method_package_count_equal(fw, name, "_MBM", obj, 8) != FWTS_OK)
> +		return;
> +
> +	/* For now, just check types */
> +	if (method_package_elements_type(fw, name, "_MBM", obj, elements, 8) != FWTS_OK)
> +		return;
> +
> +	method_passed_sane(fw, name, "package");
> +}
> +
> +static int method_test_MBM(fwts_framework *fw)
> +{
> +	return method_evaluate_method(fw, METHOD_OPTIONAL,
> +		"_MBM", NULL, 0, method_test_MBM_return, NULL);
> +}
> +
> +/*
>   * Section 9.13 USB Port Capabilities
>   */
>  
> @@ -5917,7 +5960,7 @@ static fwts_framework_minor_test method_tests[] = {
>  	/* { method_test_FDM, "Test _FDM (Floppy Drive Mode)." }, */
>  
>  	/* Section 9.12 Memory Devices */
> -	/* { method_test_MBM, "Test _MBM (Memory Bandwidth Monitoring Data)." }, */
> +	{ method_test_MBM, "Test _MBM (Memory Bandwidth Monitoring Data)." },
>  	/* { method_test_MSM, "Test _MSM (Memory Set Monitoring)." }, */
>  
>  	/* Section 9.13 USB Port Capabilities */
> 
Acked-by: Colin Ian King <colin.king@canonical.com>
Keng-Yu Lin Oct. 15, 2014, 7:31 a.m. UTC | #2
On Tue, Oct 7, 2014 at 2:43 PM, Alex Hung <alex.hung@canonical.com> wrote:
> Signed-off-by: Alex Hung <alex.hung@canonical.com>
> ---
>  src/acpi/method/method.c | 47 +++++++++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 45 insertions(+), 2 deletions(-)
>
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 879e072..9310abc 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -125,7 +125,7 @@
>   * _LCK  6.3.4         Y
>   * _LID  9.4.1         Y
>   * _MAT  6.2.9         N
> - * _MBM  9.12.2.1      N
> + * _MBM  9.12.2.1      Y
>   * _MLS  6.1.7         N
>   * _MSG  9.1.2         Y
>   * _MSM  9.12.2.2      N
> @@ -3716,6 +3716,49 @@ static int method_test_GTM(fwts_framework *fw)
>  }
>
>  /*
> + * Section 9.12 Memory Devices
> + */
> +
> +static void method_test_MBM_return(
> +       fwts_framework *fw,
> +       char *name,
> +       ACPI_BUFFER *buf,
> +       ACPI_OBJECT *obj,
> +       void *private)
> +{
> +       static fwts_package_element elements[] = {
> +               { ACPI_TYPE_INTEGER,    "Revision" },
> +               { ACPI_TYPE_INTEGER,    "Window Size" },
> +               { ACPI_TYPE_INTEGER,    "Sampling Interval" },
> +               { ACPI_TYPE_INTEGER,    "Maximum Bandwidth" },
> +               { ACPI_TYPE_INTEGER,    "Average Bandwidth" },
> +               { ACPI_TYPE_INTEGER,    "Low Bandwidth" },
> +               { ACPI_TYPE_INTEGER,    "Low Notification Threshold" },
> +               { ACPI_TYPE_INTEGER,    "High Notification Threshold" },
> +       };
> +
> +       FWTS_UNUSED(private);
> +
> +       if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
> +               return;
> +
> +       if (method_package_count_equal(fw, name, "_MBM", obj, 8) != FWTS_OK)
> +               return;
> +
> +       /* For now, just check types */
> +       if (method_package_elements_type(fw, name, "_MBM", obj, elements, 8) != FWTS_OK)
> +               return;
> +
> +       method_passed_sane(fw, name, "package");
> +}
> +
> +static int method_test_MBM(fwts_framework *fw)
> +{
> +       return method_evaluate_method(fw, METHOD_OPTIONAL,
> +               "_MBM", NULL, 0, method_test_MBM_return, NULL);
> +}
> +
> +/*
>   * Section 9.13 USB Port Capabilities
>   */
>
> @@ -5917,7 +5960,7 @@ static fwts_framework_minor_test method_tests[] = {
>         /* { method_test_FDM, "Test _FDM (Floppy Drive Mode)." }, */
>
>         /* Section 9.12 Memory Devices */
> -       /* { method_test_MBM, "Test _MBM (Memory Bandwidth Monitoring Data)." }, */
> +       { method_test_MBM, "Test _MBM (Memory Bandwidth Monitoring Data)." },
>         /* { method_test_MSM, "Test _MSM (Memory Set Monitoring)." }, */
>
>         /* Section 9.13 USB Port Capabilities */
> --
> 1.9.1
>
>

Acked-by: Keng-Yu Lin <kengyu@canonical.com>
diff mbox

Patch

diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
index 879e072..9310abc 100644
--- a/src/acpi/method/method.c
+++ b/src/acpi/method/method.c
@@ -125,7 +125,7 @@ 
  * _LCK  6.3.4		Y
  * _LID  9.4.1		Y
  * _MAT  6.2.9		N
- * _MBM  9.12.2.1	N
+ * _MBM  9.12.2.1	Y
  * _MLS  6.1.7		N
  * _MSG  9.1.2		Y
  * _MSM  9.12.2.2	N
@@ -3716,6 +3716,49 @@  static int method_test_GTM(fwts_framework *fw)
 }
 
 /*
+ * Section 9.12 Memory Devices
+ */
+
+static void method_test_MBM_return(
+	fwts_framework *fw,
+	char *name,
+	ACPI_BUFFER *buf,
+	ACPI_OBJECT *obj,
+	void *private)
+{
+	static fwts_package_element elements[] = {
+		{ ACPI_TYPE_INTEGER,	"Revision" },
+		{ ACPI_TYPE_INTEGER,	"Window Size" },
+		{ ACPI_TYPE_INTEGER,	"Sampling Interval" },
+		{ ACPI_TYPE_INTEGER,	"Maximum Bandwidth" },
+		{ ACPI_TYPE_INTEGER,	"Average Bandwidth" },
+		{ ACPI_TYPE_INTEGER,	"Low Bandwidth" },
+		{ ACPI_TYPE_INTEGER,	"Low Notification Threshold" },
+		{ ACPI_TYPE_INTEGER,	"High Notification Threshold" },
+	};
+
+	FWTS_UNUSED(private);
+
+	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+		return;
+
+	if (method_package_count_equal(fw, name, "_MBM", obj, 8) != FWTS_OK)
+		return;
+
+	/* For now, just check types */
+	if (method_package_elements_type(fw, name, "_MBM", obj, elements, 8) != FWTS_OK)
+		return;
+
+	method_passed_sane(fw, name, "package");
+}
+
+static int method_test_MBM(fwts_framework *fw)
+{
+	return method_evaluate_method(fw, METHOD_OPTIONAL,
+		"_MBM", NULL, 0, method_test_MBM_return, NULL);
+}
+
+/*
  * Section 9.13 USB Port Capabilities
  */
 
@@ -5917,7 +5960,7 @@  static fwts_framework_minor_test method_tests[] = {
 	/* { method_test_FDM, "Test _FDM (Floppy Drive Mode)." }, */
 
 	/* Section 9.12 Memory Devices */
-	/* { method_test_MBM, "Test _MBM (Memory Bandwidth Monitoring Data)." }, */
+	{ method_test_MBM, "Test _MBM (Memory Bandwidth Monitoring Data)." },
 	/* { method_test_MSM, "Test _MSM (Memory Set Monitoring)." }, */
 
 	/* Section 9.13 USB Port Capabilities */