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