open-src/app/gfx-utils/sun-src/vts/efb/tools.c
author David Marx <David.M.Marx@Oracle.Com>
Tue, 24 Sep 2013 14:01:59 -0700
changeset 1368 475ce9398539
parent 1117 629ac4b133bc
permissions -rw-r--r--
15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb 17207515 unable to interrupt vts efb graphicstest
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
/*
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
     2
 * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     3
 *
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     4
 * 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
     5
 * 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
     6
 * 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
     7
 * 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
     8
 * 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
     9
 * 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
    10
 *
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    11
 * 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
    12
 * 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
    13
 * Software.
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    14
 *
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    15
 * 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
    16
 * 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
    17
 * 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
    18
 * 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
    19
 * 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
    20
 * 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
    21
 * DEALINGS IN THE SOFTWARE.
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    22
 */
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
#include "libvtsSUNWefb.h"	/* Common VTS library definitions */
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    25
#include "efb.h"
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    26
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    27
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    28
int
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    29
efb_map_mem(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    30
    register return_packet *const rp,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    31
    register int const test)
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    32
{
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    33
	register int const pagesize = getpagesize();
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    34
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    35
	if (efb_get_pci_info() != 0) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    36
		gfx_vts_set_message(rp, 1, test, "get pci info failed");
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    37
		return (-1);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    38
	}
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    39
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    40
	/*
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    41
	 * Map MMIO
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    42
	 */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    43
	efb_info.efb_mmio_size = (efb_info.efb_mmio_size + pagesize - 1) /
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    44
	    pagesize * pagesize;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    45
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    46
	if (efb_map_mmio() != 0) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    47
		gfx_vts_set_message(rp, 1, test, "map MMIO failed");
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    48
		return (-1);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    49
	}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    50
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    51
	switch (efb_info.efb_device) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    52
	case 20825:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    53
	case 20830:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    54
	case 23396:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    55
		efb_info.efb_fb_size = REGR(RADEON_CONFIG_MEMSIZE);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    56
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    57
	default:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    58
		efb_info.efb_fb_size = REGR(R600_CONFIG_MEMSIZE);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    59
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    60
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    61
	efb_info.efb_fb_size = (efb_info.efb_fb_size + (pagesize - 1)) /
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    62
	    pagesize * pagesize;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    63
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    64
	/*
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    65
	 * Map framebuffer
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    66
	 */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    67
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    68
	if (efb_map_fb() != 0) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    69
		gfx_vts_set_message(rp, 1, test, "map framebuffer failed");
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    70
		return (-1);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    71
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    72
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    73
	return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    74
}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    75
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    76
int
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    77
efb_get_pci_info(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    78
    void)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    79
{
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    80
	struct gfx_pci_cfg pciconfig;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    81
	int i;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    82
	uint_t bar;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    83
	uint_t bar_hi;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    84
	offset_t mem_base[6];
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    85
	offset_t io_base[6];
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    86
	int type[6];
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    87
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    88
	if (ioctl(efb_info.efb_fd, GFX_IOCTL_GET_PCI_CONFIG,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    89
	    &pciconfig) != 0) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    90
		return (-1);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    91
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    92
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    93
	efb_info.efb_vendor = pciconfig.VendorID;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    94
	efb_info.efb_device = pciconfig.DeviceID;
1117
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
	for (i = 0; i < 6; i++) {
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    97
		type[i] = 0;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    98
		mem_base[i] = 0;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
    99
		io_base[i] = 0;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   100
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   101
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   102
	for (i = 0; i < 6; i++) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   103
		bar = pciconfig.bar[i];
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   104
		if (bar != 0) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   105
			if (bar & PCI_MAP_IO) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   106
				io_base[i] = PCIGETIO(bar);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   107
				type[i] = bar & PCI_MAP_IO_ATTR_MASK;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   108
			} else {
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   109
				type[i] = bar & PCI_MAP_MEMORY_ATTR_MASK;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   110
				mem_base[i] = PCIGETMEMORY(bar);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   111
				if (PCI_MAP_IS64BITMEM(bar)) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   112
					if (i == 5) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   113
						mem_base[i] = 0;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   114
					} else {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   115
						bar_hi = pciconfig.bar[i+1];
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   116
						mem_base[i] |=
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   117
						    ((offset_t)bar_hi << 32);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   118
						++i;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   119
					}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   120
				}
1117
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
		}
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
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   125
	efb_info.efb_fb_addr = mem_base[0] & 0xfff00000;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   126
	efb_info.efb_fb_size = 0;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   127
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   128
	efb_info.efb_mmio_addr = mem_base[2] & 0xffff0000;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   129
	efb_info.efb_mmio_size = 1 << EFB_REG_SIZE_LOG2;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   130
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   131
	if (gfx_vts_debug_mask & VTS_DEBUG) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   132
		printf("efb_vendor = 0x%04x, efb_device = 0x%04x\n",
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   133
		    efb_info.efb_vendor, efb_info.efb_device);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   134
		printf("efb_fb_addr 0x%llx, efb_fb_size 0x%lx\n",
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   135
		    (unsigned long long)efb_info.efb_fb_addr,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   136
		    (unsigned long)efb_info.efb_fb_size);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   137
		printf("efb_mmio_addr 0x%llx, efb_mmio_size 0x%lx\n",
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   138
		    (unsigned long long)efb_info.efb_mmio_addr,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   139
		    (unsigned long)efb_info.efb_mmio_size);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   140
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   141
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   142
	return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   143
}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   144
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   145
int
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   146
efb_map_mmio(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   147
    void)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   148
{
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   149
	register void *ptr;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   150
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   151
	if (efb_info.efb_mmio_ptr == NULL) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   152
		ptr = mmap(NULL, efb_info.efb_mmio_size,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   153
		    PROT_READ | PROT_WRITE, MAP_SHARED,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   154
		    efb_info.efb_fd, efb_info.efb_mmio_addr);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   155
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   156
		if (ptr == MAP_FAILED)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   157
			return (-1);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   158
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   159
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   160
	efb_info.efb_mmio_ptr = (uchar_t *)ptr;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   161
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   162
	if (gfx_vts_debug_mask & VTS_DEBUG)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   163
		printf("efb_mmio_ptr = 0x%llx\n",
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   164
		    (unsigned long long)efb_info.efb_mmio_ptr);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   165
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   166
	return (0);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   167
}
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
int
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   170
efb_map_fb(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   171
    void)
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   172
{
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   173
	register void *ptr;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   174
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   175
	if (efb_info.efb_fb_ptr == NULL) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   176
		ptr = mmap(NULL, efb_info.efb_fb_size,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   177
		    PROT_READ | PROT_WRITE, MAP_SHARED,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   178
		    efb_info.efb_fd, efb_info.efb_fb_addr);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   179
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   180
		if (ptr == MAP_FAILED)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   181
			return (-1);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   182
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   183
		efb_info.efb_fb_ptr = (uchar_t *)ptr;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   184
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   185
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   186
	if (gfx_vts_debug_mask & VTS_DEBUG)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   187
		printf("efb_fb_ptr = 0x%llx\n",
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   188
		    (unsigned long long)efb_info.efb_fb_ptr);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   189
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   190
	return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   191
}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   192
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   193
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   194
int
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   195
efb_init_info(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   196
    register return_packet *const rp,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   197
    register int const test)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   198
{
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   199
	register uint32_t crtc_h_total_disp;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   200
	register uint32_t crtc_v_total_disp;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   201
	register uint32_t crtc_gen_cntl;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   202
	register uint32_t crtc_pitch;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   203
	register uint_t width;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   204
	register uint_t height;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   205
	register uint_t depth;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   206
	register uint_t pixelsize;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   207
	register uint_t pitch;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   208
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   209
	/* Get the gen cntl */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   210
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   211
	crtc_gen_cntl = REGR(CRTC_GEN_CNTL);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   212
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   213
	/* Get the horizontal total display end */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   214
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   215
	crtc_h_total_disp = REGR(CRTC_H_TOTAL_DISP);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   216
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   217
	/* Get the vertical total display end */
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   218
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   219
	crtc_v_total_disp = REGR(CRTC_V_TOTAL_DISP);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   220
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   221
	/* Get the pitch */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   222
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   223
	crtc_pitch = REGR(CRTC_PITCH);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   224
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   225
	/* Compute the width. */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   226
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   227
	width = (((crtc_h_total_disp & CRTC_H_TOTAL_DISP__CRTC_H_DISP_MASK) >>
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   228
	    CRTC_H_TOTAL_DISP__CRTC_H_DISP__SHIFT) + 1) * 8;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   229
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   230
	/* Compute the height. */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   231
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   232
	height = ((crtc_v_total_disp & CRTC_V_TOTAL_DISP__CRTC_V_DISP_MASK) >>
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   233
	    CRTC_V_TOTAL_DISP__CRTC_V_DISP__SHIFT) + 1;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   234
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   235
	if (crtc_gen_cntl & CRTC_GEN_CNTL__CRTC_INTERLACE_EN_MASK)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   236
		height *= 2;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   237
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   238
	/* Compute the pitch */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   239
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   240
	pitch = crtc_pitch & CRTC_PITCH__CRTC_PITCH_MASK;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   241
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   242
	/* Compute the depth. */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   243
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   244
	switch ((crtc_gen_cntl & CRTC_GEN_CNTL__CRTC_PIX_WIDTH_MASK) >>
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   245
	    CRTC_GEN_CNTL__CRTC_PIX_WIDTH__SHIFT) {
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   246
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   247
	case 2:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   248
		depth = 8;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   249
		pixelsize = 1;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   250
		pitch *= 8;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   251
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   252
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   253
	case 3:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   254
		depth = 15;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   255
		pixelsize = 2;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   256
		pitch *= 16;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   257
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   258
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   259
	case 4:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   260
		depth = 16;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   261
		pixelsize = 2;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   262
		pitch *= 16;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   263
		break;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   264
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   265
	case 5:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   266
		depth = 24;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   267
		pixelsize = 3;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   268
		pitch *= 24;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   269
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   270
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   271
	case 6:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   272
		depth = 32;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   273
		pixelsize = 4;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   274
		pitch *= 32;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   275
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   276
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   277
	default:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   278
		gfx_vts_set_message(rp, 1, test, "unsupported depth");
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   279
		return (-1);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   280
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   281
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   282
	efb_info.efb_width = width;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   283
	efb_info.efb_height = height;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   284
	efb_info.efb_depth = depth;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   285
	efb_info.efb_pixelsize = pixelsize;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   286
	efb_info.efb_linesize = pitch;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   287
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   288
	if (gfx_vts_debug_mask & VTS_DEBUG) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   289
		printf("width=%d height=%d depth=%d pitch=%d\n",
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   290
		    efb_info.efb_width, efb_info.efb_height,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   291
		    efb_info.efb_depth, efb_info.efb_linesize);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   292
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   293
	return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   294
}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   295
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   296
int
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   297
efb_unmap_mem(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   298
    register return_packet *const rp,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   299
    register int const test)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   300
{
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   301
	if (efb_unmap_fb() != 0) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   302
		gfx_vts_set_message(rp, 1, test, "unmap framebuffer failed");
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   303
		return (-1);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   304
	}
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   305
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   306
	if (efb_unmap_mmio() != 0) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   307
		gfx_vts_set_message(rp, 1, test, "unmap MMIO failed");
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   308
		return (-1);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   309
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   310
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   311
	return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   312
}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   313
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   314
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   315
int
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   316
efb_unmap_fb(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   317
    void)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   318
{
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   319
	register int status;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   320
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   321
	if (efb_info.efb_fb_ptr == NULL)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   322
		return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   323
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   324
	status = munmap((char *)efb_info.efb_fb_ptr, efb_info.efb_fb_size);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   325
	efb_info.efb_fb_ptr = NULL;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   326
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   327
	return (status);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   328
}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   329
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   330
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   331
int
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   332
efb_unmap_mmio(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   333
    void)
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   334
{
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   335
	register int status;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   336
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   337
	if (efb_info.efb_mmio_ptr == NULL)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   338
		return (0);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   339
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   340
	status = munmap((char *)efb_info.efb_mmio_ptr,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   341
	    efb_info.efb_mmio_size);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   342
	efb_info.efb_mmio_ptr = NULL;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   343
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   344
	return (status);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   345
}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   346
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   347
int
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   348
efb_init_graphics(void)
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   349
{
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   350
	uint_t pitch_offset;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   351
	uint_t pitch;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   352
	uint_t offset;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   353
	uint_t gmc_bpp;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   354
	uint_t v;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   355
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   356
	switch (efb_info.efb_depth) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   357
	case 8:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   358
		gmc_bpp = GMC_DST_8BPP;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   359
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   360
	case 15:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   361
		gmc_bpp = GMC_DST_15BPP;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   362
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   363
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   364
	case 16:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   365
		gmc_bpp = GMC_DST_16BPP;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   366
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   367
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   368
	case 24:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   369
		gmc_bpp = GMC_DST_24BPP;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   370
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   371
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   372
	case 32:
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   373
		gmc_bpp = GMC_DST_32BPP;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   374
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   375
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   376
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   377
	offset = REGR(CRTC_OFFSET) & 0x7ffffff;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   378
	pitch = REGR(CRTC_PITCH) & 0x7ff;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   379
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   380
	pitch = pitch * 8;	/* was in groups of 8 pixels */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   381
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   382
	pitch_offset =
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   383
	    ((pitch * efb_info.efb_pixelsize / 64) << 22) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   384
	    (offset / 1024);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   385
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   386
	/*
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   387
	 * Initialize GUI engine
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   388
	 */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   389
	if (!efb_wait_idle())
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   390
		return (0);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   391
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   392
	if (!efb_wait_fifo(5))
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   393
		return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   394
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   395
	REGW(DEFAULT_PITCH_OFFSET, pitch_offset);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   396
	REGW(RADEON_DST_PITCH_OFFSET, pitch_offset);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   397
	REGW(RADEON_SRC_PITCH_OFFSET, pitch_offset);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   398
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   399
	REGW(DEFAULT_SC_BOTTOM_RIGHT,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   400
	    (efb_info.efb_height << 16) | (efb_info.efb_width));
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   401
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   402
	v = (GMC_SRC_PITCH_OFFSET_DEFAULT |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   403
	    GMC_DST_PITCH_OFFSET_LEAVE |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   404
	    GMC_SRC_CLIP_DEFAULT |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   405
	    GMC_DST_CLIP_DEFAULT |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   406
	    GMC_BRUSH_SOLIDCOLOR |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   407
	    gmc_bpp |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   408
	    GMC_SRC_DSTCOLOR |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   409
	    RADEON_ROP3_P |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   410
	    GMC_WRITE_MASK_LEAVE);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   411
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   412
	REGW(RADEON_DP_GUI_MASTER_CNTL, v);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   413
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   414
#ifdef DEBUG
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   415
	printf("v=0x%x\n", v);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   416
#endif
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   417
	return (1);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   418
}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   419
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   420
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   421
void
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   422
efb_save_palet(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   423
    void)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   424
{
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   425
	register uint_t coloron;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   426
	register uint_t const save_palette_index =
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   427
	    REGR(RADEON_PALETTE_INDEX);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   428
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   429
	REGW(RADEON_PALETTE_INDEX, 0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   430
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   431
	for (coloron = 0; coloron < 256; coloron++)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   432
		efb_info.efb_palet[coloron] = REGR(RADEON_PALETTE_30_DATA);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   433
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   434
	REGW(RADEON_PALETTE_INDEX, save_palette_index);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   435
}
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   436
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   437
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   438
int
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   439
efb_set_palet(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   440
    void)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   441
{
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   442
	register uint_t coloron;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   443
	register uint_t save_palette_index;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   444
	uint_t new_red;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   445
	uint_t new_green;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   446
	uint_t new_blue;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   447
	uint_t new_palet[256];
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   448
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   449
	switch (efb_info.efb_depth) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   450
	case 8:	/* 3, 3, 2 */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   451
		for (coloron = 0; coloron < 256; coloron++) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   452
			new_red = ((coloron >> 5) & 0x7) * 1023 / 7;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   453
			new_green = ((coloron >> 2) & 0x7) * 1023 / 7;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   454
			new_blue = (coloron & 0x3) * 1023 / 3;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   455
			new_palet[coloron] =
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   456
			    (new_red <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   457
			    PALETTE_30_DATA__PALETTE_DATA_R__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   458
			    (new_green <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   459
			    PALETTE_30_DATA__PALETTE_DATA_G__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   460
			    (new_blue <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   461
			    PALETTE_30_DATA__PALETTE_DATA_B__SHIFT);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   462
		}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   463
		break;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   464
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   465
	case 15:	/* 5, 5, 5 */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   466
		for (coloron = 0; coloron < 256; coloron++) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   467
			new_red = (coloron / 8) * 1023 / 31;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   468
			new_green = (coloron / 8) * 1023 / 31;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   469
			new_blue = (coloron / 8) * 1023 / 31;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   470
			new_palet[coloron] =
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   471
			    (new_red <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   472
			    PALETTE_30_DATA__PALETTE_DATA_R__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   473
			    (new_green <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   474
			    PALETTE_30_DATA__PALETTE_DATA_G__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   475
			    (new_blue <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   476
			    PALETTE_30_DATA__PALETTE_DATA_B__SHIFT);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   477
		}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   478
		break;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   479
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   480
	case 16:	/* 5, 6, 5 */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   481
		for (coloron = 0; coloron < 256; coloron++) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   482
			new_red = (coloron / 8) * 1023 / 31;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   483
			new_green = (coloron / 4) * 1023 / 63;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   484
			new_blue = (coloron / 8) * 1023 / 31;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   485
			new_palet[coloron] =
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   486
			    (new_red <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   487
			    PALETTE_30_DATA__PALETTE_DATA_R__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   488
			    (new_green <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   489
			    PALETTE_30_DATA__PALETTE_DATA_G__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   490
			    (new_blue <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   491
			    PALETTE_30_DATA__PALETTE_DATA_B__SHIFT);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   492
		}
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   493
		break;
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   494
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   495
	default:	/* 8, 8, 8 */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   496
		for (coloron = 0; coloron < 256; coloron++) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   497
			new_red = (coloron * 1023) / 255;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   498
			new_green = (coloron * 1023) / 255;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   499
			new_blue = (coloron * 1023) / 255;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   500
			new_palet[coloron] =
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   501
			    (new_red <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   502
			    PALETTE_30_DATA__PALETTE_DATA_R__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   503
			    (new_green <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   504
			    PALETTE_30_DATA__PALETTE_DATA_G__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   505
			    (new_blue <<
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   506
			    PALETTE_30_DATA__PALETTE_DATA_B__SHIFT);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   507
		}
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   508
		break;
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   509
	}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   510
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   511
	/* Don't set the palet if it matches what we will set. */
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   512
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   513
	for (coloron = 0; coloron < 256; coloron++) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   514
		if ((efb_info.efb_palet[coloron] &
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   515
		    (PALETTE_30_DATA__PALETTE_DATA_R_MASK |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   516
		    PALETTE_30_DATA__PALETTE_DATA_G_MASK |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   517
		    PALETTE_30_DATA__PALETTE_DATA_B_MASK)) !=
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   518
		    (new_palet[coloron] &
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   519
		    (PALETTE_30_DATA__PALETTE_DATA_R_MASK |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   520
		    PALETTE_30_DATA__PALETTE_DATA_G_MASK |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   521
		    PALETTE_30_DATA__PALETTE_DATA_B_MASK)))
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   522
			break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   523
	}
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   524
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   525
	if (coloron == 256)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   526
		return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   527
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   528
	efb_info.efb_palet_changed = 1;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   529
	save_palette_index = REGR(RADEON_PALETTE_INDEX);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   530
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   531
	REGW(RADEON_PALETTE_INDEX, 0);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   532
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   533
	for (coloron = 0; coloron < 256; coloron++)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   534
		REGW(RADEON_PALETTE_30_DATA, new_palet[coloron]);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   535
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   536
	REGW(RADEON_PALETTE_INDEX, save_palette_index);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   537
	return (1);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   538
}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   539
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   540
int
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   541
efb_restore_palet(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   542
    void)
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   543
{
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   544
	register uint_t coloron;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   545
	register uint_t save_palette_index;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   546
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   547
	if (!efb_info.efb_palet_changed)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   548
		return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   549
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   550
	save_palette_index = REGR(RADEON_PALETTE_INDEX);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   551
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   552
	REGW(RADEON_PALETTE_INDEX, 0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   553
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   554
	for (coloron = 0; coloron < 256; coloron++)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   555
		REGW(RADEON_PALETTE_30_DATA, efb_info.efb_palet[coloron]);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   556
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   557
	REGW(RADEON_PALETTE_INDEX, save_palette_index);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   558
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   559
	efb_info.efb_palet_changed = 0;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   560
	return (1);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   561
}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   562
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   563
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   564
uint_t
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   565
efb_color(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   566
    register uint_t const red,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   567
    register uint_t const green,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   568
    register uint_t const blue)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   569
{
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   570
	register uint_t value;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   571
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   572
	switch (efb_info.efb_depth) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   573
	case 8:	/* 3, 3, 2 */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   574
		value = ((red >> 5) & 0x7) << 5;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   575
		value |= ((green >> 5) & 0x7) << 2;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   576
		value |= (blue >> 6) & 0x3;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   577
		break;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   578
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   579
	case 15:	/* 5, 5, 5 */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   580
		value = ((red >> 3) & 0x1f) << 10;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   581
		value |= ((green >> 3) & 0x1f) << 5;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   582
		value |= (blue >> 3) & 0x1f;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   583
		break;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   584
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   585
	case 16:	/* 5, 6, 5 */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   586
		value = ((red >> 3) & 0x1f) << 11;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   587
		value |= ((green >> 2) & 0x3f) << 5;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   588
		value |= (blue >> 3) & 0x1f;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   589
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   590
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   591
	default:	/* 8, 8, 8 */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   592
		value = (red & 0xff) << 16;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   593
		value |= (green & 0xff) << 8;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   594
		value |= blue & 0xff;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   595
		break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   596
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   597
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   598
	return (value);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   599
}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   600
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   601
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   602
int
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   603
efb_fill_solid_rect(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   604
    register uint_t const x1,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   605
    register uint_t const y1,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   606
    register uint_t const x2,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   607
    register uint_t const y2,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   608
    register uint_t const fg)
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   609
{
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   610
	register int width;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   611
	register int height;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   612
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   613
	width  = x2 - x1;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   614
	height = y2 - y1;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   615
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   616
	if ((width <= 0) || (height <= 0)) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   617
#ifdef DEBUG
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   618
		printf("x1=%d x2=%d y1=%d y2=%d\n", x1, x2, y1, y2);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   619
#endif
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   620
		return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   621
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   622
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   623
	if (!efb_wait_fifo(5))
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   624
		return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   625
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   626
	REGW(RADEON_DP_WRITE_MASK, 0xffffffff);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   627
	REGW(RADEON_DP_CNTL,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   628
	    (RADEON_DST_X_LEFT_TO_RIGHT | RADEON_DST_Y_TOP_TO_BOTTOM));
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   629
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   630
	REGW(RADEON_DP_BRUSH_FRGD_CLR, fg);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   631
	REGW(DST_Y_X,  (x1 << DST_Y_X__DST_X__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   632
	    (y1 << DST_Y_X__DST_Y__SHIFT));
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   633
	REGW(DST_WIDTH_HEIGHT,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   634
	    (height << DST_WIDTH_HEIGHT__DST_HEIGHT__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   635
	    (width << DST_WIDTH_HEIGHT__DST_WIDTH__SHIFT));
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   636
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   637
	return (1);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   638
}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   639
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   640
int
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   641
efb_draw_solid_line(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   642
    register uint_t const x1,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   643
    register uint_t const y1,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   644
    register uint_t const x2,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   645
    register uint_t const y2,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   646
    register uint_t const fg)
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   647
{
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   648
	if (!efb_wait_fifo(5))
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   649
		return (0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   650
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   651
	REGW(RADEON_DP_WRITE_MASK, 0xffffffff);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   652
	REGW(RADEON_DP_CNTL,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   653
	    (RADEON_DST_X_LEFT_TO_RIGHT | RADEON_DST_Y_TOP_TO_BOTTOM));
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   654
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   655
	REGW(RADEON_DP_BRUSH_FRGD_CLR, fg);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   656
	REGW(DST_LINE_START,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   657
	    (x1 << DST_LINE_START__DST_START_X__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   658
	    (y1 << DST_LINE_START__DST_START_Y__SHIFT));
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   659
	REGW(DST_LINE_END,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   660
	    (x2 << DST_LINE_END__DST_END_X__SHIFT) |
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   661
	    (y2 << DST_LINE_END__DST_END_Y__SHIFT));
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   662
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   663
	return (1);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   664
}	/* line() */
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   665
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   666
int
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   667
efb_flush_pixel_cache(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   668
    void)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   669
{
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   670
	register int i;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   671
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   672
	/* initiate flush */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   673
	REGW(RADEON_RB2D_DSTCACHE_CTLSTAT,
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   674
	    REGR(RADEON_RB2D_DSTCACHE_CTLSTAT) | 0xf);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   675
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   676
	/* check for completion but limit looping to 16384 reads */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   677
	for (i = 16384; i > 0; i--) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   678
		if ((REGR(RADEON_RB2D_DSTCACHE_CTLSTAT) &
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   679
		    (uint_t)RADEON_RB2D_DC_BUSY) != (uint_t)RADEON_RB2D_DC_BUSY)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   680
			break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   681
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   682
	return ((REGR(RADEON_RB2D_DSTCACHE_CTLSTAT) &
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   683
	    (uint_t)RADEON_RB2D_DC_BUSY) != (uint_t)RADEON_RB2D_DC_BUSY);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   684
}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   685
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   686
void
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   687
efb_reset_engine(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   688
    void)
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   689
{
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   690
	register uint_t save_genresetcntl;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   691
	register uint_t save_clockcntlindex;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   692
	static ulong_t term_count;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   693
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   694
	efb_flush_pixel_cache();
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   695
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   696
	save_clockcntlindex = REGR(RADEON_CLOCK_CNTL_INDEX);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   697
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   698
	/* save GEN_RESET_CNTL register */
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   699
	save_genresetcntl = REGR(RADEON_DISP_MISC_CNTL);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   700
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   701
	/* reset by setting bit, add read delay, then clear bit, */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   702
	/* add read delay */
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   703
	REGW(RADEON_DISP_MISC_CNTL, save_genresetcntl |
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   704
	    RADEON_DISP_MISC_CNTL__SOFT_RESET_GRPH_PP);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   705
	REGR(RADEON_DISP_MISC_CNTL);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   706
	REGW(RADEON_DISP_MISC_CNTL, save_genresetcntl &
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   707
	    ~(RADEON_DISP_MISC_CNTL__SOFT_RESET_GRPH_PP));
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   708
	REGR(RADEON_DISP_MISC_CNTL);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   709
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   710
	/* restore the two registers we changed */
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   711
	REGW(RADEON_CLOCK_CNTL_INDEX, save_clockcntlindex);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   712
	REGW(RADEON_DISP_MISC_CNTL, save_genresetcntl);
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   713
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   714
	term_count++;	/* for monitoring engine hangs */
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   715
}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   716
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   717
int
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   718
efb_wait_fifo(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   719
    register int const c)
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   720
{
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   721
	register int limit;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   722
	register hrtime_t timeout;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   723
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   724
	/* First a short loop, just in case fifo clears out quickly */
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   725
	for (limit = 100; limit >= 0; limit--) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   726
		if ((REGR(RBBM_STATUS) &
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   727
		    RBBM_STATUS__CMDFIFO_AVAIL_MASK) >= c)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   728
			break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   729
	}
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   730
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   731
	if ((REGR(RBBM_STATUS) & RBBM_STATUS__CMDFIFO_AVAIL_MASK) < c) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   732
		timeout = gethrtime() + 3 * (hrtime_t)1000000000;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   733
		while (gethrtime() < timeout) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   734
			if ((REGR(RBBM_STATUS) &
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   735
			    RBBM_STATUS__CMDFIFO_AVAIL_MASK) >= c)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   736
				break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   737
			yield();
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   738
		}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   739
		if ((REGR(RBBM_STATUS) &
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   740
		    RBBM_STATUS__CMDFIFO_AVAIL_MASK) < c)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   741
			efb_reset_engine();
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   742
	}
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   743
	return ((REGR(RBBM_STATUS) &
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   744
	    RBBM_STATUS__CMDFIFO_AVAIL_MASK) >= c);
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   745
}
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   746
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   747
int
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   748
efb_wait_idle(
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   749
    void)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   750
{
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   751
	register int limit;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   752
	register hrtime_t timeout;
1117
629ac4b133bc 7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   753
1368
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   754
	efb_wait_fifo(64);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   755
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   756
	for (limit = 10000; limit > 0; limit--) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   757
		if (!(REGR(RBBM_STATUS) & GUI_ACTIVE))
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   758
			break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   759
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   760
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   761
	if (REGR(RBBM_STATUS) & GUI_ACTIVE) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   762
		timeout = gethrtime() + 3 * (hrtime_t)1000000000;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   763
		while (gethrtime() < timeout) {
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   764
			if (!(REGR(RBBM_STATUS) & GUI_ACTIVE))
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   765
				break;
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   766
			yield();
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   767
		}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   768
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   769
		if ((REGR(RBBM_STATUS) & GUI_ACTIVE) != 0)
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   770
			efb_reset_engine();
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   771
	}
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   772
	return ((REGR(RBBM_STATUS) & GUI_ACTIVE) == 0);
475ce9398539 15758019 SUNBT7116629 Screen turned to BLUE after running VTS graphicstest on Xorg w/efb
David Marx <David.M.Marx@Oracle.Com>
parents: 1117
diff changeset
   773
}