diff options
| author | Timur Tabi <ttabi@nvidia.com> | 2026-04-17 14:13:57 -0500 |
|---|---|---|
| committer | Alexandre Courbot <acourbot@nvidia.com> | 2026-04-29 08:27:53 +0900 |
| commit | 21decd6324902503692529a13523969599755a13 (patch) | |
| tree | 8652b6df3a411e7716f758d11d0fa2264e976344 /drivers/gpu/nova-core/fb | |
| parent | cedbbc383ab3e21331ef36f90e0dfab89b58934d (diff) | |
| download | linux-next-21decd6324902503692529a13523969599755a13.tar.gz linux-next-21decd6324902503692529a13523969599755a13.zip | |
gpu: nova-core: add FbHal::frts_size() for GA100 support
Introduce FbHal method frts_size() to return the size of the FRTS
window. GA100 is a special case in that although there is an
FRTS, its size must arbitrarily be set to 0.
Note that we cannot use supports_display() to determine the FRTS
size because there are other GPUs (e.g. GA102GL) that have display
disabled (and so supports_display() returns False), but the FRTS
window size still needs to be 1MB.
Signed-off-by: Timur Tabi <ttabi@nvidia.com>
Reviewed-by: Eliot Courtney <ecourtney@nvidia.com>
Acked-by: Gary Guo <gary@garyguo.net>
Link: https://patch.msgid.link/20260417191359.1307434-5-ttabi@nvidia.com
[acourbot: apply requested fix to commit message.]
[acourbot: fix minor conflict.]
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Diffstat (limited to 'drivers/gpu/nova-core/fb')
| -rw-r--r-- | drivers/gpu/nova-core/fb/hal.rs | 3 | ||||
| -rw-r--r-- | drivers/gpu/nova-core/fb/hal/ga100.rs | 6 | ||||
| -rw-r--r-- | drivers/gpu/nova-core/fb/hal/ga102.rs | 4 | ||||
| -rw-r--r-- | drivers/gpu/nova-core/fb/hal/tu102.rs | 11 |
4 files changed, 23 insertions, 1 deletions
diff --git a/drivers/gpu/nova-core/fb/hal.rs b/drivers/gpu/nova-core/fb/hal.rs index aba0abd8ee00..1c01a6cbed65 100644 --- a/drivers/gpu/nova-core/fb/hal.rs +++ b/drivers/gpu/nova-core/fb/hal.rs @@ -25,6 +25,9 @@ pub(crate) trait FbHal { /// Returns the VRAM size, in bytes. fn vidmem_size(&self, bar: &Bar0) -> u64; + + /// Returns the FRTS size, in bytes. + fn frts_size(&self) -> u64; } /// Returns the HAL corresponding to `chipset`. diff --git a/drivers/gpu/nova-core/fb/hal/ga100.rs b/drivers/gpu/nova-core/fb/hal/ga100.rs index 1c03783cddef..2f5871d915c3 100644 --- a/drivers/gpu/nova-core/fb/hal/ga100.rs +++ b/drivers/gpu/nova-core/fb/hal/ga100.rs @@ -66,6 +66,12 @@ impl FbHal for Ga100 { fn vidmem_size(&self, bar: &Bar0) -> u64 { super::tu102::vidmem_size_gp102(bar) } + + // GA100 is a special case where its FRTS region exists, but is empty. We + // return a size of 0 because we still need to record where the region starts. + fn frts_size(&self) -> u64 { + 0 + } } const GA100: Ga100 = Ga100; diff --git a/drivers/gpu/nova-core/fb/hal/ga102.rs b/drivers/gpu/nova-core/fb/hal/ga102.rs index 4b9f0f74d0e7..3bb66f64bef7 100644 --- a/drivers/gpu/nova-core/fb/hal/ga102.rs +++ b/drivers/gpu/nova-core/fb/hal/ga102.rs @@ -35,6 +35,10 @@ impl FbHal for Ga102 { fn vidmem_size(&self, bar: &Bar0) -> u64 { vidmem_size_ga102(bar) } + + fn frts_size(&self) -> u64 { + super::tu102::frts_size_tu102() + } } const GA102: Ga102 = Ga102; diff --git a/drivers/gpu/nova-core/fb/hal/tu102.rs b/drivers/gpu/nova-core/fb/hal/tu102.rs index 281bb796e198..22c174bf1472 100644 --- a/drivers/gpu/nova-core/fb/hal/tu102.rs +++ b/drivers/gpu/nova-core/fb/hal/tu102.rs @@ -2,7 +2,8 @@ use kernel::{ io::Io, - prelude::*, // + prelude::*, + sizes::*, // }; use crate::{ @@ -38,6 +39,10 @@ pub(super) fn vidmem_size_gp102(bar: &Bar0) -> u64 { .usable_fb_size() } +pub(super) const fn frts_size_tu102() -> u64 { + u64::SZ_1M +} + struct Tu102; impl FbHal for Tu102 { @@ -56,6 +61,10 @@ impl FbHal for Tu102 { fn vidmem_size(&self, bar: &Bar0) -> u64 { vidmem_size_gp102(bar) } + + fn frts_size(&self) -> u64 { + frts_size_tu102() + } } const TU102: Tu102 = Tu102; |
