Deleted Added
full compact
hwxfsleep.c (238381) hwxfsleep.c (239340)
1/******************************************************************************
2 *
3 * Name: hwxfsleep.c - ACPI Hardware Sleep/Wake External Interfaces
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2012, Intel Corp.

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

47#define _COMPONENT ACPI_HARDWARE
48 ACPI_MODULE_NAME ("hwxfsleep")
49
50/* Local prototypes */
51
52static ACPI_STATUS
53AcpiHwSleepDispatch (
54 UINT8 SleepState,
1/******************************************************************************
2 *
3 * Name: hwxfsleep.c - ACPI Hardware Sleep/Wake External Interfaces
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2012, Intel Corp.

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

47#define _COMPONENT ACPI_HARDWARE
48 ACPI_MODULE_NAME ("hwxfsleep")
49
50/* Local prototypes */
51
52static ACPI_STATUS
53AcpiHwSleepDispatch (
54 UINT8 SleepState,
55 UINT8 Flags,
56 UINT32 FunctionId);
57
58/*
59 * Dispatch table used to efficiently branch to the various sleep
60 * functions.
61 */
62#define ACPI_SLEEP_FUNCTION_ID 0
63#define ACPI_WAKE_PREP_FUNCTION_ID 1

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

256 * DESCRIPTION: Dispatch a sleep/wake request to the appropriate handling
257 * function.
258 *
259 ******************************************************************************/
260
261static ACPI_STATUS
262AcpiHwSleepDispatch (
263 UINT8 SleepState,
55 UINT32 FunctionId);
56
57/*
58 * Dispatch table used to efficiently branch to the various sleep
59 * functions.
60 */
61#define ACPI_SLEEP_FUNCTION_ID 0
62#define ACPI_WAKE_PREP_FUNCTION_ID 1

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

255 * DESCRIPTION: Dispatch a sleep/wake request to the appropriate handling
256 * function.
257 *
258 ******************************************************************************/
259
260static ACPI_STATUS
261AcpiHwSleepDispatch (
262 UINT8 SleepState,
264 UINT8 Flags,
265 UINT32 FunctionId)
266{
267 ACPI_STATUS Status;
268 ACPI_SLEEP_FUNCTIONS *SleepFunctions = &AcpiSleepDispatch[FunctionId];
269
270
271#if (!ACPI_REDUCED_HARDWARE)
272
273 /*
274 * If the Hardware Reduced flag is set (from the FADT), we must
275 * use the extended sleep registers
276 */
277 if (AcpiGbl_ReducedHardware ||
278 AcpiGbl_FADT.SleepControl.Address)
279 {
263 UINT32 FunctionId)
264{
265 ACPI_STATUS Status;
266 ACPI_SLEEP_FUNCTIONS *SleepFunctions = &AcpiSleepDispatch[FunctionId];
267
268
269#if (!ACPI_REDUCED_HARDWARE)
270
271 /*
272 * If the Hardware Reduced flag is set (from the FADT), we must
273 * use the extended sleep registers
274 */
275 if (AcpiGbl_ReducedHardware ||
276 AcpiGbl_FADT.SleepControl.Address)
277 {
280 Status = SleepFunctions->ExtendedFunction (SleepState, Flags);
278 Status = SleepFunctions->ExtendedFunction (SleepState);
281 }
282 else
283 {
284 /* Legacy sleep */
285
279 }
280 else
281 {
282 /* Legacy sleep */
283
286 Status = SleepFunctions->LegacyFunction (SleepState, Flags);
284 Status = SleepFunctions->LegacyFunction (SleepState);
287 }
288
289 return (Status);
290
291#else
292 /*
293 * For the case where reduced-hardware-only code is being generated,
294 * we know that only the extended sleep registers are available
295 */
285 }
286
287 return (Status);
288
289#else
290 /*
291 * For the case where reduced-hardware-only code is being generated,
292 * we know that only the extended sleep registers are available
293 */
296 Status = SleepFunctions->ExtendedFunction (SleepState, Flags);
294 Status = SleepFunctions->ExtendedFunction (SleepState);
297 return (Status);
298
299#endif /* !ACPI_REDUCED_HARDWARE */
300}
301
302
303/*******************************************************************************
304 *

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

382ACPI_EXPORT_SYMBOL (AcpiEnterSleepStatePrep)
383
384
385/*******************************************************************************
386 *
387 * FUNCTION: AcpiEnterSleepState
388 *
389 * PARAMETERS: SleepState - Which sleep state to enter
295 return (Status);
296
297#endif /* !ACPI_REDUCED_HARDWARE */
298}
299
300
301/*******************************************************************************
302 *

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

380ACPI_EXPORT_SYMBOL (AcpiEnterSleepStatePrep)
381
382
383/*******************************************************************************
384 *
385 * FUNCTION: AcpiEnterSleepState
386 *
387 * PARAMETERS: SleepState - Which sleep state to enter
390 * Flags - ACPI_EXECUTE_GTS to run optional method
391 *
392 * RETURN: Status
393 *
394 * DESCRIPTION: Enter a system sleep state
395 * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
396 *
397 ******************************************************************************/
398
399ACPI_STATUS
400AcpiEnterSleepState (
388 *
389 * RETURN: Status
390 *
391 * DESCRIPTION: Enter a system sleep state
392 * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
393 *
394 ******************************************************************************/
395
396ACPI_STATUS
397AcpiEnterSleepState (
401 UINT8 SleepState,
402 UINT8 Flags)
398 UINT8 SleepState)
403{
404 ACPI_STATUS Status;
405
406
407 ACPI_FUNCTION_TRACE (AcpiEnterSleepState);
408
409
410 if ((AcpiGbl_SleepTypeA > ACPI_SLEEP_TYPE_MAX) ||
411 (AcpiGbl_SleepTypeB > ACPI_SLEEP_TYPE_MAX))
412 {
413 ACPI_ERROR ((AE_INFO, "Sleep values out of range: A=0x%X B=0x%X",
414 AcpiGbl_SleepTypeA, AcpiGbl_SleepTypeB));
415 return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
416 }
417
399{
400 ACPI_STATUS Status;
401
402
403 ACPI_FUNCTION_TRACE (AcpiEnterSleepState);
404
405
406 if ((AcpiGbl_SleepTypeA > ACPI_SLEEP_TYPE_MAX) ||
407 (AcpiGbl_SleepTypeB > ACPI_SLEEP_TYPE_MAX))
408 {
409 ACPI_ERROR ((AE_INFO, "Sleep values out of range: A=0x%X B=0x%X",
410 AcpiGbl_SleepTypeA, AcpiGbl_SleepTypeB));
411 return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
412 }
413
418 Status = AcpiHwSleepDispatch (SleepState, Flags, ACPI_SLEEP_FUNCTION_ID);
414 Status = AcpiHwSleepDispatch (SleepState, ACPI_SLEEP_FUNCTION_ID);
419 return_ACPI_STATUS (Status);
420}
421
422ACPI_EXPORT_SYMBOL (AcpiEnterSleepState)
423
424
425/*******************************************************************************
426 *
427 * FUNCTION: AcpiLeaveSleepStatePrep
428 *
429 * PARAMETERS: SleepState - Which sleep state we are exiting
415 return_ACPI_STATUS (Status);
416}
417
418ACPI_EXPORT_SYMBOL (AcpiEnterSleepState)
419
420
421/*******************************************************************************
422 *
423 * FUNCTION: AcpiLeaveSleepStatePrep
424 *
425 * PARAMETERS: SleepState - Which sleep state we are exiting
430 * Flags - ACPI_EXECUTE_BFS to run optional method
431 *
432 * RETURN: Status
433 *
434 * DESCRIPTION: Perform the first state of OS-independent ACPI cleanup after a
435 * sleep. Called with interrupts DISABLED.
436 * We break wake/resume into 2 stages so that OSPM can handle
437 * various OS-specific tasks between the two steps.
438 *
439 ******************************************************************************/
440
441ACPI_STATUS
442AcpiLeaveSleepStatePrep (
426 *
427 * RETURN: Status
428 *
429 * DESCRIPTION: Perform the first state of OS-independent ACPI cleanup after a
430 * sleep. Called with interrupts DISABLED.
431 * We break wake/resume into 2 stages so that OSPM can handle
432 * various OS-specific tasks between the two steps.
433 *
434 ******************************************************************************/
435
436ACPI_STATUS
437AcpiLeaveSleepStatePrep (
443 UINT8 SleepState,
444 UINT8 Flags)
438 UINT8 SleepState)
445{
446 ACPI_STATUS Status;
447
448
449 ACPI_FUNCTION_TRACE (AcpiLeaveSleepStatePrep);
450
451
439{
440 ACPI_STATUS Status;
441
442
443 ACPI_FUNCTION_TRACE (AcpiLeaveSleepStatePrep);
444
445
452 Status = AcpiHwSleepDispatch (SleepState, Flags, ACPI_WAKE_PREP_FUNCTION_ID);
446 Status = AcpiHwSleepDispatch (SleepState, ACPI_WAKE_PREP_FUNCTION_ID);
453 return_ACPI_STATUS (Status);
454}
455
456ACPI_EXPORT_SYMBOL (AcpiLeaveSleepStatePrep)
457
458
459/*******************************************************************************
460 *

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

474 UINT8 SleepState)
475{
476 ACPI_STATUS Status;
477
478
479 ACPI_FUNCTION_TRACE (AcpiLeaveSleepState);
480
481
447 return_ACPI_STATUS (Status);
448}
449
450ACPI_EXPORT_SYMBOL (AcpiLeaveSleepStatePrep)
451
452
453/*******************************************************************************
454 *

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

468 UINT8 SleepState)
469{
470 ACPI_STATUS Status;
471
472
473 ACPI_FUNCTION_TRACE (AcpiLeaveSleepState);
474
475
482 Status = AcpiHwSleepDispatch (SleepState, 0, ACPI_WAKE_FUNCTION_ID);
476 Status = AcpiHwSleepDispatch (SleepState, ACPI_WAKE_FUNCTION_ID);
483 return_ACPI_STATUS (Status);
484}
485
486ACPI_EXPORT_SYMBOL (AcpiLeaveSleepState)
477 return_ACPI_STATUS (Status);
478}
479
480ACPI_EXPORT_SYMBOL (AcpiLeaveSleepState)