aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/utilities/utinit.c65
1 files changed, 23 insertions, 42 deletions
diff --git a/drivers/acpi/utilities/utinit.c b/drivers/acpi/utilities/utinit.c
index 2d2c4a3aeaae..5079f1943a3b 100644
--- a/drivers/acpi/utilities/utinit.c
+++ b/drivers/acpi/utilities/utinit.c
@@ -50,8 +50,7 @@
50ACPI_MODULE_NAME("utinit") 50ACPI_MODULE_NAME("utinit")
51 51
52/* Local prototypes */ 52/* Local prototypes */
53static void 53static void acpi_ut_fadt_register_error(char *register_name, u32 value);
54acpi_ut_fadt_register_error(char *register_name, u32 value, u8 offset);
55 54
56static void acpi_ut_terminate(void); 55static void acpi_ut_terminate(void);
57 56
@@ -61,21 +60,18 @@ static void acpi_ut_terminate(void);
61 * 60 *
62 * PARAMETERS: register_name - Pointer to string identifying register 61 * PARAMETERS: register_name - Pointer to string identifying register
63 * Value - Actual register contents value 62 * Value - Actual register contents value
64 * Offset - Byte offset in the FADT
65 * 63 *
66 * RETURN: AE_BAD_VALUE 64 * RETURN: None
67 * 65 *
68 * DESCRIPTION: Display failure message 66 * DESCRIPTION: Display failure message
69 * 67 *
70 ******************************************************************************/ 68 ******************************************************************************/
71 69
72static void 70static void acpi_ut_fadt_register_error(char *register_name, u32 value)
73acpi_ut_fadt_register_error(char *register_name, u32 value, u8 offset)
74{ 71{
75 72
76 ACPI_WARNING((AE_INFO, 73 ACPI_WARNING((AE_INFO, "Invalid FADT value %s = %X",
77 "Invalid FADT value %s=%X at offset %X in FADT=%p", 74 register_name, value));
78 register_name, value, offset, &acpi_gbl_FADT));
79} 75}
80 76
81/****************************************************************************** 77/******************************************************************************
@@ -98,69 +94,54 @@ acpi_status acpi_ut_validate_fadt(void)
98 * but don't abort on any problems, just display error 94 * but don't abort on any problems, just display error
99 */ 95 */
100 if (acpi_gbl_FADT.pm1_event_length < 4) { 96 if (acpi_gbl_FADT.pm1_event_length < 4) {
101 acpi_ut_fadt_register_error("PM1_EVT_LEN", 97 acpi_ut_fadt_register_error("Pm1EventLength",
102 (u32) acpi_gbl_FADT. 98 (u32) acpi_gbl_FADT.
103 pm1_event_length, 99 pm1_event_length);
104 ACPI_FADT_OFFSET(pm1_event_length)); 100 }
101
102 if (acpi_gbl_FADT.pm_timer_length < 4) {
103 acpi_ut_fadt_register_error("PmTimerLength",
104 (u32) acpi_gbl_FADT.
105 pm_timer_length);
105 } 106 }
106 107
107 if (!acpi_gbl_FADT.pm1_control_length) { 108 if (!acpi_gbl_FADT.pm1_control_length) {
108 acpi_ut_fadt_register_error("PM1_CNT_LEN", 0, 109 acpi_ut_fadt_register_error("Pm1ControlLength", 0);
109 ACPI_FADT_OFFSET
110 (pm1_control_length));
111 } 110 }
112 111
113 if (!acpi_gbl_FADT.xpm1a_event_block.address) { 112 if (!acpi_gbl_FADT.xpm1a_event_block.address) {
114 acpi_ut_fadt_register_error("X_PM1a_EVT_BLK", 0, 113 acpi_ut_fadt_register_error("XPm1aEventBlock.Address", 0);
115 ACPI_FADT_OFFSET(xpm1a_event_block.
116 address));
117 } 114 }
118 115
119 if (!acpi_gbl_FADT.xpm1a_control_block.address) { 116 if (!acpi_gbl_FADT.xpm1a_control_block.address) {
120 acpi_ut_fadt_register_error("X_PM1a_CNT_BLK", 0, 117 acpi_ut_fadt_register_error("XPm1aControlBlock.Address", 0);
121 ACPI_FADT_OFFSET
122 (xpm1a_control_block.address));
123 } 118 }
124 119
125 if (!acpi_gbl_FADT.xpm_timer_block.address) { 120 if (!acpi_gbl_FADT.xpm_timer_block.address) {
126 acpi_ut_fadt_register_error("X_PM_TMR_BLK", 0, 121 acpi_ut_fadt_register_error("XPmTimerBlock.Address", 0);
127 ACPI_FADT_OFFSET(xpm_timer_block.
128 address));
129 } 122 }
130 123
131 if ((acpi_gbl_FADT.xpm2_control_block.address && 124 if ((acpi_gbl_FADT.xpm2_control_block.address &&
132 !acpi_gbl_FADT.pm2_control_length)) { 125 !acpi_gbl_FADT.pm2_control_length)) {
133 acpi_ut_fadt_register_error("PM2_CNT_LEN", 126 acpi_ut_fadt_register_error("Pm2ControlLength",
134 (u32) acpi_gbl_FADT. 127 (u32) acpi_gbl_FADT.
135 pm2_control_length, 128 pm2_control_length);
136 ACPI_FADT_OFFSET
137 (pm2_control_length));
138 }
139
140 if (acpi_gbl_FADT.pm_timer_length < 4) {
141 acpi_ut_fadt_register_error("PM_TM_LEN",
142 (u32) acpi_gbl_FADT.pm_timer_length,
143 ACPI_FADT_OFFSET(pm_timer_length));
144 } 129 }
145 130
146 /* Length of GPE blocks must be a multiple of 2 */ 131 /* Length of GPE blocks must be a multiple of 2 */
147 132
148 if (acpi_gbl_FADT.xgpe0_block.address && 133 if (acpi_gbl_FADT.xgpe0_block.address &&
149 (acpi_gbl_FADT.gpe0_block_length & 1)) { 134 (acpi_gbl_FADT.gpe0_block_length & 1)) {
150 acpi_ut_fadt_register_error("(x)GPE0_BLK_LEN", 135 acpi_ut_fadt_register_error("Gpe0BlockLength",
151 (u32) acpi_gbl_FADT. 136 (u32) acpi_gbl_FADT.
152 gpe0_block_length, 137 gpe0_block_length);
153 ACPI_FADT_OFFSET
154 (gpe0_block_length));
155 } 138 }
156 139
157 if (acpi_gbl_FADT.xgpe1_block.address && 140 if (acpi_gbl_FADT.xgpe1_block.address &&
158 (acpi_gbl_FADT.gpe1_block_length & 1)) { 141 (acpi_gbl_FADT.gpe1_block_length & 1)) {
159 acpi_ut_fadt_register_error("(x)GPE1_BLK_LEN", 142 acpi_ut_fadt_register_error("Gpe1BlockLength",
160 (u32) acpi_gbl_FADT. 143 (u32) acpi_gbl_FADT.
161 gpe1_block_length, 144 gpe1_block_length);
162 ACPI_FADT_OFFSET
163 (gpe1_block_length));
164 } 145 }
165 146
166 return (AE_OK); 147 return (AE_OK);