On Thu, 2008-03-20 at 16:40 +0800, Zhang, Rui wrote: > From: Zhang Rui <rui.zhang@xxxxxxxxx> > > Fix a regression of ACPI driver autoloading. Good catch. Patch looks correct. This should still be 2.6.25 material? > commit 3620f2f2f39e7870cf1a4fb2e34063a142f28716 sets the cid of > ACPI video/dock/bay device and leaves the hid empty. > As a result, "modalias" should export the cid for > devices which don't have a hid. > > ACPI Video driver is not autoloaded with > commit 3620f2f2f39e7870cf1a4fb2e34063a142f28716 applied. > "cat /sys/.../device:03(acpi video bus)/modalias" shows nothing. > > ACPI Video driver is autoloaded after revert that commit. > "cat /sys/.../LNXVIDEO:0x/modalias" shows "acpi:LNXVIDEO:" > > ACPI Video driver is autoloaded with commit > 3620f2f2f39e7870cf1a4fb2e34063a142f28716 and this patch applied. > "cat /sys/.../device:03(acpi video bus)/modalias" > shows "acpi:LNXVIDEO:" > > CC: Thomas Renninger <trenn@xxxxxxxxxx> > CC: Kay Sievers <kasievers@xxxxxxxxxx> > CC: Frank Seidel <fseidel@xxxxxxx> > CC: Len Brown: <len.brown@xxxxxxxxx> > Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx> Signed-off-by: Thomas Renninger <trenn@xxxxxxx> Thanks, Thomas > > --- > drivers/acpi/scan.c | 18 ++++++++++++------ > 1 file changed, 12 insertions(+), 6 deletions(-) > > Index: linux-2.6/drivers/acpi/scan.c > =================================================================== > --- linux-2.6.orig/drivers/acpi/scan.c > +++ linux-2.6/drivers/acpi/scan.c > @@ -39,20 +39,26 @@ static int create_modalias(struct acpi_d > int size) > { > int len; > + int count; > > - if (!acpi_dev->flags.hardware_id) > + if (!acpi_dev->flags.hardware_id && !acpi_dev->flags.compatible_ids) > return -ENODEV; > > - len = snprintf(modalias, size, "acpi:%s:", > - acpi_dev->pnp.hardware_id); > - if (len < 0 || len >= size) > - return -EINVAL; > + len = snprintf(modalias, size, "acpi:"); > size -= len; > > + if (acpi_dev->flags.hardware_id) { > + count = snprintf(&modalias[len], size, "%s:", > + acpi_dev->pnp.hardware_id); > + if (count < 0 || count >= size) > + return -EINVAL; > + len += count; > + size -= count; > + } > + > if (acpi_dev->flags.compatible_ids) { > struct acpi_compatible_id_list *cid_list; > int i; > - int count; > > cid_list = acpi_dev->pnp.cid_list; > for (i = 0; i < cid_list->count; i++) { > > -- 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