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 | } |
