Subversion Repositories Kolibri OS

Rev

Rev 6084 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6084 Rev 6937
Line 154... Line 154...
154
	union {
154
	union {
155
		struct {
155
		struct {
156
			u64 offset;
156
			u64 offset;
157
			unsigned int size;
157
			unsigned int size;
158
		} partial;
158
		} partial;
-
 
159
		struct intel_rotation_info rotation_info;
159
	} params;
160
	} params;
Line 160... Line 161...
160
 
161
 
161
	struct sg_table *pages;
-
 
162
 
-
 
163
	union {
-
 
164
		struct intel_rotation_info rotation_info;
-
 
165
	};
162
	struct sg_table *pages;
Line 166... Line 163...
166
};
163
};
167
 
164
 
Line 456... Line 453...
456
 
453
 
457
/* Equivalent to the gen6 version, For each pde iterates over every pde
454
/* Equivalent to the gen6 version, For each pde iterates over every pde
458
 * between from start until start + length. On gen8+ it simply iterates
455
 * between from start until start + length. On gen8+ it simply iterates
459
 * over every page directory entry in a page directory.
456
 * over every page directory entry in a page directory.
460
 */
457
 */
461
#define gen8_for_each_pde(pt, pd, start, length, temp, iter)		\
458
#define gen8_for_each_pde(pt, pd, start, length, iter)			\
462
	for (iter = gen8_pde_index(start); \
459
	for (iter = gen8_pde_index(start); \
463
	     length > 0 && iter < I915_PDES ? \
460
	     length > 0 && iter < I915_PDES &&				\
464
			(pt = (pd)->page_table[iter]), 1 : 0; \
-
 
465
	     iter++,				\
461
		(pt = (pd)->page_table[iter], true);			\
466
	     temp = ALIGN(start+1, 1 << GEN8_PDE_SHIFT) - start,	\
462
	     ({ u64 temp = ALIGN(start+1, 1 << GEN8_PDE_SHIFT);		\
467
	     temp = min(temp, length),					\
463
		    temp = min(temp - start, length);			\
Line 468... Line 464...
468
	     start += temp, length -= temp)
464
		    start += temp, length -= temp; }), ++iter)
469
 
465
 
470
#define gen8_for_each_pdpe(pd, pdp, start, length, temp, iter)	\
466
#define gen8_for_each_pdpe(pd, pdp, start, length, iter)		\
471
	for (iter = gen8_pdpe_index(start); \
467
	for (iter = gen8_pdpe_index(start); \
472
	     length > 0 && (iter < I915_PDPES_PER_PDP(dev)) ? \
-
 
473
			(pd = (pdp)->page_directory[iter]), 1 : 0; \
468
	     length > 0 && iter < I915_PDPES_PER_PDP(dev) &&		\
474
	     iter++,				\
469
		(pd = (pdp)->page_directory[iter], true);		\
475
	     temp = ALIGN(start+1, 1 << GEN8_PDPE_SHIFT) - start,	\
470
	     ({ u64 temp = ALIGN(start+1, 1 << GEN8_PDPE_SHIFT);	\
Line 476... Line 471...
476
	     temp = min(temp, length),					\
471
		    temp = min(temp - start, length);			\
477
	     start += temp, length -= temp)
472
		    start += temp, length -= temp; }), ++iter)
478
 
473
 
479
#define gen8_for_each_pml4e(pdp, pml4, start, length, temp, iter)	\
474
#define gen8_for_each_pml4e(pdp, pml4, start, length, iter)		\
480
	for (iter = gen8_pml4e_index(start);	\
-
 
481
	     length > 0 && iter < GEN8_PML4ES_PER_PML4 ? \
475
	for (iter = gen8_pml4e_index(start);	\
482
			(pdp = (pml4)->pdps[iter]), 1 : 0; \
476
	     length > 0 && iter < GEN8_PML4ES_PER_PML4 &&		\
483
	     iter++,				\
477
		(pdp = (pml4)->pdps[iter], true);			\
Line 484... Line 478...
484
	     temp = ALIGN(start+1, 1ULL << GEN8_PML4E_SHIFT) - start,	\
478
	     ({ u64 temp = ALIGN(start+1, 1ULL << GEN8_PML4E_SHIFT);	\
485
	     temp = min(temp, length),					\
479
		    temp = min(temp - start, length);			\
486
	     start += temp, length -= temp)
480
		    start += temp, length -= temp; }), ++iter)
487
 
481
 
Line 554... Line 548...
554
	if (WARN_ON(!a || !b))
548
	if (WARN_ON(!a || !b))
555
		return false;
549
		return false;
Line 556... Line 550...
556
 
550
 
557
	if (a->type != b->type)
551
	if (a->type != b->type)
558
		return false;
552
		return false;
559
	if (a->type == I915_GGTT_VIEW_PARTIAL)
553
	if (a->type != I915_GGTT_VIEW_NORMAL)
560
		return !memcmp(&a->params, &b->params, sizeof(a->params));
554
		return !memcmp(&a->params, &b->params, sizeof(a->params));
561
	return true;
555
	return true;
Line 562... Line 556...
562
}
556
}