Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement edid.S as a header #31

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

ahmubashshir
Copy link

@ahmubashshir ahmubashshir commented Dec 18, 2023

  • Implement edid.S as edid.h and edid-private.h
  • Use edid.h to create EDID for 3840x2160 resolution

@ahmubashshir ahmubashshir marked this pull request as ready for review December 18, 2023 07:25
@akatrevorjay
Copy link
Owner

akatrevorjay commented Sep 21, 2024

Hi, what is the goal of this PR? What does this let us do that we could not before?
It looks like it adds a template and headers, but what about the rest of the repo and docs?

@ahmubashshir
Copy link
Author

Hi, what is the goal of this PR? What does this let us do that we could not before? It looks like it adds a template and headers, but what about the rest of the repo and docs?

I think the commit messages describe what does this do...

/* 3840x2160: Modeline "3840x2160" 594.00 3840 4016 4104 4400 2160 2168 2178 2250 +hsync +vsync */
#include "edid.h"

BEGIN(
	1, 3,		// version
	'L', 'N', 'X',	// Manufacturer (3char)
	2012, 5,	// mfg year, week
	0, 0 		// PROD ID, Serial
);

VIDEO_ANALOG(VIDEO_ANALOG_COMP_SYNC);
MAX_SIZE(3840, 2160, 96); // max resolution

GAMMA(120);
DSP(DSP_STANDBY|DSP_ACTIVEOFF|DSP_SUSPEND|DSP_PREFER_DT1|DSP_RGB_COLOR);

LSB_RED_GREEN	(1, 1, 3, 2);
LSB_BLUE_WHITE	(3, 0, 0, 0);
MSB_RED		(0xa4, 0x59);
MSB_GREEN	(0x4a, 0x98);
MSB_BLUE	(0x25, 0x20);
MSB_WHITE	(0x50, 0x54);

// established timing descriptors
EST_TIMING(0, 0, 0, 0, 0, 0, 0, 0);
EST_TIMING(0, 0, 0, 0, 0, 0, 0, 0);
EST_TIMING(0, 0, 0, 0, 0, 0, 0, 0);
// standard resolutions
STD_RES_RATIO(1920, XY_RATIO_16_9, 120);
STD_RES_RATIO(1280, XY_RATIO_16_9, 60);
STD_RES_RATIO(1600, XY_RATIO_16_9, 60);
STD_RES_PAD();
STD_RES_PAD();
STD_RES_PAD();
STD_RES_PAD();
STD_RES_PAD();
// 4 descriptor entries
DSC_DTD(594000, 96,
	DTD_SYNC_TYPE(1, 1) | DTD_SYNC_DIR(1, 1),
	3840,	2160,
	176,	71,
	88,	73,
	560,	90,
	0,	0);

DSC_DTD(113120, 155,
	DTD_SYNC_TYPE(1, 1) | DTD_SYNC_DIR(0, 1),
	1920,	1080,
	48,	66,
	32,	69,
	222,	20,
	0,	0);
DSC_DTD(118250, 129,
	DTD_SYNC_TYPE(1, 1) | DTD_SYNC_DIR(1, 0),
	1600,	900,
	96,	66,
	160,	68,
	512,	34,
	0,	0);
DSC_SERIAL("Linux #0");

EXTENSIONS(0);
END();

#include "edid.h" // validate presence of all required symbols

// vim: ft=c:ts=8

@ahmubashshir
Copy link
Author

IMO, this pr the is better implementation of #30
(though it needs improvement (STD_RES as constants) and documentation...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants