Commit Graph

39 Commits

Author SHA1 Message Date
Fredrik Holmqvist
92d766df7c Pass a handle to evaluate_object as start point. 2012-12-15 14:10:11 +01:00
Yongcong Du
0a0af8957e acpi: export read_bit_register and write_bit_register
acpi cpuidle needs such acpi functions

Signed-off-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2012-11-18 17:39:20 +01:00
Yongcong Du
57311e7bb7 acpi: add ACPI_ALLOCATE_LOCAL_BUFFER to ACPI.h
Signed-off-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2012-11-18 17:39:19 +01:00
Fredrik Holmqvist
9b0d045c59 Update to ACPICA 20121018.
This is an update from 20120711 and A LOT has happened since then. See
    https://acpica.org/download/changes.txt for all the changes.
2012-11-03 22:46:22 +01:00
Fredrik Holmqvist
a51a5f3e1e Fixes to Haiku specific code to work with ACPICA 20120711. 2012-07-12 18:32:56 +02:00
Fredrik Holmqvist
fcb8a5cb4e * Updated ACPICA to 20110623.
See http://www.acpica.org/download/changes.txt done after 2010-10-13 for info on ACPI changes.
 * Adapted the embedded controller to match current FreeBSD one.

There will probably be some issues with these changes initially.




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-17 19:16:21 +00:00
Michael Lotz
407af313ca Make the signature argument to get_table() const. Should fix the GCC4 build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-11 09:05:43 +00:00
Michael Lotz
2645ca0a28 Provide a function to gain ACPI table access.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-11 08:22:22 +00:00
Michael Lotz
2800b06462 Add missing const to the path argument of get_handle().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-09 13:05:28 +00:00
Michael Lotz
ce57718d12 Add set_current_resources() which will be used to configure device resources
from settings retrieved through get_{current|possible}_resources().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-08 12:13:55 +00:00
Michael Lotz
290ac5f9b5 Basically revert r41365. Remove the get_pci_info() function of ACPI again as it
turns out to be flaky, is a little bit of a hack anyway and performs unnecessary
operations. The functionality is now handled kernel side which optimizes those
problems away.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41372 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-08 01:15:39 +00:00
Michael Lotz
0fc2a29e52 Cleanup spaces vs. tabs. Probably those spaces were copied over from ACPICA
sources as they use 4 spaces instead of tabs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-07 17:07:04 +00:00
Michael Lotz
5789be33af Add a way to look up basic PCI info for an ACPI device. It works for retrieving
the base bus number and segment which is what we're using them for. It should
work generically, however I only tested it to look up PCI bridge devices.
The logic is a subset of what is done in AcpiEvPciConfigRegionSetup when setting
up the operation region for a PCI device.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-07 16:50:46 +00:00
Michael Lotz
fbf6f924d3 * The integer type is actually 64bit, probably just a typo (from very long ago).
* Some automatic whitespace cleanup.

This makes the interrupt model change via kernel actually work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-06 04:28:39 +00:00
Fredrik Holmqvist
01de6adfba This opens up so many possiblities.
* ACPI module now has a get_possible_resources function.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-05 17:29:37 +00:00
Brecht Machiels
8e9e1577cc * added notify headers to the ACPI header (from actypes.h)
* adjusted acpi_battery accordingly



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-04-01 20:14:01 +00:00
Fredrik Holmqvist
12474ac0a5 Updated ACPICA to 20101013 from 20100428. See http://www.acpica.org/download/changes.txt for changes.
Embedded Controller still needs some looking into, and I had to remove the WIP code for dumping MADT.
Both are on my TODO.

Also removed a lot of unneeded parts of ACPICA from trunk and did some cleanup in Jamfile.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-21 21:58:06 +00:00
Fredrik Holmqvist
d7b1a83fc3 Add get_current_resources call to ACPI module which allows us to read out a device current resources.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38288 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-20 19:23:33 +00:00
Fredrik Holmqvist
ffb873afec Merge acpi from acpica vendor branch 20100428:
* AcpiSetGpeType no longer exists, replaced with AcpiSetGpe. Since acpi changed gpe handling embedded controller might need improvements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36867 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-19 21:33:02 +00:00
Fredrik Holmqvist
5d9cc10f80 Moving ACPI Embedded Controller to ACPI bus manager.
* Removed irq_routing struct from ACPI.h to where it is used. Might be able to use acrestype.h instead of duplication.
 * Disable old embedded controller and remove it from image.
 * Move embedded controller code to busmanager module.
 * Remove (some) code duplication

Should work as before, but is now initialized right after the bus manager. Can probably remove further code duplication.
I hope I've done it correctly, feedback is most welcome.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-22 16:19:41 +00:00
Fredrik Holmqvist
186058c517 Some corrections and cleanup to ACPI Embedded controller:
* Exposed ACPI API needed by Embedded Controller
	This will be removed again if moved inside the bus manager.
	It also duplicates ACPI's own headers so it might go out of sync atm.
 * Added mutex to controller and fixed the mixup between acpi_status needed in int handlers and Haiku status.
 * Major code cleanup
	Not for headers as they are mostly redundant if we move the controller.
	Variable names still needs some cleanup

This makes the ACPI errors from the controller understandable. I get AE_NO_HARDWARE_RESPONSE now.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-15 19:23:43 +00:00
Clemens Zeidler
ef0f557c65 As suggested by Axel use addr_t and size_t.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-23 16:40:36 +00:00
Clemens Zeidler
5237897801 Check if we have 64 or 32 bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:49:20 +00:00
Clemens Zeidler
d503f2628b Forget ACPI.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-23 21:31:18 +00:00
Clemens Zeidler
7f6d3afb1d Add ns_handle_to_pathname acpi function to the acpi module.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-19 19:00:26 +00:00
Clemens Zeidler
cb6cd182c4 Remove type variable from reference, it is already defined as object_type before of the union.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-19 17:42:18 +00:00
Jérôme Duval
40d6120c3b Patch from Vincent Duvert (edited by myself): Implement reboot via ACPI (#4459)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-09-14 17:37:53 +00:00
Clemens Zeidler
5f6906e1eb - Add some more acpi function to the acpi module and acpi device module. Need this functions for the embedded controller and battery driver.
- Now also use the acpi handle to call a function and not use the path to get a handle and then call the function.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-18 18:18:40 +00:00
Stefano Ceccherini
c1f949908a get_device_hid() now has a 'size_t bufferLength' parameter, to avoid the risk of buffer overflow
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30575 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-02 16:04:15 +00:00
Michael Lotz
88db388930 Remove one line of whitespace.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-16 21:22:00 +00:00
Axel Dörfler
a181d013aa * Divided enter_sleep_state() to have a prepare_sleep_state() that accepts a
wake vector (not tested at all).
* Removed disabling interrupts when entering the sleep state - looks like
  ACPI still needs memory then.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27403 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-10 19:24:37 +00:00
Jérôme Duval
c20e9eefcd added a jam rule AddDriverRegistrationToHaikuImage to add device mappings on the image
commented the insertion of the attribute name in patterns in the case of a string attribute
notify_probe_by_file chooses a module based on a bus specific suffix
dm_register_child_device has a parameter to optionally check the support for the node
added scanning of bus devices after the boot filesystem is mounted
fixed dm_rescan, locking was misbehaving
fixed SYSTEM_DRIVER_REGISTRATION definition
added B_DRIVER_MAPPING attributes for PCI and ACPI devices:
  %vendor%_%device% for PCI, hid_%hid% and type_%type% for ACPI
moved acpi_device_module_info definition to public ACPI.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 19:09:45 +00:00
Jérôme Duval
ea71f2e7b8 acpi now uses a simple pci layer instead of the pci bus manager
added a new style module to publish acpi devices ("listdev -d" to list them)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19322 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-18 20:46:58 +00:00
Bryan Varner
abe0393b82 * acpi bus_manager addition of get_object() functions.
* thermal driver uses get_object to obtain the passive device package.

Need changes to acpi_object_type to handle references... that'll have to come in the near future.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-08 06:51:46 +00:00
Nathan Whitehorn
6d92b10268 Upgraded the bus manager interface. It's now capable enough to start actually doing interesting things, like power management, thermal stuff, and hyperthreading.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 00:41:53 +00:00
Nathan Whitehorn
92ba8215d2 Added basic (i.e. argumentless) control method execution. Now we can read fan speeds, cpu temperatures, laptop lid states, and all sorts of other glorious things.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11545 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-03 00:01:35 +00:00
Nathan Whitehorn
53403b7edc ACPI bus manager interface, revision 3. Now allows full namespace traversal. Next is AML control method execution.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11540 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-02 19:31:30 +00:00
Nathan Whitehorn
c11886dbbe Now we have a nice structure for handling ACPI fixed events. This means we can do things like make acpi_button block, instead of polling it. Direct register access has gone away. The next revision of the bus manager interface should include namespace traversal and AML control method execution.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11529 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-02 05:05:18 +00:00
Nathan Whitehorn
08923ac8ba ACPI Bus Manager interface header. Currently highly incomplete.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11442 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-21 20:00:59 +00:00