thanks for the update, matthew.

applied,
-len

On Wednesday 06 February 2008 20:44, Matthew Garrett wrote:
> Vendors often ship machines with a choice of integrated or discrete
> graphics, and use the same DSDT for both. As a result, the ACPI video
> module will locate devices that may not exist on this specific platform.
> Attempt to determine whether the device exists or not, and abort the\
> device creation if it doesn't
> 
> Signed-off-by: Matthew Garrett <[EMAIL PROTECTED]>
> ---
> 
> diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
> index 09a85eb..11c8335 100644
> --- a/drivers/acpi/video.c
> +++ b/drivers/acpi/video.c
> @@ -735,11 +735,40 @@ static void acpi_video_bus_find_cap(struct 
> acpi_video_bus *video)
>  static int acpi_video_bus_check(struct acpi_video_bus *video)
>  {
>       acpi_status status = -ENOENT;
> -
> +     long device_id;
> +     struct device *dev;
> +     struct acpi_device *device;
>  
>       if (!video)
>               return -EINVAL;
>  
> +     device = video->device;
> +
> +     status =
> +         acpi_evaluate_integer(device->handle, "_ADR", NULL, &device_id);
> +
> +     if (!ACPI_SUCCESS(status))
> +             return -ENODEV;
> +
> +     /* We need to attempt to determine whether the _ADR refers to a
> +        PCI device or not. There's no terribly good way to do this,
> +        so the best we can hope for is to assume that there'll never
> +        be a video device in the host bridge */
> +     if (device_id >= 0x10000) {
> +             /* It looks like a PCI device. Does it exist? */
> +             dev = acpi_get_physical_device(device->handle);
> +     } else {
> +             /* It doesn't look like a PCI device. Does its parent
> +                exist? */
> +             acpi_handle phandle;
> +             if (acpi_get_parent(device->handle, &phandle))
> +                     return -ENODEV;
> +             dev = acpi_get_physical_device(phandle);
> +     }
> +     if (!dev)
> +             return -ENODEV;
> +     put_device(dev);
> +
>       /* Since there is no HID, CID and so on for VGA driver, we have
>        * to check well known required nodes.
>        */
> 
-
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