blob: 7894bd859754b482099558eeb57cfa5eff4a4446 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
--- a/src/nvidia-modeset/src/nvkms-hdmi.c
+++ b/src/nvidia-modeset/src/nvkms-hdmi.c
@@ -1046,27 +1046,13 @@ static NvBool FillELDBuffer(const NVDpyE
if (status == NVT_STATUS_SUCCESS) {
/*
- * NvTiming_GetProductName() returns a nul-terminated string, but the
- * string in the EDID is terminated with 0x0A and padded with 0x20.
- * Put back these special characters.
+ * NvTiming_GetProductName returns a nul-terminated string. Figure out
+ * how long it is and copy the bytes up to, but not including, the nul
+ * terminator.
*/
- NvBool pastTerminator = FALSE;
- NvU32 i;
-
- for (i = 0; i < NVT_EDID_LDD_PAYLOAD_SIZE; i++) {
- if (pastTerminator) {
- name[i] = 0x20;
- }
- if (name[i] == '\0') {
- name[i] = 0x0A;
- pastTerminator = TRUE;
- }
- }
-
- monitorNameLen = NVT_EDID_LDD_PAYLOAD_SIZE;
- pEld->buffer[4] |= NVT_EDID_LDD_PAYLOAD_SIZE;
- nvkms_memcpy(&pEld->buffer[20], name,
- NVT_EDID_LDD_PAYLOAD_SIZE);
+ monitorNameLen = nvkms_strlen((char *)name);
+ pEld->buffer[4] |= monitorNameLen;
+ nvkms_memcpy(&pEld->buffer[20], name, monitorNameLen);
}
/* offset 20 + MNL ~ 20 + MNL + (3 * SAD_Count) - 1 : CEA_SADs */
|