Guest User

Untitled

a guest
Jan 23rd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. static int ec_install_handlers(struct acpi_ec *ec)
  2. {
  3. acpi_status status;
  4. if (test_bit(EC_FLAGS_HANDLERS_INSTALLED, &ec->flags))
  5. return 0;
  6. status = acpi_install_gpe_handler(NULL, ec->gpe,
  7. ACPI_GPE_EDGE_TRIGGERED,
  8. &acpi_ec_gpe_handler, ec);
  9. if (ACPI_FAILURE(status))
  10. return -ENODEV;
  11.  
  12. acpi_enable_gpe(NULL, ec->gpe);
  13. status = acpi_install_address_space_handler(ec->handle,
  14. ACPI_ADR_SPACE_EC,
  15. &acpi_ec_space_handler,
  16. NULL, ec);
  17. if (ACPI_FAILURE(status)) {
  18. if (status == AE_NOT_FOUND) {
  19. /*
  20. * Maybe OS fails in evaluating the _REG object.
  21. * The AE_NOT_FOUND error will be ignored and OS
  22. * continue to initialize EC.
  23. */
  24. printk(KERN_ERR "Fail in evaluating the _REG object"
  25. " of EC device. Broken bios is suspected.\n");
  26. } else {
  27. acpi_remove_gpe_handler(NULL, ec->gpe,
  28. &acpi_ec_gpe_handler);
  29. acpi_disable_gpe(NULL, ec->gpe);
  30. return -ENODEV;
  31. }
  32. }
  33.  
  34. set_bit(EC_FLAGS_HANDLERS_INSTALLED, &ec->flags);
  35. return 0;
  36. }
Add Comment
Please, Sign In to add comment