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 | } |