~ubuntu-branches/ubuntu/trusty/xserver-xorg-video-geode-lts-utopic/trusty-proposed

« back to all changes in this revision

Viewing changes to src/cim/cim_rtns.h

  • Committer: Package Import Robot
  • Author(s): Maarten Lankhorst
  • Date: 2015-01-06 10:39:17 UTC
  • Revision ID: package-import@ubuntu.com-20150106103917-bumwel1243pseqs6
Tags: upstream-2.11.16
ImportĀ upstreamĀ versionĀ 2.11.16

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2006 Advanced Micro Devices, Inc.
 
3
 *
 
4
 * Permission is hereby granted, free of charge, to any person obtaining a
 
5
 * copy of this software and associated documentation files (the "Software"),
 
6
 * to deal in the Software without restriction, including without limitation
 
7
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 
8
 * and/or sell copies of the Software, and to permit persons to whom the
 
9
 * Software is furnished to do so, subject to the following conditions:
 
10
 *
 
11
 * The above copyright notice and this permission notice shall be included in
 
12
 * all copies or substantial portions of the Software.
 
13
 *
 
14
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 
15
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 
16
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 
17
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 
18
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 
19
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 
20
 * DEALINGS IN THE SOFTWARE.
 
21
 *
 
22
 * Neither the name of the Advanced Micro Devices, Inc. nor the names of its
 
23
 * contributors may be used to endorse or promote products derived from this
 
24
 * software without specific prior written permission.
 
25
 */
 
26
 
 
27
 /*
 
28
  * Cimarron function prototypes.
 
29
  */
 
30
 
 
31
#ifndef _cim_rtns_h
 
32
#define _cim_rtns_h
 
33
 
 
34
/* INCLUDE USER PARAMETER DEFINITIONS */
 
35
 
 
36
#include "cim_parm.h"
 
37
 
 
38
/* COMPILER OPTION FOR C++ PROGRAMS */
 
39
 
 
40
#ifdef __cplusplus
 
41
extern "C" {
 
42
#endif
 
43
 
 
44
/*--------------------------*/
 
45
/* CIMARRON MEMORY POINTERS */
 
46
/*--------------------------*/
 
47
 
 
48
    extern unsigned char *cim_gp_ptr;
 
49
    extern unsigned char *cim_fb_ptr;
 
50
    extern unsigned char *cim_cmd_base_ptr;
 
51
    extern unsigned char *cim_cmd_ptr;
 
52
    extern unsigned char *cim_vid_ptr;
 
53
    extern unsigned char *cim_vip_ptr;
 
54
    extern unsigned char *cim_vg_ptr;
 
55
 
 
56
/*----------------------------------------*/
 
57
/* INITIALIZATION ROUTINE DEFINITIONS     */
 
58
/*----------------------------------------*/
 
59
 
 
60
    int init_detect_cpu(unsigned long *cpu_revision,
 
61
                        unsigned long *companion_revision);
 
62
    unsigned long init_read_pci(unsigned long address);
 
63
    int init_read_base_addresses(INIT_BASE_ADDRESSES * base_addresses);
 
64
    int init_read_cpu_frequency(unsigned long *cpu_frequency);
 
65
 
 
66
/*----------------------------------------*/
 
67
/* GRAPHICS PROCESSOR ROUTINE DEFINITIONS */
 
68
/*----------------------------------------*/
 
69
 
 
70
    void gp_set_limit_on_buffer_lead(unsigned long lead);
 
71
    void gp_set_command_buffer_base(unsigned long address,
 
72
                                    unsigned long start, unsigned long stop);
 
73
    void gp_set_frame_buffer_base(unsigned long address, unsigned long size);
 
74
    void gp_set_bpp(int bpp);
 
75
    void gp_declare_blt(unsigned long flags);
 
76
    void gp_declare_vector(unsigned long flags);
 
77
    void gp_write_parameters(void);
 
78
    void gp_set_raster_operation(unsigned char ROP);
 
79
    void gp_set_alpha_operation(int alpha_operation, int alpha_type,
 
80
                                int channel, int apply_alpha,
 
81
                                unsigned char alpha);
 
82
    void gp_set_solid_pattern(unsigned long color);
 
83
    void gp_set_mono_pattern(unsigned long bgcolor, unsigned long fgcolor,
 
84
                             unsigned long data0, unsigned long data1,
 
85
                             int transparent, int x, int y);
 
86
    void gp_set_pattern_origin(int x, int y);
 
87
    void gp_set_color_pattern(unsigned long *pattern, int format, int x, int y);
 
88
    void gp_set_mono_source(unsigned long bgcolor, unsigned long fgcolor,
 
89
                            int transparent);
 
90
    void gp_set_solid_source(unsigned long color);
 
91
    void gp_set_source_transparency(unsigned long color, unsigned long mask);
 
92
    void gp_program_lut(unsigned long *colors, int full_lut);
 
93
    void gp_set_vector_pattern(unsigned long pattern, unsigned long color,
 
94
                               int length);
 
95
    void gp_set_strides(unsigned long dst_stride, unsigned long src_stride);
 
96
    void gp_set_source_format(int format);
 
97
    void gp_pattern_fill(unsigned long dstoffset, unsigned long width,
 
98
                         unsigned long height);
 
99
    void gp_screen_to_screen_blt(unsigned long dstoffset,
 
100
                                 unsigned long srcoffset, unsigned long width,
 
101
                                 unsigned long height, int flags);
 
102
    void gp_screen_to_screen_convert(unsigned long dstoffset,
 
103
                                     unsigned long srcoffset,
 
104
                                     unsigned long width, unsigned long height,
 
105
                                     int nibble);
 
106
    void gp_color_bitmap_to_screen_blt(unsigned long dstoffset,
 
107
                                       unsigned long srcx, unsigned long width,
 
108
                                       unsigned long height,
 
109
                                       unsigned char *data, long pitch);
 
110
    void gp_color_convert_blt(unsigned long dstoffset, unsigned long srcx,
 
111
                              unsigned long width, unsigned long height,
 
112
                              unsigned char *data, long pitch);
 
113
    void gp_custom_convert_blt(unsigned long dstoffset, unsigned long srcx,
 
114
                               unsigned long width, unsigned long height,
 
115
                               unsigned char *data, long pitch);
 
116
    void gp_rotate_blt(unsigned long dstoffset, unsigned long srcoffset,
 
117
                       unsigned long width, unsigned long height, int degrees);
 
118
    void gp_mono_bitmap_to_screen_blt(unsigned long dstoffset,
 
119
                                      unsigned long srcx, unsigned long width,
 
120
                                      unsigned long height, unsigned char *data,
 
121
                                      long stride);
 
122
    void gp_text_blt(unsigned long dstoffset, unsigned long width,
 
123
                     unsigned long height, unsigned char *data);
 
124
    void gp_mono_expand_blt(unsigned long dstoffset, unsigned long srcoffset,
 
125
                            unsigned long srcx, unsigned long width,
 
126
                            unsigned long height, int byte_packed);
 
127
    void gp_antialiased_text(unsigned long dstoffset, unsigned long srcx,
 
128
                             unsigned long width, unsigned long height,
 
129
                             unsigned char *data, long stride, int fourbpp);
 
130
    void gp_blend_mask_blt(unsigned long dstoffset, unsigned long srcx,
 
131
                           unsigned long width, unsigned long height,
 
132
                           unsigned long, long stride, int operation,
 
133
                           int fourbpp);
 
134
    void gp_masked_blt(unsigned long dstoffset, unsigned long width,
 
135
                       unsigned long height, unsigned long mono_srcx,
 
136
                       unsigned long color_srcx, unsigned char *mono_mask,
 
137
                       unsigned char *color_data, long mono_pitch,
 
138
                       long color_pitch);
 
139
    void gp_screen_to_screen_masked(unsigned long dstoffset,
 
140
                                    unsigned long srcoffset,
 
141
                                    unsigned long width, unsigned long height,
 
142
                                    unsigned long mono_srcx,
 
143
                                    unsigned char *mono_mask, long mono_pitch);
 
144
    void gp_bresenham_line(unsigned long dstoffset, unsigned short length,
 
145
                           unsigned short initerr, unsigned short axialerr,
 
146
                           unsigned short diagerr, unsigned long flags);
 
147
    void gp_line_from_endpoints(unsigned long dstoffset, unsigned long x0,
 
148
                                unsigned long y0, unsigned long x1,
 
149
                                unsigned long y1, int inclusive);
 
150
 
 
151
    int gp_test_blt_pending(void);
 
152
    void gp_wait_blt_pending(void);
 
153
    void gp_wait_until_idle(void);
 
154
    int gp_test_blt_busy(void);
 
155
    void gp_save_state(GP_SAVE_RESTORE * gp_state);
 
156
    void gp_restore_state(GP_SAVE_RESTORE * gp_state);
 
157
 
 
158
/*----------------------------------------*/
 
159
/* VIDEO GENERATOR ROUTINE DEFINITIONS    */
 
160
/*----------------------------------------*/
 
161
 
 
162
    int vg_delay_milliseconds(unsigned long ms);
 
163
    int vg_set_display_mode(unsigned long src_width, unsigned long src_height,
 
164
                            unsigned long dst_width, unsigned long dst_height,
 
165
                            int bpp, int hz, unsigned long flags);
 
166
    int vg_set_panel_mode(unsigned long src_width, unsigned long src_height,
 
167
                          unsigned long dst_width, unsigned long dst_height,
 
168
                          unsigned long panel_width, unsigned long panel_height,
 
169
                          int bpp, unsigned long flags);
 
170
    int vg_set_tv_mode(unsigned long *src_width, unsigned long *src_height,
 
171
                       unsigned long encoder, unsigned long tvres, int bpp,
 
172
                       unsigned long flags, unsigned long h_overscan,
 
173
                       unsigned long v_overscan);
 
174
    int vg_set_custom_mode(VG_DISPLAY_MODE * mode_params, int bpp);
 
175
    int vg_set_display_bpp(int bpp);
 
176
    int vg_get_display_mode_index(VG_QUERY_MODE * query);
 
177
    int vg_get_display_mode_information(unsigned int index,
 
178
                                        VG_DISPLAY_MODE * vg_mode);
 
179
    int vg_get_display_mode_count(void);
 
180
    int vg_get_current_display_mode(VG_DISPLAY_MODE * current_display,
 
181
                                    int *bpp);
 
182
    int vg_set_scaler_filter_coefficients(long h_taps[][5], long v_taps[][3]);
 
183
    int vg_configure_flicker_filter(unsigned long flicker_strength,
 
184
                                    int flicker_alpha);
 
185
    int vg_set_clock_frequency(unsigned long frequency,
 
186
                               unsigned long pll_flags);
 
187
    int vg_set_border_color(unsigned long border_color);
 
188
    int vg_set_cursor_enable(int enable);
 
189
    int vg_set_mono_cursor_colors(unsigned long bkcolor, unsigned long fgcolor);
 
190
    int vg_set_cursor_position(long xpos, long ypos,
 
191
                               VG_PANNING_COORDINATES * panning);
 
192
    int vg_set_mono_cursor_shape32(unsigned long memoffset,
 
193
                                   unsigned long *andmask,
 
194
                                   unsigned long *xormask,
 
195
                                   unsigned long x_hotspot,
 
196
                                   unsigned long y_hotspot);
 
197
    int vg_set_mono_cursor_shape64(unsigned long memoffset,
 
198
                                   unsigned long *andmask,
 
199
                                   unsigned long *xormask,
 
200
                                   unsigned long x_hotspot,
 
201
                                   unsigned long y_hotspot);
 
202
    int vg_set_color_cursor_shape(unsigned long memoffset, unsigned char *data,
 
203
                                  unsigned long width, unsigned long height,
 
204
                                  long pitch, unsigned long x_hotspot,
 
205
                                  unsigned long y_hotspot);
 
206
    int vg_pan_desktop(unsigned long x, unsigned long y,
 
207
                       VG_PANNING_COORDINATES * panning);
 
208
    int vg_set_display_offset(unsigned long address);
 
209
    int vg_set_display_pitch(unsigned long pitch);
 
210
    int vg_set_display_palette_entry(unsigned long index,
 
211
                                     unsigned long palette);
 
212
    int vg_set_display_palette(unsigned long *palette);
 
213
    int vg_set_compression_enable(int enable);
 
214
    int vg_configure_compression(VG_COMPRESSION_DATA * comp_data);
 
215
    int vg_test_timing_active(void);
 
216
    int vg_test_vertical_active(void);
 
217
    int vg_wait_vertical_blank(void);
 
218
    int vg_test_even_field(void);
 
219
    int vg_configure_line_interrupt(VG_INTERRUPT_PARAMS * interrupt_info);
 
220
    unsigned long vg_test_and_clear_interrupt(void);
 
221
    unsigned long vg_test_flip_status(void);
 
222
    int vg_save_state(VG_SAVE_RESTORE * vg_state);
 
223
    int vg_restore_state(VG_SAVE_RESTORE * vg_state);
 
224
 
 
225
/*----------------------------------------*/
 
226
/* VIDEO GENERATOR READ ROUTINES          */
 
227
/*----------------------------------------*/
 
228
 
 
229
    unsigned long vg_read_graphics_crc(int crc_source);
 
230
    unsigned long vg_read_window_crc(int crc_source, unsigned long x,
 
231
                                     unsigned long y, unsigned long width,
 
232
                                     unsigned long height);
 
233
    int vg_get_scaler_filter_coefficients(long h_taps[][5], long v_taps[][3]);
 
234
    int vg_get_flicker_filter_configuration(unsigned long *strength,
 
235
                                            int *flicker_alpha);
 
236
    unsigned long vg_get_display_pitch(void);
 
237
    unsigned long vg_get_frame_buffer_line_size(void);
 
238
    unsigned long vg_get_current_vline(void);
 
239
    unsigned long vg_get_display_offset(void);
 
240
    int vg_get_cursor_info(VG_CURSOR_DATA * cursor_data);
 
241
    int vg_get_display_palette_entry(unsigned long index, unsigned long *entry);
 
242
    unsigned long vg_get_border_color(void);
 
243
    int vg_get_display_palette(unsigned long *palette);
 
244
    int vg_get_compression_info(VG_COMPRESSION_DATA * comp_data);
 
245
    int vg_get_compression_enable(void);
 
246
    int vg_get_valid_bit(int line);
 
247
 
 
248
/*----------------------------------------*/
 
249
/* DISPLAY FILTER ROUTINE DEFINITIONS     */
 
250
/*----------------------------------------*/
 
251
 
 
252
    int df_set_crt_enable(int crt_output);
 
253
    int df_set_panel_enable(int panel_output);
 
254
    int df_configure_video_source(DF_VIDEO_SOURCE_PARAMS * video_source_odd,
 
255
                                  DF_VIDEO_SOURCE_PARAMS * video_source_even);
 
256
    int df_set_video_offsets(int even, unsigned long y_offset,
 
257
                             unsigned long u_offset, unsigned long v_offset);
 
258
    int df_set_video_scale(unsigned long src_width, unsigned long src_height,
 
259
                           unsigned long dst_width, unsigned long dst_height,
 
260
                           unsigned long flags);
 
261
    int df_set_video_position(DF_VIDEO_POSITION * video_window);
 
262
    int df_set_video_filter_coefficients(long taps[][4], int phase256);
 
263
    int df_set_video_enable(int enable, unsigned long flags);
 
264
    int df_set_video_color_key(unsigned long key, unsigned long mask,
 
265
                               int graphics);
 
266
    int df_set_video_palette(unsigned long *palette);
 
267
    int df_set_video_palette_entry(unsigned long index, unsigned long palette);
 
268
    int df_configure_video_cursor_color_key(DF_VIDEO_CURSOR_PARAMS *
 
269
                                            cursor_color_key);
 
270
    int df_set_video_cursor_color_key_enable(int enable);
 
271
    int df_configure_alpha_window(int window,
 
272
                                  DF_ALPHA_REGION_PARAMS * alpha_data);
 
273
    int df_set_alpha_window_enable(int window, int enable);
 
274
    int df_set_no_ck_outside_alpha(int enable);
 
275
    int df_set_video_request(unsigned long x, unsigned long y);
 
276
    int df_set_output_color_space(int color_space);
 
277
    int df_set_output_path(int format);
 
278
    unsigned long df_test_video_flip_status(void);
 
279
    int df_save_state(DF_SAVE_RESTORE * gp_state);
 
280
    int df_restore_state(DF_SAVE_RESTORE * gp_state);
 
281
 
 
282
/*----------------------------------------*/
 
283
/*    DISPLAY FILTER READ ROUTINES        */
 
284
/*----------------------------------------*/
 
285
 
 
286
    unsigned long df_read_composite_crc(int crc_source);
 
287
    unsigned long df_read_composite_window_crc(unsigned long x,
 
288
                                               unsigned long y,
 
289
                                               unsigned long width,
 
290
                                               unsigned long height,
 
291
                                               int source);
 
292
    unsigned long df_read_panel_crc(void);
 
293
    int df_get_video_enable(int *enable, unsigned long *flags);
 
294
    int df_get_video_source_configuration(DF_VIDEO_SOURCE_PARAMS *
 
295
                                          video_source_odd,
 
296
                                          DF_VIDEO_SOURCE_PARAMS *
 
297
                                          video_source_even);
 
298
    int df_get_video_position(DF_VIDEO_POSITION * video_window);
 
299
    int df_get_video_scale(unsigned long *x_scale, unsigned long *y_scale);
 
300
    int df_get_video_filter_coefficients(long taps[][4], int *phase256);
 
301
    int df_get_video_color_key(unsigned long *key, unsigned long *mask,
 
302
                               int *graphics);
 
303
    int df_get_video_palette_entry(unsigned long index, unsigned long *palette);
 
304
    int df_get_video_palette(unsigned long *palette);
 
305
    int df_get_video_cursor_color_key(DF_VIDEO_CURSOR_PARAMS *
 
306
                                      cursor_color_key);
 
307
    int df_get_video_cursor_color_key_enable(void);
 
308
    int df_get_alpha_window_configuration(int window,
 
309
                                          DF_ALPHA_REGION_PARAMS * alpha_data);
 
310
    int df_get_alpha_window_enable(int window);
 
311
    int df_get_video_request(unsigned long *x, unsigned long *y);
 
312
    int df_get_output_color_space(int *color_space);
 
313
 
 
314
/*----------------------------------------*/
 
315
/*        MSR ROUTINE DEFINITIONS         */
 
316
/*----------------------------------------*/
 
317
 
 
318
    int msr_init_table(void);
 
319
    int msr_create_geodelink_table(GEODELINK_NODE * gliu_nodes);
 
320
    int msr_create_device_list(GEODELINK_NODE * gliu_nodes, int max_devices);
 
321
    int msr_read64(unsigned long device, unsigned long msr_register,
 
322
                   Q_WORD * msr_value);
 
323
    int msr_write64(unsigned long device, unsigned long msr_register,
 
324
                    Q_WORD * msr_value);
 
325
 
 
326
/*----------------------------------------*/
 
327
/*        VIP ROUTINE DEFINITIONS         */
 
328
/*----------------------------------------*/
 
329
 
 
330
    int vip_initialize(VIPSETMODEBUFFER * buffer);
 
331
    int vip_update_601_params(VIP_601PARAMS * buffer);
 
332
    int vip_terminate(void);
 
333
    int vip_configure_capture_buffers(int buffer_type, VIPINPUTBUFFER * buffer);
 
334
    int vip_toggle_video_offsets(int buffer_type, VIPINPUTBUFFER * buffer);
 
335
    int vip_max_address_enable(unsigned long max_address, int enable);
 
336
    int vip_set_interrupt_enable(unsigned long mask, int enable);
 
337
    unsigned long vip_get_interrupt_state(void);
 
338
    int vip_set_capture_state(unsigned long state);
 
339
    int vip_set_vsync_error(unsigned long vertical_count,
 
340
                            unsigned long window_before,
 
341
                            unsigned long window_after, int enable);
 
342
    int vip_configure_fifo(unsigned long fifo_type, unsigned long fifo_size);
 
343
    int vip_set_loopback_enable(int bEnable);
 
344
    int vip_configure_genlock(VIPGENLOCKBUFFER * buffer);
 
345
    int vip_set_genlock_enable(int bEnable);
 
346
    int vip_configure_pages(int page_count, unsigned long page_offset);
 
347
    int vip_set_interrupt_line(int line);
 
348
    int vip_reset(void);
 
349
    int vip_set_subwindow_enable(VIPSUBWINDOWBUFFER * buffer);
 
350
    int vip_reset_interrupt_state(unsigned long interrupt_mask);
 
351
 
 
352
    int vip_save_state(VIPSTATEBUFFER * save_buffer);
 
353
    int vip_restore_state(VIPSTATEBUFFER * restore_buffer);
 
354
    int vip_set_power_characteristics(VIPPOWERBUFFER * buffer);
 
355
    int vip_set_priority_characteristics(VIPPRIORITYBUFFER * buffer);
 
356
    int vip_set_debug_characteristics(VIPDEBUGBUFFER * buffer);
 
357
    int vip_test_genlock_active(void);
 
358
    int vip_test_signal_status(void);
 
359
    unsigned long vip_get_current_field(void);
 
360
 
 
361
/*----------------------------------------*/
 
362
/*        VIP READ ROUTINES               */
 
363
/*----------------------------------------*/
 
364
 
 
365
    int vip_get_current_mode(VIPSETMODEBUFFER * buffer);
 
366
    int vip_get_601_configuration(VIP_601PARAMS * buffer);
 
367
    int vip_get_buffer_configuration(int buffer_type, VIPINPUTBUFFER * buffer);
 
368
    int vip_get_genlock_configuration(VIPGENLOCKBUFFER * buffer);
 
369
    int vip_get_genlock_enable(void);
 
370
    int vip_is_buffer_update_latched(void);
 
371
    unsigned long vip_get_capture_state(void);
 
372
    unsigned long vip_get_current_line(void);
 
373
    unsigned long vip_read_fifo(unsigned long fifo_address);
 
374
    int vip_write_fifo(unsigned long fifo_address, unsigned long fifo_data);
 
375
    int vip_enable_fifo_access(int enable);
 
376
    int vip_get_capability_characteristics(VIPCAPABILITIESBUFFER * buffer);
 
377
    int vip_get_power_characteristics(VIPPOWERBUFFER * buffer);
 
378
    int vip_get_priority_characteristics(VIPPRIORITYBUFFER * buffer);
 
379
 
 
380
/*----------------------------------------*/
 
381
/*        VOP ROUTINE DEFINITIONS         */
 
382
/*----------------------------------------*/
 
383
 
 
384
    int vop_set_vbi_window(VOPVBIWINDOWBUFFER * buffer);
 
385
    int vop_enable_vbi_output(int enable);
 
386
    int vop_set_configuration(VOPCONFIGURATIONBUFFER * config);
 
387
    int vop_save_state(VOPSTATEBUFFER * save_buffer);
 
388
    int vop_restore_state(VOPSTATEBUFFER * save_buffer);
 
389
 
 
390
/*----------------------------------------*/
 
391
/*        VOP READ ROUTINES               */
 
392
/*----------------------------------------*/
 
393
 
 
394
    int vop_get_current_mode(VOPCONFIGURATIONBUFFER * config);
 
395
    int vop_get_vbi_configuration(VOPVBIWINDOWBUFFER * buffer);
 
396
    int vop_get_vbi_enable(void);
 
397
    unsigned long vop_get_crc(void);
 
398
    unsigned long vop_read_vbi_crc(void);
 
399
 
 
400
/* CLOSE BRACKET FOR C++ COMPLILATION */
 
401
 
 
402
#ifdef __cplusplus
 
403
}
 
404
#endif
 
405
#endif