open-src/app/gfx-utils/sun-src/vts/efb/chip.c
author Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
Mon, 25 Apr 2011 14:22:03 -0700
changeset 1117 629ac4b133bc
child 1368 475ce9398539
permissions -rw-r--r--
7039328 Move SPARC Graphics utilities to X consolidation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     1
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     2
/*
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     3
 * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved.
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     4
 *
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     5
 * Permission is hereby granted, free of charge, to any person obtaining a
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     6
 * copy of this software and associated documentation files (the "Software"),
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     7
 * to deal in the Software without restriction, including without limitation
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     8
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     9
 * and/or sell copies of the Software, and to permit persons to whom the
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    10
 * Software is furnished to do so, subject to the following conditions:
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    11
 *
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    12
 * The above copyright notice and this permission notice (including the next
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    13
 * paragraph) shall be included in all copies or substantial portions of the
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    14
 * Software.
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    15
 *
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    16
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    17
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    18
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    19
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    20
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    21
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    22
 * DEALINGS IN THE SOFTWARE.
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    23
 */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    24
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    25
#include <sys/types.h>
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    26
#include <errno.h>
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    27
#include <signal.h>		/* signal() */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    28
#include <stdio.h>
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    29
#include <stropts.h>		/* ioctl() */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    30
#include <unistd.h>		/* ioctl(), sleep() */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    31
#include <sys/mman.h>
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    32
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    33
#include "gfx_common.h"		/* VTS Graphics Test common routines */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    34
#include "graphicstest.h"
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    35
#include "gfx_vts.h"		/* VTS Graphics Test common routines */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    36
#include "efb.h"		
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    37
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    38
void
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    39
box(struct efb_info *pEFB, int x1, int y1, int x2, int y2, unsigned int color)
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    40
{
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    41
	int		tmp;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    42
	int		width;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    43
	int		height;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    44
	unsigned int	v;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    45
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    46
	width  = x2 - x1;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    47
	height = y2 - y1;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    48
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    49
	if ((width <= 0) || (height <= 0)) {
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    50
#ifdef DEBUG
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    51
		printf("x1=%d x2=%d y1=%d y2=%d\n", x1, x2, y1, y2);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    52
#endif
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    53
		return;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    54
	}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    55
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    56
	efb_wait_for_fifo(pEFB, 5);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    57
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    58
	REGW(RADEON_DP_WRITE_MASK, 0xffffffff);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    59
	REGW(RADEON_DP_CNTL,	
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    60
		(RADEON_DST_X_LEFT_TO_RIGHT | RADEON_DST_Y_TOP_TO_BOTTOM));
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    61
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    62
	REGW(RADEON_DP_BRUSH_FRGD_CLR, color);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    63
        REGW(DST_Y_X,  x1 << DST_Y_X__DST_X__SHIFT |
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    64
                       y1 << DST_Y_X__DST_Y__SHIFT) ;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    65
        REGW(DST_WIDTH_HEIGHT,
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    66
              height << DST_WIDTH_HEIGHT__DST_HEIGHT__SHIFT |
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    67
              width << DST_WIDTH_HEIGHT__DST_WIDTH__SHIFT ) ;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    68
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    69
}	/* box() */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    70
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    71
void
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    72
line(struct efb_info *pEFB,
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    73
	int		x1,
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    74
	int		y1,
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    75
	int		x2,
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    76
	int		y2,
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    77
	unsigned int	color
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    78
	)
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    79
{
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    80
	efb_wait_for_fifo(pEFB, 5);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    81
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    82
	REGW(RADEON_DP_WRITE_MASK, 0xffffffff);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    83
	REGW(RADEON_DP_CNTL,	
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    84
		(RADEON_DST_X_LEFT_TO_RIGHT | RADEON_DST_Y_TOP_TO_BOTTOM));
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    85
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    86
	REGW(RADEON_DP_BRUSH_FRGD_CLR, color);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    87
        REGW(DST_LINE_START,  
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    88
		(x1 << DST_LINE_START__DST_START_X__SHIFT | y1 << DST_LINE_START__DST_START_Y__SHIFT));
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    89
        REGW(DST_LINE_END,  
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    90
		(x2 << DST_LINE_END__DST_END_X__SHIFT | y2 << DST_LINE_END__DST_END_Y__SHIFT));
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    91
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    92
}	/* line() */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    93
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    94
#define NBOX 100
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    95
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    96
void
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    97
draw_cascaded_box(struct efb_info *pEFB, int width, int height)
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    98
{
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    99
	unsigned int	x1;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   100
	unsigned int	y1;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   101
	unsigned int	x2;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   102
	unsigned int	y2;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   103
	unsigned int	w;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   104
	unsigned int	h;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   105
	unsigned int	i, j;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   106
	unsigned int	k = 0;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   107
	unsigned int    cinc = 0;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   108
	unsigned int	xinc, yinc;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   109
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   110
	cinc = 256 / NBOX;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   111
	xinc = width / (NBOX * 2);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   112
	yinc = height / (NBOX * 2);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   113
	x1 = y1 = 0;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   114
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   115
	for (i = 0; i < NBOX; i++) {
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   116
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   117
	    x2 = width - x1;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   118
	    y2 = height - y1;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   119
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   120
	    j = i * cinc;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   121
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   122
	    k = (j<<24 | j<<16 | j<<8 | j);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   123
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   124
	    box(pEFB, x1, y1, x2, y2, k);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   125
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   126
	    x1 += xinc;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   127
	    y1 += yinc;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   128
	}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   129
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   130
}	/* draw_cascaded_box() */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   131
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   132
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   133
#define NLINE 128
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   134
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   135
void
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   136
draw_lines(struct efb_info *pEFB, int width, int height)
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   137
{
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   138
	unsigned int	x1;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   139
	unsigned int	y1;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   140
	unsigned int	x2;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   141
	unsigned int	y2;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   142
	int		k;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   143
	int		i;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   144
	unsigned int	xinc, yinc;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   145
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   146
	xinc = width / NLINE;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   147
	yinc = height / NLINE;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   148
	x1 = y1 = 0;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   149
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   150
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   151
	k = 0;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   152
	x1 = 0;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   153
	y1 = 0;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   154
	y2 = height;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   155
	for (i = 0; i < NLINE; i++) {
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   156
	    k  = 0x00af0000 | (i << 8) | i;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   157
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   158
	    x2 = x1;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   159
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   160
	    line(pEFB, x1, y1, x2, y2, k);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   161
	
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   162
	    x1 += xinc;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   163
	}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   164
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   165
	x1 = 0;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   166
	x2 = width;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   167
	y1 = 0;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   168
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   169
	for (i = 0; i < NLINE; i++) {
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   170
	    k  = 0x00af0000 | (i << 8) | i;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   171
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   172
	    y2 = y1;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   173
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   174
	    line(pEFB, x1, y1, x2, y2, k);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   175
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   176
	    y1 += yinc;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   177
	}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   178
}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   179
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   180
int
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   181
efb_init_2D(struct efb_info *pEFB)
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   182
{
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   183
	unsigned int pitch_offset;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   184
	unsigned int pitch;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   185
	unsigned int offset;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   186
	unsigned int bytepp;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   187
	unsigned int gmc_bpp;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   188
	unsigned int dp_datatype;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   189
	unsigned int v;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   190
	int i;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   191
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   192
	switch (pEFB->bitsPerPixel) {
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   193
	case 8:
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   194
		gmc_bpp = GMC_DST_8BPP;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   195
		dp_datatype = DST_8BPP | BRUSH_SOLIDCOLOR | SRC_DSTCOLOR;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   196
		bytepp = 1;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   197
		break;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   198
	case 32:
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   199
		gmc_bpp = GMC_DST_32BPP;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   200
		dp_datatype = DST_32BPP | BRUSH_SOLIDCOLOR | SRC_DSTCOLOR;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   201
		bytepp = 4;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   202
		break;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   203
	}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   204
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   205
	offset = REGR(CRTC_OFFSET) & 0x7ffffff;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   206
	pitch = REGR(CRTC_PITCH) & 0x7ff;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   207
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   208
	pitch = pitch * 8;	// was in groups of 8 pixels
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   209
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   210
	pitch_offset = 
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   211
		((pitch * bytepp / 64) << 22) |
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   212
		(offset / 1024);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   213
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   214
        /*
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   215
         * Initialize GUI engine
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   216
         */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   217
        efb_wait_for_idle(pEFB);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   218
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   219
	efb_wait_for_fifo(pEFB, 5);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   220
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   221
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   222
        REGW(DEFAULT_PITCH_OFFSET, pitch_offset);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   223
        REGW(RADEON_DST_PITCH_OFFSET, pitch_offset);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   224
        REGW(RADEON_SRC_PITCH_OFFSET, pitch_offset);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   225
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   226
        REGW(DEFAULT_SC_BOTTOM_RIGHT,  
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   227
		(pEFB->screenHeight << 16) |
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   228
		(pEFB->screenWidth));
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   229
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   230
        v = (
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   231
	    GMC_SRC_PITCH_OFFSET_DEFAULT |
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   232
	    GMC_DST_PITCH_OFFSET_LEAVE |
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   233
	    GMC_SRC_CLIP_DEFAULT	|
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   234
	    GMC_DST_CLIP_DEFAULT	|
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   235
            GMC_BRUSH_SOLIDCOLOR        |
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   236
            gmc_bpp                     |
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   237
            GMC_SRC_DSTCOLOR            |
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   238
            RADEON_ROP3_P               |
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   239
            GMC_WRITE_MASK_LEAVE);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   240
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   241
        REGW(RADEON_DP_GUI_MASTER_CNTL,  v);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   242
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   243
#ifdef DEBUG
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   244
	printf("v=0x%x\n", v);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   245
#endif
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   246
}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   247
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   248
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   249
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   250
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   251
void
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   252
chip_test(return_packet *rp, int fd)
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   253
{
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   254
        struct efb_info  efb_info;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   255
        struct efb_info  *pEFB;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   256
        unsigned int red;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   257
        unsigned char *fbaddr;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   258
        int i;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   259
        int bytepp;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   260
        int fb_offset, fb_pitch, fb_height, fb_width;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   261
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   262
        pEFB = &efb_info;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   263
        pEFB->fd = fd;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   264
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   265
        /*
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   266
         * map the registers & frame buffers memory
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   267
         */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   268
        if (efb_map_mem(pEFB, rp, GRAPHICS_ERR_CHIP) == -1) {
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   269
            return;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   270
        }
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   271
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   272
        /*
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   273
         * initialize efb info
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   274
         */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   275
        if (efb_init_info(pEFB) == -1) {
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   276
            return;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   277
        }
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   278
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   279
	if (efb_init_2D(pEFB) == -1) {
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   280
	    return;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   281
	}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   282
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   283
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   284
	/* 
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   285
	 * Clear screen 
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   286
	 */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   287
	box(pEFB, 0, 0, pEFB->screenWidth, pEFB->screenHeight, 0);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   288
	efb_wait_for_idle(pEFB);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   289
	efb_flush_pixel_cache(pEFB);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   290
	sleep(2);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   291
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   292
	/*
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   293
	 * line test
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   294
	 */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   295
	draw_lines(pEFB, pEFB->screenWidth, pEFB->screenHeight);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   296
	efb_wait_for_idle(pEFB);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   297
	efb_flush_pixel_cache(pEFB);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   298
	sleep(1);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   299
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   300
	/*
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   301
	 * fill test
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   302
	 */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   303
	draw_cascaded_box(pEFB, pEFB->screenWidth, pEFB->screenHeight);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   304
	efb_wait_for_idle(pEFB);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   305
	efb_flush_pixel_cache(pEFB);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   306
	sleep(1);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   307
	efb_wait_for_idle(pEFB);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   308
	efb_flush_pixel_cache(pEFB);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   309
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   310
	/* 
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   311
	 * Clear screen 
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   312
	 */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   313
	box(pEFB, 0, 0, pEFB->screenWidth, pEFB->screenHeight, 0xff);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   314
	efb_wait_for_idle(pEFB);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   315
	efb_flush_pixel_cache(pEFB);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   316
	sleep(2);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   317
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   318
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   319
done:
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   320
        /*
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   321
         * Unmap the registers & frame buffers memory
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   322
         */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   323
        if (efb_unmap_mem(pEFB, rp, GRAPHICS_ERR_CHIP) == -1) {
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   324
            return;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   325
        }
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   326
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   327
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   328
	if (close(fd) == -1) {
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   329
	    gfx_vts_set_message(rp, 1, GRAPHICS_ERR_CHIP, "error closing device\n");
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   330
	    return;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   331
	}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   332
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   333
}	/* chip_test() */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   334
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   335
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   336
/* End of chip.c */