162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 1998-2008 VIA Technologies, Inc. All Rights Reserved.
462306a36Sopenharmony_ci * Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved.
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifndef __VIAMODE_H__
962306a36Sopenharmony_ci#define __VIAMODE_H__
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include "global.h"
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cistruct VPITTable {
1462306a36Sopenharmony_ci	unsigned char Misc;
1562306a36Sopenharmony_ci	unsigned char SR[StdSR];
1662306a36Sopenharmony_ci	unsigned char GR[StdGR];
1762306a36Sopenharmony_ci	unsigned char AR[StdAR];
1862306a36Sopenharmony_ci};
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_cistruct patch_table {
2162306a36Sopenharmony_ci	int table_length;
2262306a36Sopenharmony_ci	struct io_reg *io_reg_table;
2362306a36Sopenharmony_ci};
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciextern int NUM_TOTAL_CN400_ModeXregs;
2662306a36Sopenharmony_ciextern int NUM_TOTAL_CN700_ModeXregs;
2762306a36Sopenharmony_ciextern int NUM_TOTAL_KM400_ModeXregs;
2862306a36Sopenharmony_ciextern int NUM_TOTAL_CX700_ModeXregs;
2962306a36Sopenharmony_ciextern int NUM_TOTAL_VX855_ModeXregs;
3062306a36Sopenharmony_ciextern int NUM_TOTAL_CLE266_ModeXregs;
3162306a36Sopenharmony_ciextern int NUM_TOTAL_PATCH_MODE;
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciextern struct io_reg CN400_ModeXregs[];
3462306a36Sopenharmony_ciextern struct io_reg CN700_ModeXregs[];
3562306a36Sopenharmony_ciextern struct io_reg KM400_ModeXregs[];
3662306a36Sopenharmony_ciextern struct io_reg CX700_ModeXregs[];
3762306a36Sopenharmony_ciextern struct io_reg VX800_ModeXregs[];
3862306a36Sopenharmony_ciextern struct io_reg VX855_ModeXregs[];
3962306a36Sopenharmony_ciextern struct io_reg CLE266_ModeXregs[];
4062306a36Sopenharmony_ciextern struct io_reg PM1024x768[];
4162306a36Sopenharmony_ciextern struct patch_table res_patch_table[];
4262306a36Sopenharmony_ciextern struct VPITTable VPIT;
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciconst struct fb_videomode *viafb_get_best_mode(int hres, int vres,
4562306a36Sopenharmony_ci	int refresh);
4662306a36Sopenharmony_ciconst struct fb_videomode *viafb_get_best_rb_mode(int hres, int vres,
4762306a36Sopenharmony_ci	int refresh);
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci#endif /* __VIAMODE_H__ */
50