diff options
-rw-r--r-- | drivers/acpi/video.c | 10 |
1 files changed, 8 insertions, 2 deletions
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 | } |