Displaying 4 results from an estimated 4 matches for "do_acpi_ddc".
2020 Aug 08
2
[PATCH 1/4] drm: retrieve EDID via ACPI _DDC method
...) {
No, that's not safe because the ACPI namespace may change concurrently,
e.g. because a DSDT patch is applied by the user via sysfs.
Use acpi_walk_namespace() with a depth of 1 instead.
> + for (i = 0; i < num_dod_entries; i++) {
> + if (adr == dod_entries[i]) {
> + ret = do_acpi_ddc(child->handle);
> +
> + if (ret != NULL)
> + goto done;
I guess ideally we'd want to correlate the display objects with
drm_connectors or at least constrain the search to Display Type
"Internal/Integrated Digital Flat Panel" instead of picking the
first EDID found....
2020 Jul 27
0
[PATCH 1/4] drm: retrieve EDID via ACPI _DDC method
...(ret == NULL)
+ goto done;
+
+ for (i = 0; i < dod->package.count; i++) {
+ if (dod->package.elements[i].type != ACPI_TYPE_INTEGER)
+ continue;
+ ret[*count] = dod->package.elements[i].integer.value;
+ (*count)++;
+ }
+
+done:
+ kfree(buf.pointer);
+ return ret;
+}
+
+static void *do_acpi_ddc(acpi_handle handle)
+{
+ int i;
+ void *ret = NULL;
+
+ /*
+ * The _DDC spec defines an integer argument for specifying the size of
+ * the EDID to be retrieved. A value of 1 requests a 128-byte EDID, and
+ * a value of 2 requests a 256-byte EDID. Attempt the larger read first.
+ */
+ for (i =...
2020 Jul 27
6
[PATCH 0/4] drm: add support for retrieving EDID via ACPI _DDC
Some notebook systems provide the EDID for the internal panel via the
_DDC method in ACPI, instead of or in addition to providing the EDID via
DDC on LVDS/eDP. Add a DRM helper to search for an ACP _DDC method under
the ACPI namespace for each VGA/3D controller, and return the first EDID
successfully retrieved via _DDC. Update the i915, nouveau, and radeon
DRM-KMS drivers to fall back to
2020 Aug 12
0
[PATCH 1/4] drm: retrieve EDID via ACPI _DDC method
...ding out a series v2.
On 8/8/20 5:11 PM, Lukas Wunner wrote:
> On Mon, Jul 27, 2020 at 03:53:54PM -0500, Daniel Dadap wrote:
>> + for (i = 0; i < num_dod_entries; i++) {
>> + if (adr == dod_entries[i]) {
>> + ret = do_acpi_ddc(child->handle);
>> +
>> + if (ret != NULL)
>> + goto done;
> I guess ideally we'd want to correlate the display objects with
> drm_connectors or at least constrain the search to Display Type
> "In...