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
vidmem_size_ga102(bar: &Bar0) -> u6411 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 {
read_sysmem_flush_page(&self, bar: &Bar0) -> u6418 fn read_sysmem_flush_page(&self, bar: &Bar0) -> u64 {
19 super::ga100::read_sysmem_flush_page_ga100(bar)
20 }
21
write_sysmem_flush_page(&self, bar: &Bar0, addr: u64) -> Result22 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
supports_display(&self, bar: &Bar0) -> bool28 fn supports_display(&self, bar: &Bar0) -> bool {
29 super::ga100::display_enabled_ga100(bar)
30 }
31
vidmem_size(&self, bar: &Bar0) -> u6432 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