On Wed, 21 Jun 2006 16:23:47 -0700
keith mannthey <[EMAIL PROTECTED]> wrote:
> Update.  I have moved to 2.6.17-rc6-mm2 to work with the development
> acpi_memhotplug driver there. I have added various debug statements and
> this is what I know. 
> 
Thanks, looks informative.

>   acpi_memory_get_device calls acpi_bus_add
>   acpi_bus_add calls acpi_add_single_object (fails)
>   acpi_add_single_object passes acpi_bus_get_flags
>                               finds the device present
>                               passes acpi_device_set_context
>                               calls acpi_device_register
>                               after calling acpi_bus_find_driver
>                               ends up 
>                               if (!result) *child = device;
>                               and returns. 
>    

Then, "acpi_device" itself is added, but no driver data.
acpi_add_single_object doesn't check return value of acpi_bus_find_driver(), 
as you know. So...
===
static int acpi_bus_find_driver(struct acpi_device *device)
{
<snip>
        list_for_each_safe(node, next, &acpi_bus_drivers) {
<snip>
                if (!acpi_bus_match(device, driver)) {
(*)-----------      result = acpi_bus_driver_init(device, driver);
                        if (!result)
                                goto Done;
                }
....
}
===
Next check point is:
- acpi_bus_driver_init() is called or not
- what acpi_bus_driver_init() returns

in acpi_bus_driver_init()
- driver->ops.add() is called or not
- what it retruns

int acpi_memory_device_add()
- it is called or not
- why this  fails.

If we can find why acpi_bus_driver_init() fails or is not called,
we can find the problem , I think.

-Kame


-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to