diff options
-rw-r--r-- | drivers/acpi/ec.c | 2 | ||||
-rw-r--r-- | drivers/acpi/fan.c | 8 | ||||
-rw-r--r-- | drivers/acpi/video.c | 10 |
3 files changed, 17 insertions, 3 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 5f9b74b9b71f..1b5853f384e2 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
@@ -844,6 +844,8 @@ static int ec_install_handlers(struct acpi_ec *ec) | |||
844 | 844 | ||
845 | static void ec_remove_handlers(struct acpi_ec *ec) | 845 | static void ec_remove_handlers(struct acpi_ec *ec) |
846 | { | 846 | { |
847 | if (!test_bit(EC_FLAGS_HANDLERS_INSTALLED, &ec->flags)) | ||
848 | return; | ||
847 | acpi_disable_gpe(NULL, ec->gpe); | 849 | acpi_disable_gpe(NULL, ec->gpe); |
848 | if (ACPI_FAILURE(acpi_remove_address_space_handler(ec->handle, | 850 | if (ACPI_FAILURE(acpi_remove_address_space_handler(ec->handle, |
849 | ACPI_ADR_SPACE_EC, &acpi_ec_space_handler))) | 851 | ACPI_ADR_SPACE_EC, &acpi_ec_space_handler))) |
diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c index caf9b76b7ef8..7a36f02598a6 100644 --- a/drivers/acpi/fan.c +++ b/drivers/acpi/fan.c | |||
@@ -325,6 +325,7 @@ static int acpi_fan_probe(struct platform_device *pdev) | |||
325 | struct thermal_cooling_device *cdev; | 325 | struct thermal_cooling_device *cdev; |
326 | struct acpi_fan *fan; | 326 | struct acpi_fan *fan; |
327 | struct acpi_device *device = ACPI_COMPANION(&pdev->dev); | 327 | struct acpi_device *device = ACPI_COMPANION(&pdev->dev); |
328 | char *name; | ||
328 | 329 | ||
329 | fan = devm_kzalloc(&pdev->dev, sizeof(*fan), GFP_KERNEL); | 330 | fan = devm_kzalloc(&pdev->dev, sizeof(*fan), GFP_KERNEL); |
330 | if (!fan) { | 331 | if (!fan) { |
@@ -346,7 +347,12 @@ static int acpi_fan_probe(struct platform_device *pdev) | |||
346 | } | 347 | } |
347 | } | 348 | } |
348 | 349 | ||
349 | cdev = thermal_cooling_device_register("Fan", device, | 350 | if (!strncmp(pdev->name, "PNP0C0B", strlen("PNP0C0B"))) |
351 | name = "Fan"; | ||
352 | else | ||
353 | name = acpi_device_bid(device); | ||
354 | |||
355 | cdev = thermal_cooling_device_register(name, device, | ||
350 | &fan_cooling_ops); | 356 | &fan_cooling_ops); |
351 | if (IS_ERR(cdev)) { | 357 | if (IS_ERR(cdev)) { |
352 | result = PTR_ERR(cdev); | 358 | result = PTR_ERR(cdev); |
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index 185a57d13723..1eaadff2e198 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c | |||
@@ -155,6 +155,7 @@ struct acpi_video_bus { | |||
155 | u8 dos_setting; | 155 | u8 dos_setting; |
156 | struct acpi_video_enumerated_device *attached_array; | 156 | struct acpi_video_enumerated_device *attached_array; |
157 | u8 attached_count; | 157 | u8 attached_count; |
158 | u8 child_count; | ||
158 | struct acpi_video_bus_cap cap; | 159 | struct acpi_video_bus_cap cap; |
159 | struct acpi_video_bus_flags flags; | 160 | struct acpi_video_bus_flags flags; |
160 | struct list_head video_device_list; | 161 | struct list_head video_device_list; |
@@ -1159,8 +1160,12 @@ static bool acpi_video_device_in_dod(struct acpi_video_device *device) | |||
1159 | struct acpi_video_bus *video = device->video; | 1160 | struct acpi_video_bus *video = device->video; |
1160 | int i; | 1161 | int i; |
1161 | 1162 | ||
1162 | /* If we have a broken _DOD, no need to test */ | 1163 | /* |
1163 | if (!video->attached_count) | 1164 | * If we have a broken _DOD or we have more than 8 output devices |
1165 | * under the graphics controller node that we can't proper deal with | ||
1166 | * in the operation region code currently, no need to test. | ||
1167 | */ | ||
1168 | if (!video->attached_count || video->child_count > 8) | ||
1164 | return true; | 1169 | return true; |
1165 | 1170 | ||
1166 | for (i = 0; i < video->attached_count; i++) { | 1171 | for (i = 0; i < video->attached_count; i++) { |
@@ -1413,6 +1418,7 @@ acpi_video_bus_get_devices(struct acpi_video_bus *video, | |||
1413 | dev_err(&dev->dev, "Can't attach device\n"); | 1418 | dev_err(&dev->dev, "Can't attach device\n"); |
1414 | break; | 1419 | break; |
1415 | } | 1420 | } |
1421 | video->child_count++; | ||
1416 | } | 1422 | } |
1417 | return status; | 1423 | return status; |
1418 | } | 1424 | } |