xref: /linux/drivers/gpu/nova-core/fb/regs.rs (revision 9102e655ea7285c1bc329669865ba8a38cdb69e6)
1 // SPDX-License-Identifier: GPL-2.0
2 
3 use kernel::io::register;
4 
5 // PDISP
6 
7 register! {
8     pub(super) NV_PDISP_VGA_WORKSPACE_BASE(u32) @ 0x00625f04 {
9         /// VGA workspace base address divided by 0x10000.
10         31:8    addr;
11         /// Set if the `addr` field is valid.
12         3:3     status_valid => bool;
13     }
14 }
15 
16 impl NV_PDISP_VGA_WORKSPACE_BASE {
17     /// Returns the base address of the VGA workspace, or `None` if none exists.
18     pub(super) fn vga_workspace_addr(self) -> Option<u64> {
19         if self.status_valid() {
20             Some(u64::from(self.addr()) << 16)
21         } else {
22             None
23         }
24     }
25 }
26