xref: /titanic_50/usr/src/uts/intel/io/drm/radeon_io32.h (revision e57b9183811d515e3bbcd1a104516f0102fde114)
1*e57b9183Scg149915 /*
2*e57b9183Scg149915  * CDDL HEADER START
3*e57b9183Scg149915  *
4*e57b9183Scg149915  * The contents of this file are subject to the terms of the
5*e57b9183Scg149915  * Common Development and Distribution License (the "License").
6*e57b9183Scg149915  * You may not use this file except in compliance with the License.
7*e57b9183Scg149915  *
8*e57b9183Scg149915  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*e57b9183Scg149915  * or http://www.opensolaris.org/os/licensing.
10*e57b9183Scg149915  * See the License for the specific language governing permissions
11*e57b9183Scg149915  * and limitations under the License.
12*e57b9183Scg149915  *
13*e57b9183Scg149915  * When distributing Covered Code, include this CDDL HEADER in each
14*e57b9183Scg149915  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*e57b9183Scg149915  * If applicable, add the following below this CDDL HEADER, with the
16*e57b9183Scg149915  * fields enclosed by brackets "[]" replaced with your own identifying
17*e57b9183Scg149915  * information: Portions Copyright [yyyy] [name of copyright owner]
18*e57b9183Scg149915  *
19*e57b9183Scg149915  * CDDL HEADER END
20*e57b9183Scg149915  */
21*e57b9183Scg149915 /*
22*e57b9183Scg149915  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23*e57b9183Scg149915  * Use is subject to license terms.
24*e57b9183Scg149915  */
25*e57b9183Scg149915 
26*e57b9183Scg149915 #pragma ident	"%Z%%M%	%I%	%E% SMI"
27*e57b9183Scg149915 
28*e57b9183Scg149915 #ifndef __RADEON_IO32_H__
29*e57b9183Scg149915 #define	__RADEON_IO32_H__
30*e57b9183Scg149915 
31*e57b9183Scg149915 
32*e57b9183Scg149915 #ifdef	_MULTI_DATAMODEL
33*e57b9183Scg149915 /*
34*e57b9183Scg149915  * For radeon_cp_init()
35*e57b9183Scg149915  */
36*e57b9183Scg149915 typedef struct drm_radeon_init_32 {
37*e57b9183Scg149915 	int	func;
38*e57b9183Scg149915 	unsigned int sarea_priv_offset;
39*e57b9183Scg149915 	int is_pci; /* for overriding only */
40*e57b9183Scg149915 	int cp_mode;
41*e57b9183Scg149915 	int gart_size;
42*e57b9183Scg149915 	int ring_size;
43*e57b9183Scg149915 	int usec_timeout;
44*e57b9183Scg149915 
45*e57b9183Scg149915 	unsigned int fb_bpp;
46*e57b9183Scg149915 	unsigned int front_offset, front_pitch;
47*e57b9183Scg149915 	unsigned int back_offset, back_pitch;
48*e57b9183Scg149915 	unsigned int depth_bpp;
49*e57b9183Scg149915 	unsigned int depth_offset, depth_pitch;
50*e57b9183Scg149915 
51*e57b9183Scg149915 	unsigned int fb_offset DEPRECATED;
52*e57b9183Scg149915 	unsigned int mmio_offset DEPRECATED;
53*e57b9183Scg149915 	unsigned int ring_offset;
54*e57b9183Scg149915 	unsigned int ring_rptr_offset;
55*e57b9183Scg149915 	unsigned int buffers_offset;
56*e57b9183Scg149915 	unsigned int gart_textures_offset;
57*e57b9183Scg149915 } drm_radeon_init_32_t;
58*e57b9183Scg149915 
59*e57b9183Scg149915 /*
60*e57b9183Scg149915  * radeon_cp_buffers()
61*e57b9183Scg149915  */
62*e57b9183Scg149915 typedef struct drm_dma_32 {
63*e57b9183Scg149915 	int		context;
64*e57b9183Scg149915 	int		send_count;
65*e57b9183Scg149915 	uint32_t	send_indices;
66*e57b9183Scg149915 	uint32_t	send_sizes;
67*e57b9183Scg149915 	drm_dma_flags_t flags;
68*e57b9183Scg149915 	int		request_count;
69*e57b9183Scg149915 	int		request_size;
70*e57b9183Scg149915 	uint32_t	request_indices;
71*e57b9183Scg149915 	uint32_t	request_sizes;
72*e57b9183Scg149915 	int granted_count;
73*e57b9183Scg149915 } drm_dma_32_t;
74*e57b9183Scg149915 
75*e57b9183Scg149915 /*
76*e57b9183Scg149915  * drm_radeon_clear()
77*e57b9183Scg149915  */
78*e57b9183Scg149915 typedef	struct drm_radeon_clear_32 {
79*e57b9183Scg149915 	unsigned int	flags;
80*e57b9183Scg149915 	unsigned int	clear_color;
81*e57b9183Scg149915 	unsigned int	clear_depth;
82*e57b9183Scg149915 	unsigned int	color_mask;
83*e57b9183Scg149915 	unsigned int	depth_mask;
84*e57b9183Scg149915 	uint32_t	depth_boxes;
85*e57b9183Scg149915 } drm_radeon_clear_32_t;
86*e57b9183Scg149915 
87*e57b9183Scg149915 /*
88*e57b9183Scg149915  * For radeon_cp_texture()
89*e57b9183Scg149915  */
90*e57b9183Scg149915 typedef struct drm_radeon_tex_image_32 {
91*e57b9183Scg149915 	unsigned int	x, y;
92*e57b9183Scg149915 	unsigned int	width, height;
93*e57b9183Scg149915 	uint32_t	data;
94*e57b9183Scg149915 } drm_radeon_tex_image_32_t;
95*e57b9183Scg149915 
96*e57b9183Scg149915 typedef struct drm_radeon_texture_32 {
97*e57b9183Scg149915 	unsigned int offset;
98*e57b9183Scg149915 	int		pitch;
99*e57b9183Scg149915 	int		format;
100*e57b9183Scg149915 	int		width;
101*e57b9183Scg149915 	int		height;
102*e57b9183Scg149915 	uint32_t	image;
103*e57b9183Scg149915 } drm_radeon_texture_32_t;
104*e57b9183Scg149915 
105*e57b9183Scg149915 /*
106*e57b9183Scg149915  * for radeon_cp_stipple()
107*e57b9183Scg149915  */
108*e57b9183Scg149915 typedef struct drm_radeon_stipple_32 {
109*e57b9183Scg149915 	uint32_t mask;
110*e57b9183Scg149915 } drm_radeon_stipple_32_t;
111*e57b9183Scg149915 
112*e57b9183Scg149915 /*
113*e57b9183Scg149915  * radeon_cp_vertex2()
114*e57b9183Scg149915  */
115*e57b9183Scg149915 typedef struct drm_radeon_vertex2_32 {
116*e57b9183Scg149915 	int		idx;
117*e57b9183Scg149915 	int		discard;
118*e57b9183Scg149915 	int		nr_states;
119*e57b9183Scg149915 	uint32_t	state;
120*e57b9183Scg149915 	int 	nr_prims;
121*e57b9183Scg149915 	uint32_t prim;
122*e57b9183Scg149915 } drm_radeon_vertex2_32_t;
123*e57b9183Scg149915 
124*e57b9183Scg149915 /*
125*e57b9183Scg149915  * radeon_cp_cmdbuf()
126*e57b9183Scg149915  */
127*e57b9183Scg149915 typedef struct drm_radeon_kcmd_buffer_32 {
128*e57b9183Scg149915 	int 	bufsz;
129*e57b9183Scg149915 	uint32_t buf;
130*e57b9183Scg149915 	int 	nbox;
131*e57b9183Scg149915 	uint32_t boxes;
132*e57b9183Scg149915 } drm_radeon_kcmd_buffer_32_t;
133*e57b9183Scg149915 
134*e57b9183Scg149915 /*
135*e57b9183Scg149915  * radeon_cp_getparam()
136*e57b9183Scg149915  */
137*e57b9183Scg149915 typedef struct drm_radeon_getparam_32 {
138*e57b9183Scg149915 	int 	param;
139*e57b9183Scg149915 	uint32_t value;
140*e57b9183Scg149915 } drm_radeon_getparam_32_t;
141*e57b9183Scg149915 
142*e57b9183Scg149915 
143*e57b9183Scg149915 /*
144*e57b9183Scg149915  * radeon_mem_alloc()
145*e57b9183Scg149915  */
146*e57b9183Scg149915 typedef struct drm_radeon_mem_alloc_32 {
147*e57b9183Scg149915 	int 	region;
148*e57b9183Scg149915 	int 	alignment;
149*e57b9183Scg149915 	int 	size;
150*e57b9183Scg149915 	uint32_t region_offset;	/* offset from start of fb or GART */
151*e57b9183Scg149915 } drm_radeon_mem_alloc_32_t;
152*e57b9183Scg149915 
153*e57b9183Scg149915 
154*e57b9183Scg149915 /*
155*e57b9183Scg149915  * radeon_irq_emit()
156*e57b9183Scg149915  */
157*e57b9183Scg149915 typedef struct drm_radeon_irq_emit_32 {
158*e57b9183Scg149915 	uint32_t 	irq_seq;
159*e57b9183Scg149915 } drm_radeon_irq_emit_32_t;
160*e57b9183Scg149915 
161*e57b9183Scg149915 
162*e57b9183Scg149915 /*
163*e57b9183Scg149915  * radeon_cp_setparam()
164*e57b9183Scg149915  */
165*e57b9183Scg149915 #pragma pack(1)
166*e57b9183Scg149915 typedef struct drm_radeon_setparam_32 {
167*e57b9183Scg149915 	unsigned int param;
168*e57b9183Scg149915 	uint64_t 	value;
169*e57b9183Scg149915 } drm_radeon_setparam_32_t;
170*e57b9183Scg149915 #pragma pack()
171*e57b9183Scg149915 
172*e57b9183Scg149915 #endif	/* _MULTI_DATAMODEL */
173*e57b9183Scg149915 #endif	/* __RADEON_IO32_H__ */
174