Deleted Added
full compact
hwsleep.c (77424) hwsleep.c (78986)
1
2/******************************************************************************
3 *
4 * Name: hwsleep.c - ACPI Hardware Sleep/Wake Interface
1
2/******************************************************************************
3 *
4 * Name: hwsleep.c - ACPI Hardware Sleep/Wake Interface
5 * $Revision: 11 $
5 * $Revision: 12 $
6 *
7 *****************************************************************************/
8
9/******************************************************************************
10 *
11 * 1. Copyright Notice
12 *
13 * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp.

--- 250 unchanged lines hidden (view full) ---

264
265 AcpiEvaluateObject(NULL, "\\_PTS", &ArgList, NULL);
266 AcpiEvaluateObject(NULL, "\\_GTS", &ArgList, NULL);
267
268 /* clear wake status */
269
270 AcpiHwRegisterBitAccess(ACPI_WRITE, ACPI_MTX_LOCK, WAK_STS, 1);
271
6 *
7 *****************************************************************************/
8
9/******************************************************************************
10 *
11 * 1. Copyright Notice
12 *
13 * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp.

--- 250 unchanged lines hidden (view full) ---

264
265 AcpiEvaluateObject(NULL, "\\_PTS", &ArgList, NULL);
266 AcpiEvaluateObject(NULL, "\\_GTS", &ArgList, NULL);
267
268 /* clear wake status */
269
270 AcpiHwRegisterBitAccess(ACPI_WRITE, ACPI_MTX_LOCK, WAK_STS, 1);
271
272 disable();
273
272 PM1AControl = (UINT16) AcpiHwRegisterRead(ACPI_MTX_LOCK, PM1_CONTROL);
273
274 PM1AControl = (UINT16) AcpiHwRegisterRead(ACPI_MTX_LOCK, PM1_CONTROL);
275
274 /* mask off SLP_EN and SLP_TYP fields */
276 DEBUG_PRINT(ACPI_OK, ("Entering S%d\n", SleepState));
275
277
278 /* mask off SLP_EN and SLP_TYP fields */
276 PM1AControl &= 0xC3FF;
279 PM1AControl &= 0xC3FF;
277
278 /* mask in SLP_EN */
279
280 PM1AControl |= (1 << AcpiHwGetBitShift (SLP_EN_MASK));
281
282 PM1BControl = PM1AControl;
283
284 /* mask in SLP_TYP */
280 PM1BControl = PM1AControl;
281
282 /* mask in SLP_TYP */
285
286 PM1AControl |= (TypeA << AcpiHwGetBitShift (SLP_TYPE_X_MASK));
287 PM1BControl |= (TypeB << AcpiHwGetBitShift (SLP_TYPE_X_MASK));
288
283 PM1AControl |= (TypeA << AcpiHwGetBitShift (SLP_TYPE_X_MASK));
284 PM1BControl |= (TypeB << AcpiHwGetBitShift (SLP_TYPE_X_MASK));
285
289 DEBUG_PRINT(ACPI_OK, ("Entering S%d\n", SleepState));
286 /* write #1: fill in SLP_TYPE data */
287 AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1A_CONTROL, PM1AControl);
288 AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1B_CONTROL, PM1BControl);
290
289
291 disable();
290 /* mask in SLP_EN */
291 PM1AControl |= (1 << AcpiHwGetBitShift (SLP_EN_MASK));
292 PM1BControl |= (1 << AcpiHwGetBitShift (SLP_EN_MASK));
292
293
294 /* write #2: the whole tamale */
293 AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1A_CONTROL, PM1AControl);
294 AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1B_CONTROL, PM1BControl);
295
295 AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1A_CONTROL, PM1AControl);
296 AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1B_CONTROL, PM1BControl);
297
296 /* one system won't work with this, one won't work without */
297 /*AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1_CONTROL,
298 (1 << AcpiHwGetBitShift (SLP_EN_MASK)));*/
299
300 enable();
301
302 return_ACPI_STATUS (AE_OK);
303}
298 enable();
299
300 return_ACPI_STATUS (AE_OK);
301}