190 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * Copyright 1998-2008 VIA Technologies, Inc. All Rights Reserved.4 * Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved.5 6 */7 8#ifndef __IOCTL_H__9#define __IOCTL_H__10 11#ifndef __user12#define __user13#endif14 15/* VIAFB IOCTL definition */16#define VIAFB_GET_INFO_SIZE 0x56494101 /* 'VIA\01' */17#define VIAFB_GET_INFO 0x56494102 /* 'VIA\02' */18#define VIAFB_HOTPLUG 0x56494103 /* 'VIA\03' */19#define VIAFB_SET_HOTPLUG_FLAG 0x56494104 /* 'VIA\04' */20#define VIAFB_GET_RESOLUTION 0x56494105 /* 'VIA\05' */21#define VIAFB_GET_SAMM_INFO 0x56494107 /* 'VIA\07' */22#define VIAFB_TURN_ON_OUTPUT_DEVICE 0x56494108 /* 'VIA\08' */23#define VIAFB_TURN_OFF_OUTPUT_DEVICE 0x56494109 /* 'VIA\09' */24#define VIAFB_GET_DEVICE 0x5649410B25#define VIAFB_GET_DRIVER_VERSION 0x56494112 /* 'VIA\12' */26#define VIAFB_GET_CHIP_INFO 0x56494113 /* 'VIA\13' */27#define VIAFB_GET_DEVICE_INFO 0x5649411528 29#define VIAFB_GET_DEVICE_SUPPORT 0x5649411830#define VIAFB_GET_DEVICE_CONNECT 0x5649411931#define VIAFB_GET_PANEL_SUPPORT_EXPAND 0x5649411A32#define VIAFB_GET_DRIVER_NAME 0x5649412233#define VIAFB_GET_DEVICE_SUPPORT_STATE 0x5649412334#define VIAFB_GET_GAMMA_LUT 0x5649412435#define VIAFB_SET_GAMMA_LUT 0x5649412536#define VIAFB_GET_GAMMA_SUPPORT_STATE 0x5649412637#define VIAFB_SYNC_SURFACE 0x5649413038#define VIAFB_GET_DRIVER_CAPS 0x5649413139#define VIAFB_GET_IGA_SCALING_INFO 0x5649413240#define VIAFB_GET_PANEL_MAX_SIZE 0x5649413341#define VIAFB_GET_PANEL_MAX_POSITION 0x5649413442#define VIAFB_SET_PANEL_SIZE 0x5649413543#define VIAFB_SET_PANEL_POSITION 0x5649413644#define VIAFB_GET_PANEL_POSITION 0x5649413745#define VIAFB_GET_PANEL_SIZE 0x5649413846 47#define None_Device 0x0048#define CRT_Device 0x0149#define LCD_Device 0x0250#define DVI_Device 0x0851#define CRT2_Device 0x1052#define LCD2_Device 0x4053 54#define OP_LCD_CENTERING 0x0155#define OP_LCD_PANEL_ID 0x0256#define OP_LCD_MODE 0x0357 58/*SAMM operation flag*/59#define OP_SAMM 0x8060 61#define LCD_PANEL_ID_MAXIMUM 2362 63#define STATE_ON 0x164#define STATE_OFF 0x065#define STATE_DEFAULT 0xFFFF66 67#define MAX_ACTIVE_DEV_NUM 268 69struct device_t {70 unsigned short crt:1;71 unsigned short dvi:1;72 unsigned short lcd:1;73 unsigned short samm:1;74 unsigned short lcd_dsp_cent:1;75 unsigned char lcd_mode:1;76 unsigned short epia_dvi:1;77 unsigned short lcd_dual_edge:1;78 unsigned short lcd2:1;79 80 unsigned short primary_dev;81 unsigned char lcd_panel_id;82 unsigned short xres, yres;83 unsigned short xres1, yres1;84 unsigned short refresh;85 unsigned short bpp;86 unsigned short refresh1;87 unsigned short bpp1;88 unsigned short sequence;89 unsigned short bus_width;90};91 92struct viafb_ioctl_info {93 u32 viafb_id; /* for identifying viafb */94#define VIAID 0x56494146 /* Identify myself with 'VIAF' */95 u16 vendor_id;96 u16 device_id;97 u8 version;98 u8 revision;99 u8 reserved[246]; /* for future use */100};101 102struct viafb_ioctl_mode {103 u32 xres;104 u32 yres;105 u32 refresh;106 u32 bpp;107 u32 xres_sec;108 u32 yres_sec;109 u32 virtual_xres_sec;110 u32 virtual_yres_sec;111 u32 refresh_sec;112 u32 bpp_sec;113};114struct viafb_ioctl_samm {115 u32 samm_status;116 u32 size_prim;117 u32 size_sec;118 u32 mem_base;119 u32 offset_sec;120};121 122struct viafb_driver_version {123 int iMajorNum;124 int iKernelNum;125 int iOSNum;126 int iMinorNum;127};128 129struct viafb_ioctl_lcd_attribute {130 unsigned int panel_id;131 unsigned int display_center;132 unsigned int lcd_mode;133};134 135struct viafb_ioctl_setting {136 /* Enable or disable active devices */137 unsigned short device_flag;138 /* Indicate which device should be turn on or turn off. */139 unsigned short device_status;140 unsigned int reserved;141 /* Indicate which LCD's attribute can be changed. */142 unsigned short lcd_operation_flag;143 /* 1: SAMM ON 0: SAMM OFF */144 unsigned short samm_status;145 /* horizontal resolution of first device */146 unsigned short first_dev_hor_res;147 /* vertical resolution of first device */148 unsigned short first_dev_ver_res;149 /* horizontal resolution of second device */150 unsigned short second_dev_hor_res;151 /* vertical resolution of second device */152 unsigned short second_dev_ver_res;153 /* refresh rate of first device */154 unsigned short first_dev_refresh;155 /* bpp of first device */156 unsigned short first_dev_bpp;157 /* refresh rate of second device */158 unsigned short second_dev_refresh;159 /* bpp of second device */160 unsigned short second_dev_bpp;161 /* Indicate which device are primary display device. */162 unsigned int primary_device;163 unsigned int struct_reserved[35];164 struct viafb_ioctl_lcd_attribute lcd_attributes;165};166 167struct _UTFunctionCaps {168 unsigned int dw3DScalingState;169 unsigned int reserved[31];170};171 172struct _POSITIONVALUE {173 unsigned int dwX;174 unsigned int dwY;175};176 177struct _panel_size_pos_info {178 unsigned int device_type;179 int x;180 int y;181};182 183extern int viafb_LCD_ON;184extern int viafb_DVI_ON;185 186int viafb_ioctl_get_viafb_info(u_long arg);187int viafb_ioctl_hotplug(int hres, int vres, int bpp);188 189#endif /* __IOCTL_H__ */190