class BandwidthBuddyControl
Defined at line 411 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
BW_BUDDY_CTL (Bandwidth Buddy Control)
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.
This register is not documented on Kaby Lake or Skylake.
Rocket Lake: IHD-OS-RKL-Vol 2-7.22 page 30
Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev2.0 Part 1 page 171
DG1: IHD-OS-DG1-Vol 2c-2.21 Part 2 page 136
Public Members
field_disabled_414
field_RsvdZ_416
field_plane_data_request_timer_428
field_RsvdZ_430
field_address_translation_request_timer_443
field_RsvdZ_445
Public Methods
template <, >
typename SelfType::ValueType disabled ()
If true, the address buddy logic is disabled.
Defined at line 414 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
SelfType & set_disabled (typename SelfType::ValueType val)
If true, the address buddy logic is disabled.
Defined at line 414 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
typename SelfType::ValueType plane_data_request_timer ()
Time that a regular request (for plane data) waits for a buddy.
Plane data is fetched using HP (high-priority) requests. Each incoming
request has an associated timer, whose initial value comes from this field.
The timer tracks the amount of time that a request is stalled waiting for a
suitable buddy request.
The timer balances the DRAM bandwidth savings obtained by the buddy system
(reducing the number of DRAM management operations) with the delays
introduced by stalling requests until suitable buddies come along.
Defined at line 428 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
SelfType & set_plane_data_request_timer (typename SelfType::ValueType val)
Time that a regular request (for plane data) waits for a buddy.
Plane data is fetched using HP (high-priority) requests. Each incoming
request has an associated timer, whose initial value comes from this field.
The timer tracks the amount of time that a request is stalled waiting for a
suitable buddy request.
The timer balances the DRAM bandwidth savings obtained by the buddy system
(reducing the number of DRAM management operations) with the delays
introduced by stalling requests until suitable buddies come along.
Defined at line 428 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
typename SelfType::ValueType address_translation_request_timer ()
Time that a TLB request (for address translation data) waits for a buddy.
Plane data is conceptually stored in graphics virtual memory, using the
GGTT (Global Graphics Translation Table). Similarly to IA (Intel
Architecture) CPUs, virtual-to-physical address translations are cached in
a TLB (translation lookaside buffer). TLB requests occur when fetching
plane data result in TLB misses, and the TLB controller needs to fetch
virtual-to-physical address translations from the GGTT.
TLB requests are stalled waiting for suitable buddies, using the same
mechanism as `plane_data_request_timer`.
Defined at line 443 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
template <, >
SelfType & set_address_translation_request_timer (typename SelfType::ValueType val)
Time that a TLB request (for address translation data) waits for a buddy.
Plane data is conceptually stored in graphics virtual memory, using the
GGTT (Global Graphics Translation Table). Similarly to IA (Intel
Architecture) CPUs, virtual-to-physical address translations are cached in
a TLB (translation lookaside buffer). TLB requests occur when fetching
plane data result in TLB misses, and the TLB controller needs to fetch
virtual-to-physical address translations from the GGTT.
TLB requests are stalled waiting for suitable buddies, using the same
mechanism as `plane_data_request_timer`.
Defined at line 443 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h
hwreg::RegisterAddr<BandwidthBuddyControl> GetForArbiter (int arbiter_index)
Tiger Lake has two bandwidth buddy instances, at indexes 1 and 2.
Rocket Lake, has a single bandwidth buddy instance, at index 0.
Defined at line 449 of file ../../src/graphics/display/drivers/intel-display/registers-arbiter.h