Messages in this thread | | | Subject | Re: [Pcihpd-discuss] Re: [patch 2/3] acpiphp: add dock event handling | From | Kristen Accardi <> | Date | Fri, 24 Feb 2006 09:29:37 -0800 |
| |
On Fri, 2006-02-24 at 15:12 +0900, MUNEDA Takahiro wrote: > At Thu, 23 Feb 2006 11:56:17 -0800, > Kristen Accardi <kristen.c.accardi@intel.com> wrote: > > > > @@ -828,11 +862,21 @@ static int acpiphp_bus_add(struct acpiph > > dbg("no parent device, assuming NULL\n"); > > pdevice = NULL; > > } > > + if (!acpi_bus_get_device(func->handle, &device)) { > > + dbg("bus exists... trim\n"); > > + /* this shouldn't be in here, so remove > > + * the bus then re-add it... > > + */ > > + ret_val = acpi_bus_trim(device, 1); > > + dbg("acpi_bus_trim return %x\n", ret_val); > > + } > > ret_val = acpi_bus_add(&device, pdevice, func->handle, > > - ACPI_BUS_TYPE_DEVICE); > > - if (ret_val) > > - dbg("cannot add bridge to acpi list\n"); > > - > > + ACPI_BUS_TYPE_DEVICE); > > + if (ret_val) { > > + dbg("error adding bus, %x\n", > > + -ret_val); > > + goto acpiphp_bus_add_out; > > + } > > /* > > * try to start anyway. We could have failed to add > > * simply because this bus had previously been added > > Hi Kristen, > > Why don't you call acpi_bus_trim() when the device is > removed. This time, eject_dock() or disable_device()? > So you don't need to call acpi_bus_trim() as error case. > > Thanks, > MUNE >
MUNE, I added this because I found that in some laptops the dsdt reported a bus present that wasn't actually, so the bus would be added at boot time, but the PRT not read if the laptop was booted undocked. Initially I tried to get a handle to the existing bus, and then if the bus already was added, just call acpi_bus_start() - but this did not cause the PRT to be read in this case - the only thing that worked for me was to remove the bus and readd it. If there's a better way to handle this, I'd appreciate the suggestion.
Kristen
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |