Re: [Lhms-devel] [RFC] Patch [1/2] for acpi_memhotplug.c

keith mannthey
2006-06-22T18:29:26Z

On Fri, 2006-06-23 at 02:41 +0900, KAMEZAWA Hiroyuki wrote:
> On Thu, 22 Jun 2006 10:25:24 -0700
> keith mannthey <kmannth@us.ibm.com> wrote:
> > > Um...my concern is
> > > - When notify comes, memory hotplug driver is called.
> > > - but at acpi_bus_add(), PNP0C01 motherboad driver is attached to the device.
> >
> > The patch I sent keeps the motherboard driver from attaching and allows
> > the PNP0C80 device to attach.
> >
> My point is...motherboard is not memory. Then, it shouldn't have _CRS handler.
> Because your ME00/ME01 device has both HID for memory and CID for motherboard,
> motherboard handler is called.
> (acpi_add_single_object() attaches the driver which is found 1st.)
> > > ==
> > > Device (ME01)
> > > {
> > > Name (_HID, EisaId ("PNP0C80"))
> > > Name (_CID, 0x010CD041)
> > > ==
> As I wrote in other mail, why memory and motherboard is compatible device in
> your SSDT ? If this _CID is necessary for some reason, what should we do is
> acpi handling problem.
> So, what you should ask to acpi people is
> ==
> my device has both _HID and _CID. But the driver for _HID is different from
> _CID. I'm glad if the driver for _HID is called but driver for _CID is found
> before driver for _HID. Then, driver for _CID is called.
> How should I do ? (or make patch to fix this..)
> ==

I agree this is an acpi_handling problem where the wrong device is
attached. I am pursuing ACPI folks today.

I have my patch in place to work around the problem and am looking into
the the memory driver.

In acpi_memory_enable_device

in list_for_each_entry(info, &mem_device->res_list, list) {

if
printk ("node: %d , start %08lx, end %08lx \n",node,info-
>start_addr,info->start_addr+info->length);
before doing the add memory I see

node: -1 , start 1f0000000, end 270000000
On node -1 totalpages: 0
node: -1 , start 170000000, end 1f0000000

Finding the 2 ranges (these are the right ranges and the right chunks)
is great but acpi_get_node is not working for my handle.

I am continuing to debug.

Thanks,
Keith