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

Records