^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright 1998-2008 VIA Technologies, Inc. All Rights Reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #ifndef __VIAMODE_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #define __VIAMODE_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include "global.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) struct VPITTable {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) unsigned char Misc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) unsigned char SR[StdSR];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) unsigned char GR[StdGR];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) unsigned char AR[StdAR];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) struct patch_table {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) int table_length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) struct io_reg *io_reg_table;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) extern int NUM_TOTAL_CN400_ModeXregs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) extern int NUM_TOTAL_CN700_ModeXregs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) extern int NUM_TOTAL_KM400_ModeXregs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) extern int NUM_TOTAL_CX700_ModeXregs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) extern int NUM_TOTAL_VX855_ModeXregs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) extern int NUM_TOTAL_CLE266_ModeXregs;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) extern int NUM_TOTAL_PATCH_MODE;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) extern struct io_reg CN400_ModeXregs[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) extern struct io_reg CN700_ModeXregs[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) extern struct io_reg KM400_ModeXregs[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) extern struct io_reg CX700_ModeXregs[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) extern struct io_reg VX800_ModeXregs[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) extern struct io_reg VX855_ModeXregs[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) extern struct io_reg CLE266_ModeXregs[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) extern struct io_reg PM1024x768[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) extern struct patch_table res_patch_table[];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) extern struct VPITTable VPIT;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) const struct fb_videomode *viafb_get_best_mode(int hres, int vres,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) int refresh);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) const struct fb_videomode *viafb_get_best_rb_mode(int hres, int vres,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) int refresh);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #endif /* __VIAMODE_H__ */