On Thu, 2006-06-22 at 11:29 -0700, keith mannthey wrote: > On Fri, 2006-06-23 at 02:41 +0900, KAMEZAWA Hiroyuki wrote: > > On Thu, 22 Jun 2006 10:25:24 -0700 > > keith mannthey <kmannth@xxxxxxxxxx> 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. > if acpi_get_pxm status = acpi_evaluate_integer(handle, "_PXM", NULL, &pxm); This is looking to get the _PXM value from the handle. I don't see a _PXM filed in my SSDT for my memory device. I don't think it is required to have the _PXM field. It would be nice if it had one but I don't think Linux should require one. If the handle doesn't contain the _PXM device it should ask the arch if it knows. If the arch doesn't know (by way of SRAT at boot) then it should set the node to 0. I will send along a patch today. Thanks, keith mannthey <kmannth@xxxxxxxxxx> Linux Technology Center IBM - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html