class ArbitrationControl

Defined at line 28 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

ARB_CTL (Display Arbitration Control 1)

This register has bits that are reserved but not MBZ (must be zero). So, it

can only be safely updated via read-modify-write operations.

Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev2.0 Part 1 pages 51-53

DG1: IHD-OS-DG1-Vol 2c-2.21 Part 1 pages 13-15

Kaby Lake: IHD-OS-KBL-Vol 2c-1.17 Part 1 pages 82-83

Skylake: IHD-OS-KBL-Vol 2c-1.17 Part 1 pages 81-82

Public Members

 field_framebuffer_compression_writes_wake_memory_31
 field_RsvdZ_33
 field_high_priority_queue_watermark_bits_40
 field_low_priority_back_to_back_request_limit_bits_47
 field_translation_lookaside_buffer_request_limit_55
 field_translation_lookaside_buffer_in_flight_request_limit_63
 field_framebuffer_compression_watermarks_disabled_66
 field_tiled_address_swizzling_75
 field_high_priority_request_chain_page_break_limit_80
 field_RsvdZ_82
 field_high_priority_request_chain_cache_line_limit_88

Public Methods

template <, >
typename SelfType::ValueType framebuffer_compression_writes_wake_memory ()

If true, writes to FBC (framebuffer compression) surfaces wake up RAM.

Defined at line 31 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
SelfType & set_framebuffer_compression_writes_wake_memory (typename SelfType::ValueType val)

If true, writes to FBC (framebuffer compression) surfaces wake up RAM.

Defined at line 31 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
typename SelfType::ValueType high_priority_queue_watermark_bits ()

The HP (high-priority) queue is read after it has this many entries.

This field has a non-trivial encoding. It should be used via the

`high_priority_queue_watermark()` and `set_high_priority_queue_watermark()`

helpers.

Defined at line 40 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
SelfType & set_high_priority_queue_watermark_bits (typename SelfType::ValueType val)

The HP (high-priority) queue is read after it has this many entries.

This field has a non-trivial encoding. It should be used via the

`high_priority_queue_watermark()` and `set_high_priority_queue_watermark()`

helpers.

Defined at line 40 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
typename SelfType::ValueType low_priority_back_to_back_request_limit_bits ()

Maximum number of LP (low-priority) write requests accepted from a client.

This field has a non-trivial encoding. It should be used via the

`low_priority_back_to_back_request_limit()` and

`set_low_priority_back_to_back_request_limit()` helpers.

Defined at line 47 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
SelfType & set_low_priority_back_to_back_request_limit_bits (typename SelfType::ValueType val)

Maximum number of LP (low-priority) write requests accepted from a client.

This field has a non-trivial encoding. It should be used via the

`low_priority_back_to_back_request_limit()` and

`set_low_priority_back_to_back_request_limit()` helpers.

Defined at line 47 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
SelfType & set_translation_lookaside_buffer_request_limit (typename SelfType::ValueType val)

Maximum number of TLB requests issued in one arbitration loop.

This limit applies to TLB (translation lookaside buffer) and VT-D

(virtualized directed I/O) address translation requests.

This value must not be zero.

Defined at line 55 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
typename SelfType::ValueType translation_lookaside_buffer_request_limit ()

Maximum number of TLB requests issued in one arbitration loop.

This limit applies to TLB (translation lookaside buffer) and VT-D

(virtualized directed I/O) address translation requests.

This value must not be zero.

Defined at line 55 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
SelfType & set_translation_lookaside_buffer_in_flight_request_limit (typename SelfType::ValueType val)

Maximum number of TLB requests in-flight.

This limit applies to TLB (translation lookaside buffer) and VT-D

(virtualized directed I/O) address translation requests.

This value must not be zero.

Defined at line 63 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
typename SelfType::ValueType translation_lookaside_buffer_in_flight_request_limit ()

Maximum number of TLB requests in-flight.

This limit applies to TLB (translation lookaside buffer) and VT-D

(virtualized directed I/O) address translation requests.

This value must not be zero.

Defined at line 63 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
typename SelfType::ValueType framebuffer_compression_watermarks_disabled ()

If true, the FBC (framebuffer compression) watermarks are disabled.

Defined at line 66 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
SelfType & set_framebuffer_compression_watermarks_disabled (typename SelfType::ValueType val)

If true, the FBC (framebuffer compression) watermarks are disabled.

Defined at line 66 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
SelfType & set_tiled_address_swizzling (typename SelfType::ValueType val)

Zero on all supported display engines.

This field was used to configure Display Engine-side swizzling of physical

memory address bits when accessing Y-tiled surfaces. On recent processors,

this feature has been deprecated in favor of DRAM controller-level address

swizzling, and the field should be set to 0 indicating no display requests

address swizzling on these processors.

Defined at line 75 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
typename SelfType::ValueType tiled_address_swizzling ()

Zero on all supported display engines.

This field was used to configure Display Engine-side swizzling of physical

memory address bits when accessing Y-tiled surfaces. On recent processors,

this feature has been deprecated in favor of DRAM controller-level address

swizzling, and the field should be set to 0 indicating no display requests

address swizzling on these processors.

Defined at line 75 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
typename SelfType::ValueType high_priority_request_chain_page_break_limit ()

Maximum number of page breaks in a chain of HP (high-priority) requests.

This value must not be zero.

Defined at line 80 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
SelfType & set_high_priority_request_chain_page_break_limit (typename SelfType::ValueType val)

Maximum number of page breaks in a chain of HP (high-priority) requests.

This value must not be zero.

Defined at line 80 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
typename SelfType::ValueType high_priority_request_chain_cache_line_limit ()

Maximum number of cachelines in a chain of HP (high-priority) requests.

This value must be greater than 8, which is the size of a DBUF (Display

Buffer) block.

Defined at line 88 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

template <, >
SelfType & set_high_priority_request_chain_cache_line_limit (typename SelfType::ValueType val)

Maximum number of cachelines in a chain of HP (high-priority) requests.

This value must be greater than 8, which is the size of a DBUF (Display

Buffer) block.

Defined at line 88 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

int32_t high_priority_queue_watermark ()

Maximum number of LP (low-priority) write requests accepted from a client.

Defined at line 91 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

ArbitrationControl & set_high_priority_queue_watermark (int32_t watermark)

See `high_priority_queue_watermark()` for details.

Defined at line 98 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

int32_t low_priority_back_to_back_request_limit ()

Maximum number of LP (low-priority) write requests accepted from a client.

After a client reaches this limit of back-to-back requests, re-arbitration

occurs.

Defined at line 110 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

ArbitrationControl & set_low_priority_back_to_back_request_limit (int32_t request_limit)

See `low_priority_back_to_back_request_limit()` for details.

Defined at line 117 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

hwreg::RegisterAddr<ArbitrationControl> GetForArbiter (int arbiter_index)

`arbiter_index` zero (0) represents the global arbiter. The following

indexes represent the numbered arbiters.

Kaby Lake and Skylake only have a global arbiter.

Defined at line 126 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

uint32_t TwoBitLog2 (int32_t value)

Helper for setting 2-bit fields that use log2 representation.

Defined at line 137 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h

Records