class PipeArbiterControl
Defined at line 759 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
PIPE_ARB_CTL (Pipe Arbiter Control)
This register does not exist on Kaby Lake or Skylake.
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 2 pages 669-670
DG1: IHD-OS-DG1-Vol 2c-2.21 Part 2 pages 669-670
Public Members
field_RsvdZ_761
field_weighted_arbitration_disabled_764
field_arbitration_cycle_additional_slots_769
field_RsvdZ_771
field_plane_control_slot_config_enabled_778
field_block_validity_check_disabled_781
field_display_stream_buffer_arbitration_interval_bits_786
field_display_buffer_requests_per_streamer_request_bits_793
field_RsvdZ_795
field_display_buffer_drain_delay_after_frame_start_us_798
Public Methods
template <, >
SelfType & set_weighted_arbitration_disabled (typename SelfType::ValueType val)
If true, weighted pipe slice arbitration is disabled.
Defined at line 764 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
typename SelfType::ValueType weighted_arbitration_disabled ()
If true, weighted pipe slice arbitration is disabled.
Defined at line 764 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
typename SelfType::ValueType arbitration_cycle_additional_slots ()
Number of additional slots added to an arbitration cycle.
During these additional slots, clients are served using round-robin.
Defined at line 769 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
SelfType & set_arbitration_cycle_additional_slots (typename SelfType::ValueType val)
Number of additional slots added to an arbitration cycle.
During these additional slots, clients are served using round-robin.
Defined at line 769 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
typename SelfType::ValueType plane_control_slot_config_enabled ()
If true, arbitration configuration in `PlaneControl` (PLANE_CTL) is used.
This field enables the use of the
`pipe_slice_request_arbitration_slot_count_tiger_lake` field.
If this field is false, hardware defaults are used instead.
Defined at line 778 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
SelfType & set_plane_control_slot_config_enabled (typename SelfType::ValueType val)
If true, arbitration configuration in `PlaneControl` (PLANE_CTL) is used.
This field enables the use of the
`pipe_slice_request_arbitration_slot_count_tiger_lake` field.
If this field is false, hardware defaults are used instead.
Defined at line 778 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
typename SelfType::ValueType block_validity_check_disabled ()
If true, the pipe arbiter does not check for block validity.
Defined at line 781 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
SelfType & set_block_validity_check_disabled (typename SelfType::ValueType val)
If true, the pipe arbiter does not check for block validity.
Defined at line 781 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
typename SelfType::ValueType display_stream_buffer_arbitration_interval_bits ()
The DSB (Display Stream Buffer) engine service interval, in clock cycles.
This field has a non-trivial encoding.
Defined at line 786 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
SelfType & set_display_stream_buffer_arbitration_interval_bits (typename SelfType::ValueType val)
The DSB (Display Stream Buffer) engine service interval, in clock cycles.
This field has a non-trivial encoding.
Defined at line 786 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
typename SelfType::ValueType display_buffer_requests_per_streamer_request_bits ()
Number of DBUF (Display Buffer) requests serviced per streamer request.
This field has a non-trivial encoding. It should be used via the
`display_buffer_requests_per_streamer_request()` and
`set_display_buffer_requests_per_streamer_request()` helpers.
Defined at line 793 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
SelfType & set_display_buffer_requests_per_streamer_request_bits (typename SelfType::ValueType val)
Number of DBUF (Display Buffer) requests serviced per streamer request.
This field has a non-trivial encoding. It should be used via the
`display_buffer_requests_per_streamer_request()` and
`set_display_buffer_requests_per_streamer_request()` helpers.
Defined at line 793 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
typename SelfType::ValueType display_buffer_drain_delay_after_frame_start_us ()
Number of microseconds the pipe waits after frame start to drain DBUF data.
Defined at line 798 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
SelfType & set_display_buffer_drain_delay_after_frame_start_us (typename SelfType::ValueType val)
Number of microseconds the pipe waits after frame start to drain DBUF data.
Defined at line 798 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
int32_t display_stream_buffer_arbitration_interval ()
The DSB (Display Stream Buffer) engine service interval, in clock cycles.
This field has a non-trivial encoding.
Defined at line 803 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
PipeArbiterControl & set_display_stream_buffer_arbitration_interval (int32_t clocks)
See `display_stream_buffer_arbitration_interval()` for details.
Defined at line 810 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
int32_t display_buffer_requests_per_streamer_request ()
Number of DBUF (Display Buffer) requests serviced per streamer request.
The register's documentation uses the DDB acronym (Display Data Buffer)
instead of DBUF. IHD-OS-TGL-Vol 12-1.22-Rev2.0 section "Maximum Data Buffer
Bandwidth" on page 167 contains "display data buffer (DBUF)", which hints
that DBUF and DDB are synonyms. The hint is confirmed by the intel-display
driver code, which uses both "ddb" and "dbuf" in DBUF-related identifiers.
The "streamer" referenced here is most likely the plane's display streamer,
which issues memory requests when the plane's free DBUF space exceeds its
watermark. This streamer is mentioned as the "display streamer" or "overlay
streamer" in older documentation, such as the "FW1 - Display FIFO Watermark
Control 1" section in IHD-OS-VLV-Vol10-04.14 (the Display PRM for
ValleyView graphics). Older documentation had specific names ("display",
"overlay" / "sprite", "cursor") for planes, used the term "display RAM"
instead of DBUF, and the term "display FIFO" to refer to a plane's DBUF
allocation. The "display FIFO" concept is briefly covered in the "DSPARB -
Display Arbitration Control" section in IHD-OS-VLV-Vol10-04.14. These terms
still appear in current documentation, and in Intel's driver code.
Defined at line 838 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
PipeArbiterControl & set_display_buffer_requests_per_streamer_request (int32_t display_buffer_requests)
See `display_buffer_requests_per_streamer_request()` for details.
Defined at line 845 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
hwreg::RegisterAddr<PipeArbiterControl> GetForPipe (intel_display::PipeId pipe_id)
Defined at line 856 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h