xref: /linux/drivers/gpu/nova-core/fb/hal/ga102.rs (revision 220994d61cebfc04f071d69049127657c7e8191b)
1 // SPDX-License-Identifier: GPL-2.0
2 
3 use kernel::prelude::*;
4 
5 use crate::driver::Bar0;
6 use crate::fb::hal::FbHal;
7 use crate::regs;
8 
vidmem_size_ga102(bar: &Bar0) -> u649 fn vidmem_size_ga102(bar: &Bar0) -> u64 {
10     regs::NV_USABLE_FB_SIZE_IN_MB::read(bar).usable_fb_size()
11 }
12 
13 struct Ga102;
14 
15 impl FbHal for Ga102 {
read_sysmem_flush_page(&self, bar: &Bar0) -> u6416     fn read_sysmem_flush_page(&self, bar: &Bar0) -> u64 {
17         super::ga100::read_sysmem_flush_page_ga100(bar)
18     }
19 
write_sysmem_flush_page(&self, bar: &Bar0, addr: u64) -> Result20     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 
supports_display(&self, bar: &Bar0) -> bool26     fn supports_display(&self, bar: &Bar0) -> bool {
27         super::ga100::display_enabled_ga100(bar)
28     }
29 
vidmem_size(&self, bar: &Bar0) -> u6430     fn vidmem_size(&self, bar: &Bar0) -> u64 {
31         vidmem_size_ga102(bar)
32     }
33 }
34 
35 const GA102: Ga102 = Ga102;
36 pub(super) const GA102_HAL: &dyn FbHal = &GA102;
37