View | Details | Raw Unified | Return to bug 70241 | Differences between
and this patch

Collapse All | Expand All

(-)a/drivers/gpu/drm/i915/intel_opregion.c (-3 / +15 lines)
Lines 613-618 static void intel_didl_outputs(struct drm_device *dev) Link Here
613
	acpi_status status;
613
	acpi_status status;
614
	u32 temp;
614
	u32 temp;
615
	int i = 0;
615
	int i = 0;
616
	bool done;
616
617
617
	handle = ACPI_HANDLE(&dev->pdev->dev);
618
	handle = ACPI_HANDLE(&dev->pdev->dev);
618
	if (!handle || acpi_bus_get_device(handle, &acpi_dev))
619
	if (!handle || acpi_bus_get_device(handle, &acpi_dev))
Lines 634-644 static void intel_didl_outputs(struct drm_device *dev) Link Here
634
		return;
635
		return;
635
	}
636
	}
636
637
638
	done = false;
637
	list_for_each_entry(acpi_cdev, &acpi_video_bus->children, node) {
639
	list_for_each_entry(acpi_cdev, &acpi_video_bus->children, node) {
638
		if (i >= 8) {
640
		if (i >= 8) {
639
			dev_dbg(&dev->pdev->dev,
641
			dev_info(&dev->pdev->dev,
640
				"More than 8 outputs detected via ACPI\n");
642
				"%s: More than 8 outputs detected via ACPI, %s\n",
641
			return;
643
				__func__, acpi_device_bid(acpi_cdev));
644
			if (acpi_has_method(acpi_cdev->handle, "_BCM")) {
645
				pr_info("%s: %s has _BCM, replacing 8th entry\n",
646
						__func__, acpi_device_bid(acpi_cdev));
647
				i = 7;
648
				done = true;
649
			} else
650
				continue;
642
		}
651
		}
643
		status =
652
		status =
644
			acpi_evaluate_integer(acpi_cdev->handle, "_ADR",
653
			acpi_evaluate_integer(acpi_cdev->handle, "_ADR",
Lines 650-655 static void intel_didl_outputs(struct drm_device *dev) Link Here
650
				  &opregion->acpi->didl[i]);
659
				  &opregion->acpi->didl[i]);
651
			i++;
660
			i++;
652
		}
661
		}
662
663
		if (done)
664
			return;
653
	}
665
	}
654
666
655
end:
667
end:

Return to bug 70241