From 98e082ffe424236cb66edcc55d20755e944b5a75 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Tue, 17 Jun 2025 14:36:09 -0700 Subject: [PATCH] Revert "xfree86: ddc: move private definitions from xf86DDC.h to xf86DDC_priv.h" This reverts commit 00c2a8fb0a329eeb7893479934956b22fff4d2a0. Part-of: --- hw/xfree86/common/xf86Configure.c | 2 +- hw/xfree86/ddc/interpret_edid.c | 2 +- hw/xfree86/ddc/print_edid.c | 2 +- hw/xfree86/ddc/xf86DDC.h | 42 ++++++++++++++++++++++++ hw/xfree86/ddc/xf86DDC_priv.h | 53 ------------------------------- hw/xfree86/modes/xf86Crtc.c | 2 +- hw/xfree86/modes/xf86EdidModes.c | 2 +- 7 files changed, 47 insertions(+), 58 deletions(-) delete mode 100644 hw/xfree86/ddc/xf86DDC_priv.h diff --git a/hw/xfree86/common/xf86Configure.c b/hw/xfree86/common/xf86Configure.c index a9c6a9271..3d1701707 100644 --- a/hw/xfree86/common/xf86Configure.c +++ b/hw/xfree86/common/xf86Configure.c @@ -38,7 +38,7 @@ #include "xf86Priv.h" #define IN_XSERVER #include "Configint.h" -#include "xf86DDC_priv.h" +#include "xf86DDC.h" #include "xf86pciBus.h" #if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__) #include "xf86Bus.h" diff --git a/hw/xfree86/ddc/interpret_edid.c b/hw/xfree86/ddc/interpret_edid.c index 28d7497f1..0ded3ff71 100644 --- a/hw/xfree86/ddc/interpret_edid.c +++ b/hw/xfree86/ddc/interpret_edid.c @@ -32,7 +32,7 @@ #include "xf86.h" #include "xf86_OSproc.h" #define _PARSE_EDID_ -#include "xf86DDC_priv.h" +#include "xf86DDC.h" #include static void get_vendor_section(Uchar *, struct vendor *); diff --git a/hw/xfree86/ddc/print_edid.c b/hw/xfree86/ddc/print_edid.c index 464c11c5a..f5215bd1c 100644 --- a/hw/xfree86/ddc/print_edid.c +++ b/hw/xfree86/ddc/print_edid.c @@ -34,7 +34,7 @@ #include "misc.h" #include "xf86.h" #include "xf86_OSproc.h" -#include "xf86DDC_priv.h" +#include "xf86DDC.h" #include "edid.h" #define EDID_WIDTH 16 diff --git a/hw/xfree86/ddc/xf86DDC.h b/hw/xfree86/ddc/xf86DDC.h index 37ffb335d..6eb2f0ba2 100644 --- a/hw/xfree86/ddc/xf86DDC.h +++ b/hw/xfree86/ddc/xf86DDC.h @@ -56,4 +56,46 @@ FindDMTMode(int hsize, int vsize, int refresh, Bool rb); extern _X_EXPORT const DisplayModeRec DMTModes[]; +/* + * Quirks to work around broken EDID data from various monitors. + */ +typedef enum { + DDC_QUIRK_NONE = 0, + /* First detailed mode is bogus, prefer largest mode at 60hz */ + DDC_QUIRK_PREFER_LARGE_60 = 1 << 0, + /* 135MHz clock is too high, drop a bit */ + DDC_QUIRK_135_CLOCK_TOO_HIGH = 1 << 1, + /* Prefer the largest mode at 75 Hz */ + DDC_QUIRK_PREFER_LARGE_75 = 1 << 2, + /* Convert detailed timing's horizontal from units of cm to mm */ + DDC_QUIRK_DETAILED_H_IN_CM = 1 << 3, + /* Convert detailed timing's vertical from units of cm to mm */ + DDC_QUIRK_DETAILED_V_IN_CM = 1 << 4, + /* Detailed timing descriptors have bogus size values, so just take the + * maximum size and use that. + */ + DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE = 1 << 5, + /* Monitor forgot to set the first detailed is preferred bit. */ + DDC_QUIRK_FIRST_DETAILED_PREFERRED = 1 << 6, + /* use +hsync +vsync for detailed mode */ + DDC_QUIRK_DETAILED_SYNC_PP = 1 << 7, + /* Force single-link DVI bandwidth limit */ + DDC_QUIRK_DVI_SINGLE_LINK = 1 << 8, +} ddc_quirk_t; + +typedef void (*handle_detailed_fn) (struct detailed_monitor_section *, void *); + +void xf86ForEachDetailedBlock(xf86MonPtr mon, handle_detailed_fn, void *data); + +ddc_quirk_t xf86DDCDetectQuirks(int scrnIndex, xf86MonPtr DDC, Bool verbose); + +void xf86DetTimingApplyQuirks(struct detailed_monitor_section *det_mon, + ddc_quirk_t quirks, int hsize, int vsize); + +typedef void (*handle_video_fn) (struct cea_video_block *, void *); + +void xf86ForEachVideoBlock(xf86MonPtr, handle_video_fn, void *); + +struct cea_data_block *xf86MonitorFindHDMIBlock(xf86MonPtr mon); + #endif diff --git a/hw/xfree86/ddc/xf86DDC_priv.h b/hw/xfree86/ddc/xf86DDC_priv.h deleted file mode 100644 index 0eea134f3..000000000 --- a/hw/xfree86/ddc/xf86DDC_priv.h +++ /dev/null @@ -1,53 +0,0 @@ -/* SPDX-License-Identifier: MIT OR X11 - * - * Copyright © 2024 Enrico Weigelt, metux IT consult - * Copyright © 1998 by Egbert Eich - */ -#ifndef _XSERVER_XF86_DDC_PRIV_H -#define _XSERVER_XF86_DDC_PRIV_H - -#include "xf86DDC.h" - -/* - * Quirks to work around broken EDID data from various monitors. - */ -typedef enum { - DDC_QUIRK_NONE = 0, - /* First detailed mode is bogus, prefer largest mode at 60hz */ - DDC_QUIRK_PREFER_LARGE_60 = 1 << 0, - /* 135MHz clock is too high, drop a bit */ - DDC_QUIRK_135_CLOCK_TOO_HIGH = 1 << 1, - /* Prefer the largest mode at 75 Hz */ - DDC_QUIRK_PREFER_LARGE_75 = 1 << 2, - /* Convert detailed timing's horizontal from units of cm to mm */ - DDC_QUIRK_DETAILED_H_IN_CM = 1 << 3, - /* Convert detailed timing's vertical from units of cm to mm */ - DDC_QUIRK_DETAILED_V_IN_CM = 1 << 4, - /* Detailed timing descriptors have bogus size values, so just take the - * maximum size and use that. - */ - DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE = 1 << 5, - /* Monitor forgot to set the first detailed is preferred bit. */ - DDC_QUIRK_FIRST_DETAILED_PREFERRED = 1 << 6, - /* use +hsync +vsync for detailed mode */ - DDC_QUIRK_DETAILED_SYNC_PP = 1 << 7, - /* Force single-link DVI bandwidth limit */ - DDC_QUIRK_DVI_SINGLE_LINK = 1 << 8, -} ddc_quirk_t; - -typedef void (*handle_detailed_fn) (struct detailed_monitor_section *, void *); - -void xf86ForEachDetailedBlock(xf86MonPtr mon, handle_detailed_fn, void *data); - -ddc_quirk_t xf86DDCDetectQuirks(int scrnIndex, xf86MonPtr DDC, Bool verbose); - -void xf86DetTimingApplyQuirks(struct detailed_monitor_section *det_mon, - ddc_quirk_t quirks, int hsize, int vsize); - -typedef void (*handle_video_fn) (struct cea_video_block *, void *); - -void xf86ForEachVideoBlock(xf86MonPtr, handle_video_fn, void *); - -struct cea_data_block *xf86MonitorFindHDMIBlock(xf86MonPtr mon); - -#endif /* _XSERVER_XF86_DDC_PRIV_H */ diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index 7b0401eae..902a39104 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -30,7 +30,7 @@ #include #include "xf86.h" -#include "xf86DDC_priv.h" +#include "xf86DDC.h" #include "xf86Crtc.h" #include "xf86Modes.h" #include "xf86Priv.h" diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c index c480657e1..b0f93e2b7 100644 --- a/hw/xfree86/modes/xf86EdidModes.c +++ b/hw/xfree86/modes/xf86EdidModes.c @@ -33,7 +33,7 @@ #define _PARSE_EDID_ #include "xf86.h" -#include "xf86DDC_priv.h" +#include "xf86DDC.h" #include #include "property.h" #include "propertyst.h"