On Thu, 2007-10-25 at 09:06 -0600, Bjorn Helgaas wrote:Yes, but: It is really impossible to register them just like that. I only tried on one machine I implemented on, Jean tested with more machines. Even there the resources did not only interfere, but overlap. The Operation Region declarations in ACPI don't belong to a real driver, but may be used in all kind of functions. E.g. the thermal driver can't know which operation regions it may use later, e.g. by invoking _THM which in turn invokes a couple of other functions where IO ports are addressed via operation regions. Also the BIOS developers seem to choose the regions in a very dump way sometimes. Just some imaginary values, but I saw similar (overlapping): - For a PNP device IO ports from 0x400-0x410 are reserved - A operation region is declared from 0x399-0x401 My first approach was to register the regions via request_resource and failed on the first machine. I then thought about acpi exporting it's own request/check_acpi_region and add it into request_region..., but this also did not work out. IMO this is the only way, at least for getting an overview how regions are used and where we might need an ACPI driver and have interference as a first step. There might be more steps we could take in future, maybe someone gets a better idea, but as said, there are no rules how BIOS developers make use of those regions. Also the current request_resource interface (not the interface but the callers), need to be polished up first. 1) E.g. PNPACPI needs to dynamically allocate its resources (as we already discussed, I hope to be able to send something soon. Already works, but this will also affect PNPBIOS and ISAPNP, a lot old code and this needs careful review/testing). 2) I have no idea why e.g. i386/x86_64 kernel/setup.c code statically requests some ports below 0x100 and whether it can be ripped out or gets requested via the operation regions then in a sane way. I know they interfere on some systems with operation regions. It's just too much to solve in one step, if it can be resolved at all. Thomas -
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Heiko Carstens | Re: -mm merge plans for 2.6.23 -- sys_fallocate |
git: | |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | Re: [GIT]: Networking |
| Jarek Poplawski | [PATCH iproute2] Re: HTB accuracy for high speed |
