1 // SPDX-License-Identifier: GPL-2.0 2 3 use kernel::prelude::*; 4 5 use crate::{ 6 driver::Bar0, 7 fb::hal::FbHal, 8 regs, // 9 }; 10 11 fn vidmem_size_ga102(bar: &Bar0) -> u64 { 12 regs::NV_USABLE_FB_SIZE_IN_MB::read(bar).usable_fb_size() 13 } 14 15 struct Ga102; 16 17 impl FbHal for Ga102 { 18 fn read_sysmem_flush_page(&self, bar: &Bar0) -> u64 { 19 super::ga100::read_sysmem_flush_page_ga100(bar) 20 } 21 22 fn write_sysmem_flush_page(&self, bar: &Bar0, addr: u64) -> Result { 23 super::ga100::write_sysmem_flush_page_ga100(bar, addr); 24 25 Ok(()) 26 } 27 28 fn supports_display(&self, bar: &Bar0) -> bool { 29 super::ga100::display_enabled_ga100(bar) 30 } 31 32 fn vidmem_size(&self, bar: &Bar0) -> u64 { 33 vidmem_size_ga102(bar) 34 } 35 } 36 37 const GA102: Ga102 = Ga102; 38 pub(super) const GA102_HAL: &dyn FbHal = &GA102; 39