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