Message ID | 1343752732-23515-1-git-send-email-colin.king@canonical.com |
---|---|
State | Accepted |
Headers | show |
On 08/01/2012 12:38 AM, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > Just seen _GTS and _BFS support being removed from Linux and > according to Len Brown: > > "_GTS and _BFS were added to the suspend/resume flow > in the ACPI 2.0 specification. > > Linux dutifully implemented _GTS and _BFS. > We discovered that it was rarely seen in systems > in the field. Further, some of those systems had > AML so bogus that it could never work -- proof that > no other operating system supports _GTS and _BFS. > So we made _GTS and _BFS optional via modparam, > and disabled them by default. > > But we've had to complicate some code to keep > this support in the kernel, as these methods are defined > to be evaluated very close to sleep entry and exit. > Indeed, no other AML is ever evaluated with interrupts off. > > We have submitted a proposal for _GTS and _BFS > to be officially removed from the ACPI specification > on the next revision. Here we remove it from Linux." > > So, these are not worth testing and should be deprecated > from the method test. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > src/acpi/method/method.c | 55 ++-------------------------------------------- > 1 file changed, 2 insertions(+), 53 deletions(-) > > diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c > index a1bf873..032f42e 100644 > --- a/src/acpi/method/method.c > +++ b/src/acpi/method/method.c > @@ -48,7 +48,7 @@ > * _BCM B.6.3 Y > * _BCT 10.2.29 N > * _BDN 6.5.3 N > - * _BFS 7.3.1 Y > + * _BFS 7.3.1 deprecated > * _BIF 10.2.2.1 Y > * _BIX 10.2.2.2 Y > * _BLT 9.1.3 N > @@ -109,7 +109,7 @@ > * _GSB 6.2.6 N > * _GTF 9.8.1.1 N > * _GTM 9.8.2.1.1 N > - * _GTS 7.3.3 Y > + * _GTS 7.3.3 deprecated > * _GWS 9.18.5 N > * _HID 6.1.5 N > * _HOT 11.4.6 Y > @@ -925,30 +925,6 @@ static int method_test_BMC(fwts_framework *fw) > > /* Section 15, Waking and Sleeping */ > > -static int method_test_BFS(fwts_framework *fw) > -{ > - int i; > - > - if (fwts_method_exists("_BFS") != NULL) { > - for (i=1; i<6; i++) { > - ACPI_OBJECT arg[1]; > - > - arg[0].Type = ACPI_TYPE_INTEGER; > - arg[0].Integer.Value = i; > - > - if (method_evaluate_method(fw, METHOD_OPTIONAL, "_BFS", arg, 1, > - method_test_NULL_return, NULL) == FWTS_NOT_EXIST) > - break; > - fwts_log_nl(fw); > - } > - } > - else { > - fwts_skipped(fw, "Optional control method _BFS does not exist."); > - } > - > - return FWTS_OK; > -} > - > static int method_test_PTS(fwts_framework *fw) > { > int i; > @@ -975,31 +951,6 @@ static int method_test_PTS(fwts_framework *fw) > return FWTS_OK; > } > > -static int method_test_GTS(fwts_framework *fw) > -{ > - int i; > - > - if (fwts_method_exists("_GTS") != NULL) { > - for (i=1; i<6; i++) { > - ACPI_OBJECT arg[1]; > - > - arg[0].Type = ACPI_TYPE_INTEGER; > - arg[0].Integer.Value = i; > - > - fwts_log_info(fw, "Test _GTS(%d) (Going To Sleep, State S%d.", i, i); > - > - if (method_evaluate_method(fw, METHOD_OPTIONAL, "_GTS", arg, 1, > - method_test_NULL_return, NULL) == FWTS_NOT_EXIST) > - break; > - fwts_log_nl(fw); > - } > - } > - else { > - fwts_skipped(fw, "Optional control method _GTS does not exist."); > - } > - return FWTS_OK; > -} > - > static int method_test_TTS(fwts_framework *fw) > { > int i; > @@ -2202,9 +2153,7 @@ static fwts_framework_minor_test method_tests[] = { > { method_test_BBN, "Check _BBN (Base Bus Number)." }, > > /* Section 15, Waking and Sleeping */ > - { method_test_BFS, "Check _BFS (Back from Sleep)." }, > { method_test_PTS, "Check _PTS (Prepare to Sleep)." }, > - { method_test_GTS, "Check _GTS (Going to Sleep)." }, > { method_test_TTS, "Check _TTS (Transition to State)." }, > { method_test_S0, "Check _S0 (System S0 State) Object." }, > { method_test_S1, "Check _S1 (System S1 State) Object." }, > I never see _GTS and _BFS used anywhere, either. Acked-by: Alex Hung <alex.hung@canonical.com>
On 08/01/2012 12:38 AM, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > Just seen _GTS and _BFS support being removed from Linux and > according to Len Brown: > > "_GTS and _BFS were added to the suspend/resume flow > in the ACPI 2.0 specification. > > Linux dutifully implemented _GTS and _BFS. > We discovered that it was rarely seen in systems > in the field. Further, some of those systems had > AML so bogus that it could never work -- proof that > no other operating system supports _GTS and _BFS. > So we made _GTS and _BFS optional via modparam, > and disabled them by default. > > But we've had to complicate some code to keep > this support in the kernel, as these methods are defined > to be evaluated very close to sleep entry and exit. > Indeed, no other AML is ever evaluated with interrupts off. > > We have submitted a proposal for _GTS and _BFS > to be officially removed from the ACPI specification > on the next revision. Here we remove it from Linux." > > So, these are not worth testing and should be deprecated > from the method test. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > src/acpi/method/method.c | 55 ++-------------------------------------------- > 1 file changed, 2 insertions(+), 53 deletions(-) > > diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c > index a1bf873..032f42e 100644 > --- a/src/acpi/method/method.c > +++ b/src/acpi/method/method.c > @@ -48,7 +48,7 @@ > * _BCM B.6.3 Y > * _BCT 10.2.29 N > * _BDN 6.5.3 N > - * _BFS 7.3.1 Y > + * _BFS 7.3.1 deprecated > * _BIF 10.2.2.1 Y > * _BIX 10.2.2.2 Y > * _BLT 9.1.3 N > @@ -109,7 +109,7 @@ > * _GSB 6.2.6 N > * _GTF 9.8.1.1 N > * _GTM 9.8.2.1.1 N > - * _GTS 7.3.3 Y > + * _GTS 7.3.3 deprecated > * _GWS 9.18.5 N > * _HID 6.1.5 N > * _HOT 11.4.6 Y > @@ -925,30 +925,6 @@ static int method_test_BMC(fwts_framework *fw) > > /* Section 15, Waking and Sleeping */ > > -static int method_test_BFS(fwts_framework *fw) > -{ > - int i; > - > - if (fwts_method_exists("_BFS") != NULL) { > - for (i=1; i<6; i++) { > - ACPI_OBJECT arg[1]; > - > - arg[0].Type = ACPI_TYPE_INTEGER; > - arg[0].Integer.Value = i; > - > - if (method_evaluate_method(fw, METHOD_OPTIONAL, "_BFS", arg, 1, > - method_test_NULL_return, NULL) == FWTS_NOT_EXIST) > - break; > - fwts_log_nl(fw); > - } > - } > - else { > - fwts_skipped(fw, "Optional control method _BFS does not exist."); > - } > - > - return FWTS_OK; > -} > - > static int method_test_PTS(fwts_framework *fw) > { > int i; > @@ -975,31 +951,6 @@ static int method_test_PTS(fwts_framework *fw) > return FWTS_OK; > } > > -static int method_test_GTS(fwts_framework *fw) > -{ > - int i; > - > - if (fwts_method_exists("_GTS") != NULL) { > - for (i=1; i<6; i++) { > - ACPI_OBJECT arg[1]; > - > - arg[0].Type = ACPI_TYPE_INTEGER; > - arg[0].Integer.Value = i; > - > - fwts_log_info(fw, "Test _GTS(%d) (Going To Sleep, State S%d.", i, i); > - > - if (method_evaluate_method(fw, METHOD_OPTIONAL, "_GTS", arg, 1, > - method_test_NULL_return, NULL) == FWTS_NOT_EXIST) > - break; > - fwts_log_nl(fw); > - } > - } > - else { > - fwts_skipped(fw, "Optional control method _GTS does not exist."); > - } > - return FWTS_OK; > -} > - > static int method_test_TTS(fwts_framework *fw) > { > int i; > @@ -2202,9 +2153,7 @@ static fwts_framework_minor_test method_tests[] = { > { method_test_BBN, "Check _BBN (Base Bus Number)." }, > > /* Section 15, Waking and Sleeping */ > - { method_test_BFS, "Check _BFS (Back from Sleep)." }, > { method_test_PTS, "Check _PTS (Prepare to Sleep)." }, > - { method_test_GTS, "Check _GTS (Going to Sleep)." }, > { method_test_TTS, "Check _TTS (Transition to State)." }, > { method_test_S0, "Check _S0 (System S0 State) Object." }, > { method_test_S1, "Check _S1 (System S1 State) Object." }, > Acked-by: Ivan Hu <ivan.hu@canonical.com>
diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c index a1bf873..032f42e 100644 --- a/src/acpi/method/method.c +++ b/src/acpi/method/method.c @@ -48,7 +48,7 @@ * _BCM B.6.3 Y * _BCT 10.2.29 N * _BDN 6.5.3 N - * _BFS 7.3.1 Y + * _BFS 7.3.1 deprecated * _BIF 10.2.2.1 Y * _BIX 10.2.2.2 Y * _BLT 9.1.3 N @@ -109,7 +109,7 @@ * _GSB 6.2.6 N * _GTF 9.8.1.1 N * _GTM 9.8.2.1.1 N - * _GTS 7.3.3 Y + * _GTS 7.3.3 deprecated * _GWS 9.18.5 N * _HID 6.1.5 N * _HOT 11.4.6 Y @@ -925,30 +925,6 @@ static int method_test_BMC(fwts_framework *fw) /* Section 15, Waking and Sleeping */ -static int method_test_BFS(fwts_framework *fw) -{ - int i; - - if (fwts_method_exists("_BFS") != NULL) { - for (i=1; i<6; i++) { - ACPI_OBJECT arg[1]; - - arg[0].Type = ACPI_TYPE_INTEGER; - arg[0].Integer.Value = i; - - if (method_evaluate_method(fw, METHOD_OPTIONAL, "_BFS", arg, 1, - method_test_NULL_return, NULL) == FWTS_NOT_EXIST) - break; - fwts_log_nl(fw); - } - } - else { - fwts_skipped(fw, "Optional control method _BFS does not exist."); - } - - return FWTS_OK; -} - static int method_test_PTS(fwts_framework *fw) { int i; @@ -975,31 +951,6 @@ static int method_test_PTS(fwts_framework *fw) return FWTS_OK; } -static int method_test_GTS(fwts_framework *fw) -{ - int i; - - if (fwts_method_exists("_GTS") != NULL) { - for (i=1; i<6; i++) { - ACPI_OBJECT arg[1]; - - arg[0].Type = ACPI_TYPE_INTEGER; - arg[0].Integer.Value = i; - - fwts_log_info(fw, "Test _GTS(%d) (Going To Sleep, State S%d.", i, i); - - if (method_evaluate_method(fw, METHOD_OPTIONAL, "_GTS", arg, 1, - method_test_NULL_return, NULL) == FWTS_NOT_EXIST) - break; - fwts_log_nl(fw); - } - } - else { - fwts_skipped(fw, "Optional control method _GTS does not exist."); - } - return FWTS_OK; -} - static int method_test_TTS(fwts_framework *fw) { int i; @@ -2202,9 +2153,7 @@ static fwts_framework_minor_test method_tests[] = { { method_test_BBN, "Check _BBN (Base Bus Number)." }, /* Section 15, Waking and Sleeping */ - { method_test_BFS, "Check _BFS (Back from Sleep)." }, { method_test_PTS, "Check _PTS (Prepare to Sleep)." }, - { method_test_GTS, "Check _GTS (Going to Sleep)." }, { method_test_TTS, "Check _TTS (Transition to State)." }, { method_test_S0, "Check _S0 (System S0 State) Object." }, { method_test_S1, "Check _S1 (System S1 State) Object." },