Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a0ab734d authored by Christian Schmidt's avatar Christian Schmidt Committed by Dave Airlie
Browse files

drm_edid_to_eld: check for CEA data blocks only from structure revision 3 on



CEA datablocks are only defined from revision 3 onwards. Only check for
them if the revision says so.

Signed-of-by: default avatarChristian Schmidt <schmidt@digadd.de>
Tested-by: default avatarJames Cloos <cloos@jhcloos.com>

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 54ac76f8
Loading
Loading
Loading
Loading
+22 −19
Original line number Diff line number Diff line
@@ -1474,15 +1474,18 @@ void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid)
	eld[18] = edid->prod_code[0];
	eld[19] = edid->prod_code[1];

	if (cea[1] >= 3)
		for (db = cea + 4; db < cea + cea[2]; db += dbl + 1) {
			dbl = db[0] & 0x1f;
			
			switch ((db[0] & 0xe0) >> 5) {
		case AUDIO_BLOCK:	/* Audio Data Block, contains SADs */
			case AUDIO_BLOCK:
				/* Audio Data Block, contains SADs */
				sad_count = dbl / 3;
				memcpy(eld + 20 + mnl, &db[1], dbl);
				break;
		case SPEAKER_BLOCK:	/* Speaker Allocation Data Block */
			case SPEAKER_BLOCK:
                                /* Speaker Allocation Data Block */
				eld[7] = db[1];
				break;
			case VENDOR_BLOCK: