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

keith mannthey
2006-06-22T17:25:28Z

On Thu, 2006-06-22 at 14:20 +0900, KAMEZAWA Hiroyuki wrote:
> On Wed, 21 Jun 2006 20:55:02 -0700
> keith mannthey <kmannth@us.ibm.com> wrote:
> > > Hmm....curious..but no idead..
> > > Then, could try this ?
> >
> > I am trying to make the motherboard driver fail with it looks for
> > resources and finds node. The motherboard add function alway returns
> > AE_OK which is why the algorithm fails. See attached patch it allows the
> > hot-add event to happen.
> >
> > With the event happening and I see
> >
> 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.

> I think something is wrong....from your SSDT, ME00 and ME01 memory device has
> valid HID, PNP0C80.
> ==
> Device (ME01)
> {
> Name (_HID, EisaId ("PNP0C80"))
> Name (_CID, 0x010CD041)
> ==
> What I imagine now is.
>
> - acpi_memory_device_init() -> acpi_memory_register_notify_handler()
> installs notify handler for memory hotplug against device handle of memory
> This doesn't check _CID.
>
> - acpi_bus_add() attachs motherboard driver because of CID.
> Above _CID is 32bit compressed EISA-type ID (HID is string but..),
> it is PNP0C01...motherboad driver is called before PNP0C80 driver.
> (to covert 32bit ID to string, see acpi_ex_eisa_id_to_string(),
> I attached program.)
This is a bug in the motherboard driver where it attached to any device
it is presented to.

> Then what we should do here is...call HID:PNP0C80 driver instead if CID:PNP0C01 driver.
> Because it has driver for HID, calling driver for CID looks not good.
> (But we have to ask acpi people about this..)

The patch allows PNP0C80 driver to be used.
--
keith mannthey <kmannth@us.ibm.com>
Linux Technology Center IBM