Re: [Pcihpd-discuss] [patch 2/4] acpiphp: handle dock bridges

MUNEDA Takahiro
2006-01-20T03:25:26Z

Hi,

At Tue, 17 Jan 2006 16:56:59 -0800,
Kristen Accardi <kristen.c.accardi@intel.com> wrote:
>
> @@ -681,6 +713,88 @@ static int acpiphp_configure_ioapics(acp
(snip)
> +static int acpiphp_bus_add(struct acpiphp_func *func)
> +{
> + acpi_handle phandle;
> + struct acpi_device *device, *pdevice;
> + int ret_val;
> +
> + acpi_get_parent(func->handle, &phandle);
> + if (acpi_bus_get_device(phandle, &pdevice)) {
> + dbg("no parent device, assuming NULL\n");
> + pdevice = NULL;
> + }
> + ret_val = acpi_bus_add(&device, pdevice, func->handle,
> + ACPI_BUS_TYPE_DEVICE);
> + if (ret_val)
> + dbg("cannot add bridge to acpi list\n");
> +
> + /*
> + * try to start anyway. We could have failed to add
> + * simply because this bus had previously been added
> + * on another dock. Don't bother with the return value
> + * we just keep going.
> + */
> + ret_val = acpi_bus_start(device);
> +
> + return ret_val;
> +}
> +
> +
> +

When the device is docked, acpi_bus_add() is called to register
the device into acpi list. But if the device is undocked,
acpi_bus_trim() doesn't called.
Can you hot-add/remove the dock station repeatedly?

Thanks,
MUNE

--
MUNEDA Takahiro <muneda.takahiro@jp.fujitsu.com>