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