open-src/driver/efb/sun-src/src/efb_driver.c
author Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
Mon, 25 Apr 2011 13:38:53 -0700
changeset 1116 605549b491ac
permissions -rw-r--r--
7039092 Move efb module for Xorg to X consolidation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1116
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     1
/*
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     2
 * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     3
 *
605549b491ac 7039092 Move efb module for Xorg 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
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     5
 * copy of this software and associated documentation files (the "Software"),
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     6
 * to deal in the Software without restriction, including without limitation
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     7
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
605549b491ac 7039092 Move efb module for Xorg 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
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     9
 * Software is furnished to do so, subject to the following conditions:
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    10
 *
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    11
 * The above copyright notice and this permission notice (including the next
605549b491ac 7039092 Move efb module for Xorg 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
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    13
 * Software.
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    14
 *
605549b491ac 7039092 Move efb module for Xorg 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
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    16
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    17
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
605549b491ac 7039092 Move efb module for Xorg 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
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    19
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
605549b491ac 7039092 Move efb module for Xorg 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
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    21
 * DEALINGS IN THE SOFTWARE.
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    22
 */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    23
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    24
/*
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    25
 * Copyright 2000 through 2004 by Marc Aurele La France (TSI @ UQV), [email protected]
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    26
 *
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    27
 * Permission to use, copy, modify, distribute, and sell this software and its
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    28
 * documentation for any purpose is hereby granted without fee, provided that
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    29
 * the above copyright notice appear in all copies and that both that copyright
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    30
 * notice and this permission notice appear in supporting documentation, and
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    31
 * that the name of Marc Aurele La France not be used in advertising or
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    32
 * publicity pertaining to distribution of the software without specific,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    33
 * written prior permission.  Marc Aurele La France makes no representations
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    34
 * about the suitability of this software for any purpose.  It is provided
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    35
 * "as-is" without express or implied warranty.
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    36
 *
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    37
 * MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    38
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    39
 * EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    40
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    41
 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    42
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    43
 * PERFORMANCE OF THIS SOFTWARE.
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    44
 */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    45
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    46
#ifdef HAVE_CONFIG_H
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    47
#include "config.h"
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    48
#endif
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    49
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    50
#include <string.h>
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    51
#include <stdio.h>
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    52
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    53
#include "radeon.h"
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    54
#include "radeon_probe.h"
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    55
#include "radeon_version.h"
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    56
#include "xf86.h"
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    57
#include "xf86_OSproc.h"
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    58
#include "efb.h"
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    59
#include "fb.h"
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    60
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    61
#ifdef XSERVER_LIBPCIACCESS
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    62
#include "pciaccess.h"
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    63
#endif
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    64
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    65
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    66
/* Module loader interface for subsidiary driver module */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    67
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    68
static XF86ModuleVersionInfo EFBVersionRec =
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    69
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    70
    RADEON_DRIVER_NAME,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    71
    MODULEVENDORSTRING,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    72
    MODINFOSTRING1,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    73
    MODINFOSTRING2,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    74
    XORG_VERSION_CURRENT,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    75
    RADEON_VERSION_MAJOR, RADEON_VERSION_MINOR, RADEON_VERSION_PATCH,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    76
    ABI_CLASS_VIDEODRV,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    77
    ABI_VIDEODRV_VERSION,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    78
    MOD_CLASS_VIDEODRV,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    79
    {0, 0, 0, 0}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    80
};
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    81
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    82
/*
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    83
 * EFBSetup --
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    84
 *
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    85
 * This function is called every time the module is loaded.
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    86
 */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    87
static pointer
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    88
EFBSetup
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    89
(
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    90
    pointer Module,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    91
    pointer Options,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    92
    int     *ErrorMajor,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    93
    int     *ErrorMinor
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    94
)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    95
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    96
    static Bool Inited = FALSE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    97
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    98
    if (!Inited) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    99
        Inited = TRUE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   100
        xf86AddDriver(&RADEON, Module, HaveDriverFuncs);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   101
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   102
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   103
    return (pointer)TRUE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   104
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   105
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   106
/* The following record must be called efbModuleData */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   107
_X_EXPORT XF86ModuleData efbModuleData =
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   108
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   109
    &EFBVersionRec,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   110
    EFBSetup,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   111
    NULL
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   112
};
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   113
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   114
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   115
#define EFB_REG_SIZE       256*1024
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   116
#define EFB_REG_SIZE_LOG2  18
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   117
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   118
#ifndef XSERVER_LIBPCIACCESS
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   119
pciVideoPtr EFBGetPciInfo(RADEONInfoPtr info)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   120
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   121
    int status;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   122
    pciVideoPtr pciInfo = NULL;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   123
    int i;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   124
    int cmd = GFX_IOCTL_GET_PCI_CONFIG;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   125
    struct gfx_pci_cfg  pciCfg;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   126
    int bar;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   127
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   128
    if ((status = ioctl(info->fd, GFX_IOCTL_GET_PCI_CONFIG, &pciCfg))
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   129
		!= -1) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   130
        pciInfo = malloc(sizeof(pciVideoRec));
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   131
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   132
	pciInfo->vendor = pciCfg.VendorID;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   133
	pciInfo->chipType = pciCfg.DeviceID;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   134
	pciInfo->chipRev = pciCfg.RevisionID;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   135
	pciInfo->subsysVendor = pciCfg.SubVendorID;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   136
	pciInfo->subsysCard = pciCfg.SubSystemID;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   137
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   138
	// TODO: need to fill in the complete structure
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   139
	//
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   140
	for (i = 0; i < 6; i++) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   141
	    bar = pciCfg.bar[i];
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   142
	    if (bar != 0) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   143
		if (bar & PCI_MAP_IO) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   144
		    pciInfo->ioBase[i] = (memType)PCIGETIO(bar);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   145
		    pciInfo->type[i] = bar & PCI_MAP_IO_ATTR_MASK;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   146
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   147
		    // TODO: size?
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   148
		} else {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   149
		    pciInfo->type[i] = bar & PCI_MAP_MEMORY_ATTR_MASK;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   150
		    pciInfo->memBase[i] = (memType)PCIGETMEMORY(bar);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   151
		    if (PCI_MAP_IS64BITMEM(bar)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   152
                        if (i == 5) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   153
                            pciInfo->memBase[i] = 0;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   154
                        } else {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   155
                            int  bar_hi = pciCfg.bar[i+1];
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   156
                            /* 64 bit architecture */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   157
                            pciInfo->memBase[i] |=
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   158
                                        (memType)bar_hi << 32;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   159
                            ++i;    /* Step over the next BAR */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   160
                        }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   161
		    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   162
		    pciInfo->size[i] = EFB_REG_SIZE_LOG2;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   163
		}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   164
	    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   165
	}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   166
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   167
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   168
    return pciInfo;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   169
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   170
#else
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   171
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   172
/*
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   173
 * These defines are from the xorg 1.3 xf86pci.h
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   174
 */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   175
#define PCI_MAP_MEMORY                  0x00000000
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   176
#define PCI_MAP_IO                      0x00000001
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   177
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   178
#define PCI_MAP_MEMORY_TYPE             0x00000007
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   179
#define PCI_MAP_MEMORY_TYPE_64BIT       0x00000004
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   180
#define PCI_MAP_IO_TYPE                 0x00000003
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   181
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   182
#define PCI_MAP_MEMORY_ADDRESS_MASK     0xfffffff0
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   183
#define PCI_MAP_IO_ADDRESS_MASK         0xfffffffc
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   184
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   185
#define PCI_MAP_IS_IO(b)        ((b) & PCI_MAP_IO)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   186
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   187
#define PCI_MAP_IS64BITMEM(b)   \
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   188
        (((b) & PCI_MAP_MEMORY_TYPE) == PCI_MAP_MEMORY_TYPE_64BIT)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   189
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   190
#define PCIGETMEMORY(b)         ((b) & PCI_MAP_MEMORY_ADDRESS_MASK)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   191
#define PCIGETMEMORY64HIGH(b)   (*((CARD32*)&(b) + 1))
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   192
#define PCIGETMEMORY64(b)       \
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   193
        (PCIGETMEMORY(b) | ((CARD64)PCIGETMEMORY64HIGH(b) << 32))
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   194
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   195
#define PCIGETIO(b)             ((b) & PCI_MAP_IO_ADDRESS_MASK)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   196
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   197
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   198
struct pci_device * EFBGetPciInfo(RADEONInfoPtr info)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   199
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   200
    int status;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   201
    struct pci_device *pciInfo = NULL;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   202
    int i;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   203
    int cmd = GFX_IOCTL_GET_PCI_CONFIG;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   204
    struct gfx_pci_cfg  pciCfg;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   205
    int bar;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   206
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   207
    if ((status = ioctl(info->fd, GFX_IOCTL_GET_PCI_CONFIG, &pciCfg))
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   208
		!= -1) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   209
        pciInfo = malloc(sizeof(struct pci_device));
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   210
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   211
	pciInfo->vendor_id = pciCfg.VendorID;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   212
	pciInfo->device_id = pciCfg.DeviceID;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   213
	pciInfo->revision = pciCfg.RevisionID;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   214
	pciInfo->subvendor_id = pciCfg.SubVendorID;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   215
	pciInfo->subvendor_id = pciCfg.SubSystemID;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   216
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   217
	// TODO: need to fill in the complete structure
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   218
	//
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   219
	for (i = 0; i < 6; i++) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   220
	    bar = pciCfg.bar[i];
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   221
	    if (bar != 0) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   222
		if (PCI_MAP_IS_IO(bar)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   223
		    pciInfo->regions[i].base_addr = (pciaddr_t)PCIGETIO(bar);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   224
		} else {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   225
		    pciInfo->regions[i].size = EFB_REG_SIZE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   226
		    if (PCI_MAP_IS64BITMEM(bar)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   227
		        pciInfo->regions[i].base_addr = (pciaddr_t)PCIGETMEMORY64(bar);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   228
                        ++i;    /* Step over the next BAR */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   229
		    } else {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   230
		        pciInfo->regions[i].base_addr = (pciaddr_t)PCIGETMEMORY(bar);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   231
		    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   232
		}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   233
	    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   234
	}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   235
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   236
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   237
    return pciInfo;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   238
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   239
#endif
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   240
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   241
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   242
pointer
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   243
EFBMapVidMem(ScrnInfoPtr pScrn, unsigned int flags, PCITAG picTag, 
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   244
			unsigned long base, unsigned long size)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   245
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   246
    int BUS_BASE = 0;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   247
    pointer memBase;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   248
    int fdd;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   249
    int mapflags = MAP_SHARED;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   250
    int prot;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   251
    memType realBase, alignOff;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   252
    unsigned long realSize;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   253
    int pageSize;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   254
    RADEONInfoPtr  info = RADEONPTR(pScrn);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   255
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   256
    fdd = info->fd;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   257
    realBase = base & ~(getpagesize() - 1);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   258
    alignOff = base - realBase;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   259
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   260
    pageSize = getpagesize();
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   261
    realSize = size + (pageSize - 1) & (~(pageSize - 1));
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   262
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   263
    printf("base: %lx, realBase: %lx, alignOff: %lx \n",
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   264
                base, realBase, alignOff);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   265
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   266
    if (flags & VIDMEM_READONLY) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   267
        prot = PROT_READ;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   268
    } else {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   269
        prot = PROT_READ | PROT_WRITE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   270
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   271
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   272
    memBase = mmap((caddr_t)0, realSize + alignOff, prot, mapflags, fdd,
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   273
                (off_t)(off_t)realBase + BUS_BASE);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   274
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   275
    if (memBase == MAP_FAILED) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   276
        printf("RADEONMapVidMem: Could not map framebuffer\n");
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   277
        return NULL;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   278
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   279
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   280
    return ((char *)memBase + alignOff);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   281
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   282
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   283
void
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   284
EFBUnmapVidMem(ScrnInfoPtr pScrn, pointer base, unsigned long size)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   285
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   286
    memType alignOff = (memType)base - ((memType)base & ~(getpagesize() - 1));
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   287
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   288
    printf("alignment offset: %lx\n",alignOff);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   289
    munmap((caddr_t)((memType)base - alignOff), (size + alignOff));
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   290
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   291
    return;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   292
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   293
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   294
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   295
void
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   296
EFBNotifyModeChanged(ScrnInfoPtr pScrn)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   297
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   298
    RADEONInfoPtr  info = RADEONPTR(pScrn);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   299
    int status;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   300
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   301
    struct gfx_video_mode mode;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   302
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   303
    if (pScrn->currentMode->name) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   304
	strlcpy(mode.mode_name, pScrn->currentMode->name, GFX_MAX_VMODE_LEN);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   305
    } else {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   306
	strlcpy(mode.mode_name, " ", GFX_MAX_VMODE_LEN);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   307
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   308
    
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   309
    mode.vRefresh = pScrn->currentMode->VRefresh;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   310
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   311
    status = ioctl(info->fd, GFX_IOCTL_SET_VIDEO_MODE, &mode);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   312
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   313
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   314
void
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   315
EFBScreenInit(ScrnInfoPtr pScrn)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   316
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   317
    RADEONInfoPtr  info = RADEONPTR(pScrn);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   318
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   319
    if (xf86ReturnOptValBool(info->Options, OPTION_DISABLE_RANDR, FALSE)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   320
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   321
   	xf86DrvMsg (pScrn->scrnIndex, X_INFO, "RANDR is disabled\n");
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   322
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   323
        //
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   324
        // disable RANDR
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   325
        // 
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   326
        EnableDisableExtension("RANDR", FALSE);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   327
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   328
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   329
    EFBNotifyModeChanged(pScrn);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   330
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   331
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   332
void
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   333
EFBCloseScreen(ScrnInfoPtr pScrn)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   334
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   335
    EFBNotifyModeChanged(pScrn);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   336
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   337
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   338
DisplayModePtr
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   339
EFBOutputGetEDIDModes(xf86OutputPtr output)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   340
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   341
    xf86MonPtr  edid_mon = output->MonInfo;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   342
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   343
    if (!strcmp(edid_mon->vendor.name, "SUN")) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   344
	if (edid_mon->ver.version == 1 &&
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   345
		edid_mon->ver.revision <= 2) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   346
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   347
	    //
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   348
	    // force detail timing to be the preferred one
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   349
	    //
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   350
	    edid_mon->features.msc |= 0x2;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   351
	}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   352
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   353
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   354
    return (xf86OutputGetEDIDModes(output));
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   355
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   356
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   357
DisplayModePtr
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   358
efb_get_modes(xf86OutputPtr output)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   359
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   360
    ScrnInfoPtr pScrn = output->scrn;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   361
    DisplayModePtr pModes;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   362
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   363
    pModes = RADEONProbeOutputModes(output);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   364
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   365
    //
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   366
    // display modes have precedence
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   367
    //
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   368
    if (pScrn->display->modes[0] != NULL) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   369
        int mm;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   370
        char *modes;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   371
        DisplayModePtr dModes, preferredMode = NULL;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   372
        int found = 0, done = 0;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   373
        for (mm = 0; pScrn->display->modes[mm] != NULL && !found; mm++) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   374
            modes = pScrn->display->modes[mm];
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   375
            if (!strcasecmp(modes, "Auto") || !strcasecmp(modes, "None")) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   376
		done = found = 1;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   377
            } else {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   378
                done = 0;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   379
                dModes = pModes;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   380
                while (dModes && !done) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   381
                    if (!strcmp(modes, dModes->name)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   382
                        done = found = 1;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   383
			dModes->type |= M_T_PREFERRED;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   384
			preferredMode = dModes;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   385
                    } else {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   386
                        dModes = dModes->next;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   387
                    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   388
                }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   389
            }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   390
        }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   391
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   392
        if (found && preferredMode) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   393
	    dModes = pModes;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   394
	    while (dModes) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   395
		if ((dModes->type & M_T_PREFERRED) &&
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   396
		        (dModes != preferredMode)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   397
		    dModes->type &= ~M_T_PREFERRED;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   398
		}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   399
		dModes = dModes->next;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   400
	    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   401
	}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   402
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   403
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   404
    return(pModes);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   405
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   406
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   407
char *efb_default_mode = "1024x768";
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   408
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   409
float ratio[] = { 10/16,	/* 16:10 AR */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   410
		  3/4,		/*  4:3  AR */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   411
		  4/5,		/*  5:4  AR */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   412
		  9/16		/* 16:9  AR */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   413
		};
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   414
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   415
char *efb_get_edid_preferred_mode(ScrnInfoPtr pScrn, int head)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   416
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   417
    RADEONInfoPtr      info = RADEONPTR(pScrn);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   418
    int                i, status;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   419
    unsigned int       length;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   420
    gfx_edid_t         edid_buf;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   421
    unsigned char      *data;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   422
    unsigned char      *mode = "1280x1024";
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   423
    unsigned char      pmode[10];
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   424
    unsigned char      *vblk, *pblk;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   425
    unsigned int       width = 0, height = 0;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   426
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   427
    edid_buf.head = head;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   428
    edid_buf.version = GFX_EDID_VERSION;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   429
    status = ioctl(info->fd, GFX_IOCTL_GET_EDID_LENGTH, &edid_buf);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   430
    if (status == -1) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   431
	return strdup(efb_default_mode);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   432
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   433
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   434
    data = edid_buf.data = (char *)malloc(edid_buf.length);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   435
    status = ioctl(info->fd, GFX_IOCTL_GET_EDID, &edid_buf);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   436
    if (status == -1) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   437
	return strdup(efb_default_mode);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   438
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   439
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   440
    vblk = data + 8 + 10; 			/* skip header & product info */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   441
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   442
    pblk = vblk + 2 + 5 + 10 + 3 + 16;	/* skip to preferred timing block */
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   443
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   444
    for (i = 0; i < 4 && width == 0; i++, pblk+=18) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   445
	if (!((pblk[0] == 0) && (pblk[0] == 0))) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   446
            width = pblk[2] | ((pblk[4] & 0xf0) << 4);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   447
            height = pblk[5] | ((pblk[7] & 0xf0) << 4);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   448
	}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   449
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   450
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   451
    sprintf(pmode, "%dx%d", width, height);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   452
    
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   453
    return strdup(pmode);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   454
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   455
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   456
void efb_set_position(xf86CrtcConfigPtr config, BOOL swap, 
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   457
			int pos1X, int pos1Y, int pos2X, int pos2Y)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   458
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   459
    int o;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   460
    xf86OutputPtr output;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   461
    char *value[2];
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   462
    char str[20];
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   463
    OptionInfoRec *p;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   464
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   465
    int first = 0;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   466
    int second = 1;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   467
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   468
    if (swap) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   469
	first = 1;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   470
	second = 0;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   471
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   472
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   473
    sprintf(str,"%d %d", pos1X, pos1Y);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   474
    value[first] = strdup(str);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   475
    sprintf(str,"%d %d", pos2X, pos2Y);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   476
    value[second] = strdup(str);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   477
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   478
    for (o = 0; o < 2; o++) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   479
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   480
        output = config->output[o];
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   481
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   482
	for (p = output->options; p->token >= 0; p++) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   483
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   484
	    if (strcmp(p->name, "Position") == 0) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   485
		if (!p->found) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   486
		    p->value.str = value[o];
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   487
		    p->found = TRUE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   488
		}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   489
	    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   490
	} 
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   491
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   492
}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   493
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   494
void EFBPreInitOutputConfiguration(ScrnInfoPtr pScrn, xf86CrtcConfigPtr config)
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   495
{
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   496
    RADEONInfoPtr      info = RADEONPTR(pScrn);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   497
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   498
    Bool doubleWide = FALSE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   499
    Bool doubleHigh = FALSE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   500
    Bool swap = FALSE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   501
    int  offset = 0, position = 0;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   502
    int  head0 = GFX_EDID_HEAD_ONE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   503
    int  head1 = GFX_EDID_HEAD_TWO;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   504
    char *str;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   505
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   506
    str = xf86GetOptValString(info->Options, OPTION_DUAL_DISPLAY);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   507
    if ((str != NULL) && (strcasecmp(str, "Enable") == 0)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   508
	doubleWide = TRUE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   509
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   510
    str = xf86GetOptValString(info->Options, OPTION_DUAL_DISPLAY_VERTICAL);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   511
    if ((str != NULL) && (strcasecmp(str, "Enable") == 0)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   512
	doubleHigh = TRUE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   513
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   514
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   515
    // do the output configuration here only if dual display is enabled
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   516
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   517
    if ((doubleWide == FALSE) && (doubleHigh == FALSE)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   518
	return;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   519
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   520
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   521
    if ((doubleWide == TRUE) || (doubleHigh == TRUE)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   522
	char *outputOrder;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   523
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   524
        outputOrder = xf86GetOptValString(info->Options, OPTION_OUTPUTS);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   525
        if ((outputOrder != NULL) && (strcasecmp(outputOrder, "Swapped") == 0)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   526
	    swap = TRUE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   527
	    head0 = GFX_EDID_HEAD_TWO;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   528
            head1 = GFX_EDID_HEAD_ONE;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   529
        }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   530
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   531
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   532
    if (pScrn->display->modes[0] != NULL) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   533
        int mm;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   534
        char *modes;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   535
        int found = 0, done = 0;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   536
        for (mm = 0; pScrn->display->modes[mm] != NULL && !found; mm++) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   537
            modes = pScrn->display->modes[mm];
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   538
            if (!strcasecmp(modes, "Auto") || !strcasecmp(modes, "None")) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   539
		free(pScrn->display->modes[mm]);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   540
		pScrn->display->modes[mm] = efb_get_edid_preferred_mode(pScrn, head0);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   541
		found = 1;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   542
	    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   543
	}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   544
    } else {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   545
	pScrn->display->modes = malloc(2*sizeof(char *));
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   546
        pScrn->display->modes[0] = efb_get_edid_preferred_mode(pScrn, head0);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   547
	pScrn->display->modes[1] = NULL;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   548
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   549
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   550
    if ((doubleWide == TRUE) || (doubleHigh == TRUE)) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   551
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   552
	char *mode, *token;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   553
	int  width, height, position;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   554
        char value[10];
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   555
	xf86OutputPtr output;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   556
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   557
	mode = strdup(pScrn->display->modes[0]);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   558
	token = strtok(mode, "x");
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   559
	width = atoi(token);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   560
	token = strtok(NULL, "x");
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   561
	height = atoi(token);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   562
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   563
	free(mode);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   564
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   565
	//
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   566
	// check for stream offset
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   567
	//
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   568
	if (doubleWide == TRUE) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   569
            xf86GetOptValInteger(info->Options, OPTION_STREAM_XOFFSET, &offset);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   570
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   571
	    position = width;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   572
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   573
	    if (offset != 0) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   574
		position += offset;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   575
	    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   576
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   577
	    efb_set_position(config, swap, 0, 0, position, 0);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   578
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   579
	} else {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   580
            xf86GetOptValInteger(info->Options, OPTION_STREAM_YOFFSET, &offset);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   581
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   582
	    position = height;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   583
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   584
	    if (offset != 0) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   585
		position += offset;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   586
	    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   587
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   588
	    efb_set_position(config, swap, 0, 0, 0, position);
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   589
	}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   590
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   591
	//
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   592
	// if display virtual dimension is specified in xorg.conf, leave it alone
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   593
	//
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   594
        if (!pScrn->display->virtualX || !pScrn->display->virtualY) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   595
	    if (doubleWide) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   596
	    	pScrn->display->virtualX = width * 2 + offset;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   597
		pScrn->display->virtualY = height;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   598
	    } else if (doubleHigh) {
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   599
	    	pScrn->display->virtualX = width;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   600
		pScrn->display->virtualY = height * 2 + offset;
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   601
	    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   602
	}
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   603
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   604
    }
605549b491ac 7039092 Move efb module for Xorg to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   605
}