Subversion Repositories Kolibri OS

Rev

Rev 5056 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5056 Rev 6934
Line 25... Line 25...
25
#include 
25
#include 
26
#include 
26
#include 
27
#include 
27
#include 
28
#include 
28
#include 
29
#include 
29
#include 
-
 
30
#include 
Line -... Line 31...
-
 
31
 
-
 
32
#define hdmi_log(fmt, ...) dev_printk(level, dev, fmt, ##__VA_ARGS__)
30
 
33
 
31
static void hdmi_infoframe_checksum(void *buffer, size_t size)
34
static u8 hdmi_infoframe_checksum(u8 *ptr, size_t size)
32
{
-
 
33
	u8 *ptr = buffer;
35
{
34
	u8 csum = 0;
36
	u8 csum = 0;
Line 35... Line 37...
35
	size_t i;
37
	size_t i;
36
 
38
 
37
	/* compute checksum */
39
	/* compute checksum */
Line 38... Line 40...
38
	for (i = 0; i < size; i++)
40
	for (i = 0; i < size; i++)
-
 
41
		csum += ptr[i];
-
 
42
 
-
 
43
	return 256 - csum;
-
 
44
}
-
 
45
 
-
 
46
static void hdmi_infoframe_set_checksum(void *buffer, size_t size)
-
 
47
{
39
		csum += ptr[i];
48
	u8 *ptr = buffer;
Line 40... Line 49...
40
 
49
 
41
	ptr[3] = 256 - csum;
50
	ptr[3] = hdmi_infoframe_checksum(buffer, size);
42
}
51
}
Line 134... Line 143...
134
	ptr[9] = frame->left_bar & 0xff;
143
	ptr[9] = frame->left_bar & 0xff;
135
	ptr[10] = (frame->left_bar >> 8) & 0xff;
144
	ptr[10] = (frame->left_bar >> 8) & 0xff;
136
	ptr[11] = frame->right_bar & 0xff;
145
	ptr[11] = frame->right_bar & 0xff;
137
	ptr[12] = (frame->right_bar >> 8) & 0xff;
146
	ptr[12] = (frame->right_bar >> 8) & 0xff;
Line 138... Line 147...
138
 
147
 
Line 139... Line 148...
139
	hdmi_infoframe_checksum(buffer, length);
148
	hdmi_infoframe_set_checksum(buffer, length);
140
 
149
 
141
	return length;
150
	return length;
Line 204... Line 213...
204
	memcpy(ptr, frame->vendor, sizeof(frame->vendor));
213
	memcpy(ptr, frame->vendor, sizeof(frame->vendor));
205
	memcpy(ptr + 8, frame->product, sizeof(frame->product));
214
	memcpy(ptr + 8, frame->product, sizeof(frame->product));
Line 206... Line 215...
206
 
215
 
Line 207... Line 216...
207
	ptr[24] = frame->sdi;
216
	ptr[24] = frame->sdi;
Line 208... Line 217...
208
 
217
 
209
	hdmi_infoframe_checksum(buffer, length);
218
	hdmi_infoframe_set_checksum(buffer, length);
210
 
219
 
Line 279... Line 288...
279
	ptr[4] = (frame->level_shift_value & 0xf) << 3;
288
	ptr[4] = (frame->level_shift_value & 0xf) << 3;
Line 280... Line 289...
280
 
289
 
281
	if (frame->downmix_inhibit)
290
	if (frame->downmix_inhibit)
Line 282... Line 291...
282
		ptr[4] |= BIT(7);
291
		ptr[4] |= BIT(7);
Line 283... Line 292...
283
 
292
 
284
	hdmi_infoframe_checksum(buffer, length);
293
	hdmi_infoframe_set_checksum(buffer, length);
285
 
294
 
Line 371... Line 380...
371
		ptr[8] = (frame->s3d_struct & 0xf) << 4;
380
		ptr[8] = (frame->s3d_struct & 0xf) << 4;
372
		if (frame->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF)
381
		if (frame->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF)
373
			ptr[9] = (frame->s3d_ext_data & 0xf) << 4;
382
			ptr[9] = (frame->s3d_ext_data & 0xf) << 4;
374
	}
383
	}
Line 375... Line 384...
375
 
384
 
Line 376... Line 385...
376
	hdmi_infoframe_checksum(buffer, length);
385
	hdmi_infoframe_set_checksum(buffer, length);
377
 
386
 
378
	return length;
387
	return length;