| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef __NVBIOS_BMP_H__ |
| #define __NVBIOS_BMP_H__ |
| static inline u16 |
| bmp_version(struct nvkm_bios *bios) |
| { |
| if (bios->bmp_offset) { |
| return nvbios_rd08(bios, bios->bmp_offset + 5) << 8 | |
| nvbios_rd08(bios, bios->bmp_offset + 6); |
| } |
| |
| return 0x0000; |
| } |
| |
| static inline u16 |
| bmp_mem_init_table(struct nvkm_bios *bios) |
| { |
| if (bmp_version(bios) >= 0x0300) |
| return nvbios_rd16(bios, bios->bmp_offset + 24); |
| return 0x0000; |
| } |
| |
| static inline u16 |
| bmp_sdr_seq_table(struct nvkm_bios *bios) |
| { |
| if (bmp_version(bios) >= 0x0300) |
| return nvbios_rd16(bios, bios->bmp_offset + 26); |
| return 0x0000; |
| } |
| |
| static inline u16 |
| bmp_ddr_seq_table(struct nvkm_bios *bios) |
| { |
| if (bmp_version(bios) >= 0x0300) |
| return nvbios_rd16(bios, bios->bmp_offset + 28); |
| return 0x0000; |
| } |
| #endif |