Merge back 'acpi-video' material for v3.18.
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 3 Oct 2014 13:46:02 +0000 (15:46 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 3 Oct 2014 13:46:02 +0000 (15:46 +0200)
1  2 
drivers/acpi/video.c

diff --combined drivers/acpi/video.c
index 8e7e18567ae626fefd9039943662b84a627c8a58,015b93df52013b88f2dcf1b554fd63d5ae1f4184..807a88a0f394f8a639cbc3f6e2b78073078986cc
@@@ -411,12 -411,6 +411,6 @@@ static int __init video_set_bqc_offset(
        return 0;
  }
  
- static int __init video_set_use_native_backlight(const struct dmi_system_id *d)
- {
-       use_native_backlight_dmi = true;
-       return 0;
- }
  static int __init video_disable_native_backlight(const struct dmi_system_id *d)
  {
        use_native_backlight_dmi = false;
@@@ -467,265 -461,6 +461,6 @@@ static struct dmi_system_id video_dmi_t
                DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 7720"),
                },
        },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "ThinkPad X230",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X230"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "ThinkPad T430 and T430s",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T430"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "ThinkPad T430",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "2349D15"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "ThinkPad T431s",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "20AACTO1WW"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "ThinkPad Edge E530",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "3259A2G"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "ThinkPad Edge E530",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "3259CTO"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "ThinkPad Edge E530",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "3259HJG"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "ThinkPad W530",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W530"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-       .ident = "ThinkPad X1 Carbon",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X1 Carbon"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "Lenovo Yoga 13",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo IdeaPad Yoga 13"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "Lenovo Yoga 2 11",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Yoga 2 11"),
-               },
-       },
-       {
-       .callback = video_set_use_native_backlight,
-       .ident = "Thinkpad Helix",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad Helix"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "Dell Inspiron 7520",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-               DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 7520"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "Acer Aspire 5733Z",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5733Z"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "Acer Aspire 5742G",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5742G"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "Acer Aspire V5-171",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "V5-171"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "Acer Aspire V5-431",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "Aspire V5-431"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "Acer Aspire V5-471G",
-        .matches = {
-               DMI_MATCH(DMI_BOARD_VENDOR, "Acer"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "Aspire V5-471G"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "Acer TravelMate B113",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate B113"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "Acer Aspire V5-572G",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Acer Aspire"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "V5-572G/Dazzle_CX"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "Acer Aspire V5-573G",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Acer Aspire"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "V5-573G/Dazzle_HW"),
-               },
-       },
-       {
-        .callback = video_set_use_native_backlight,
-        .ident = "ASUS Zenbook Prime UX31A",
-        .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
-               DMI_MATCH(DMI_PRODUCT_NAME, "UX31A"),
-               },
-       },
-       {
-       .callback = video_set_use_native_backlight,
-       .ident = "HP ProBook 4340s",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "HP ProBook 4340s"),
-               },
-       },
-       {
-       .callback = video_set_use_native_backlight,
-       .ident = "HP ProBook 4540s",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-               DMI_MATCH(DMI_PRODUCT_VERSION, "HP ProBook 4540s"),
-               },
-       },
-       {
-       .callback = video_set_use_native_backlight,
-       .ident = "HP ProBook 2013 models",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "HP ProBook "),
-               DMI_MATCH(DMI_PRODUCT_NAME, " G1"),
-               },
-       },
-       {
-       .callback = video_set_use_native_backlight,
-       .ident = "HP EliteBook 2013 models",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "HP EliteBook "),
-               DMI_MATCH(DMI_PRODUCT_NAME, " G1"),
-               },
-       },
-       {
-       .callback = video_set_use_native_backlight,
-       .ident = "HP EliteBook 2014 models",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "HP EliteBook "),
-               DMI_MATCH(DMI_PRODUCT_NAME, " G2"),
-               },
-       },
-       {
-       .callback = video_set_use_native_backlight,
-       .ident = "HP ZBook 14",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "HP ZBook 14"),
-               },
-       },
-       {
-       .callback = video_set_use_native_backlight,
-       .ident = "HP ZBook 15",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "HP ZBook 15"),
-               },
-       },
-       {
-       .callback = video_set_use_native_backlight,
-       .ident = "HP ZBook 17",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "HP ZBook 17"),
-               },
-       },
-       {
-       .callback = video_set_use_native_backlight,
-       .ident = "HP EliteBook 8470p",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "HP EliteBook 8470p"),
-               },
-       },
-       {
-       .callback = video_set_use_native_backlight,
-       .ident = "HP EliteBook 8780w",
-       .matches = {
-               DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-               DMI_MATCH(DMI_PRODUCT_NAME, "HP EliteBook 8780w"),
-               },
-       },
  
        /*
         * These models have a working acpi_video backlight control, and using
                DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T520"),
                },
        },
 +      {
 +       .callback = video_disable_native_backlight,
 +       .ident = "ThinkPad X201s",
 +       .matches = {
 +              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
 +              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201s"),
 +              },
 +      },
  
        /* The native backlight controls do not work on some older machines */
        {
@@@ -1419,6 -1146,23 +1154,23 @@@ acpi_video_device_bind(struct acpi_vide
        }
  }
  
+ static bool acpi_video_device_in_dod(struct acpi_video_device *device)
+ {
+       struct acpi_video_bus *video = device->video;
+       int i;
+       /* If we have a broken _DOD, no need to test */
+       if (!video->attached_count)
+               return true;
+       for (i = 0; i < video->attached_count; i++) {
+               if (video->attached_array[i].bind_info == device)
+                       return true;
+       }
+       return false;
+ }
  /*
   *  Arg:
   *    video   : video bus device
@@@ -1858,6 -1602,15 +1610,15 @@@ static void acpi_video_dev_register_bac
        static int count;
        char *name;
  
+       /*
+        * Do not create backlight device for video output
+        * device that is not in the enumerated list.
+        */
+       if (!acpi_video_device_in_dod(device)) {
+               dev_dbg(&device->dev->dev, "not in _DOD list, ignore\n");
+               return;
+       }
        result = acpi_video_init_brightness(device);
        if (result)
                return;