xref: /linux/drivers/gpu/nova-core/vgpu/hal.rs (revision 4e69c1856bfd9ffb7e9d335a25842fa211628929)
1 // SPDX-License-Identifier: GPL-2.0
2 
3 use crate::gpu::{
4     Architecture,
5     Chipset, //
6 };
7 
8 mod gb202;
9 mod tu102;
10 
11 pub(super) trait VgpuHal {
12     /// Returns whether this chipset can support vGPU.
13     fn supports_vgpu(&self) -> bool;
14 }
15 
16 pub(super) fn vgpu_hal(chipset: Chipset) -> &'static dyn VgpuHal {
17     match chipset.arch() {
18         Architecture::BlackwellGB20x => gb202::GB202_HAL,
19         Architecture::Turing
20         | Architecture::Ampere
21         | Architecture::Hopper
22         | Architecture::Ada
23         | Architecture::BlackwellGB10x => tu102::TU102_HAL,
24     }
25 }
26