+++ /dev/null
-# Copyright © 2012 Intel Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-
-include $(top_srcdir)/src/gallium/Automake.inc
-
-AM_CFLAGS = \
- $(GALLIUM_CFLAGS) \
- $(PTHREAD_CFLAGS) \
- $(XORG_CFLAGS)
-AM_CPPFLAGS = \
- -I$(top_srcdir)/src/gallium/drivers \
- -I$(top_srcdir)/src/gallium/winsys \
- -DHAVE_CONFIG_H \
- -DGALLIUM_RBUG \
- -DGALLIUM_TRACE
-
-xorgdir = $(XORG_DRIVER_INSTALL_DIR)
-xorg_LTLIBRARIES = nouveau2_drv.la
-
-nodist_EXTRA_nouveau2_drv_la_SOURCES = dummy.cpp
-nouveau2_drv_la_SOURCES = \
- nouveau_target.c \
- nouveau_xorg.c
-
-nouveau2_drv_la_LDFLAGS = -module -avoid-version -shared -no-undefined
-
-nouveau2_drv_la_LIBADD = \
- $(top_builddir)/src/gallium/auxiliary/libgallium.la \
- $(top_builddir)/src/gallium/state_trackers/xorg/libxorgtracker.la \
- $(top_builddir)/src/gallium/winsys/nouveau/drm/libnouveaudrm.la \
- $(top_builddir)/src/gallium/drivers/nouveau/libnouveau.la \
- $(top_builddir)/src/gallium/drivers/trace/libtrace.la \
- $(top_builddir)/src/gallium/drivers/rbug/librbug.la \
- $(GALLIUM_DRI_LIB_DEPS) \
- $(LIBDRM_XORG_LIBS) \
- $(LIBKMS_XORG_LIBS) \
- $(NOUVEAU_LIBS)
-
-if HAVE_MESA_LLVM
-AM_CFLAGS += $(LLVM_CFLAGS)
-nouveau2_drv_la_LDFLAGS += $(LLVM_LDFLAGS)
-nouveau2_drv_la_LIBADD += $(LLVM_LIBS)
-endif
-
-# Provide compatibility with scripts for the old Mesa build system for
-# a while by putting a link to the driver into /lib of the build tree.
-all-local: nouveau2_drv.la
- $(MKDIR_P) $(top_builddir)/$(LIB_DIR)/gallium
- ln -f .libs/nouveau2_drv.so $(top_builddir)/$(LIB_DIR)/gallium/nouveau2_drv.so
+++ /dev/null
-/*
- * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- * Author: Alan Hourihane <alanh@tungstengraphics.com>
- * Author: Jakob Bornecrantz <wallbraker@gmail.com>
- *
- */
-
-#include "../../state_trackers/xorg/xorg_winsys.h"
-#include <nouveau.h>
-#include <xf86drmMode.h>
-
-static void nouveau_xorg_identify(int flags);
-static Bool nouveau_xorg_pci_probe(DriverPtr driver, int entity_num,
- struct pci_device *device,
- intptr_t match_data);
-
-static const struct pci_id_match nouveau_xorg_device_match[] = {
- { 0x10de, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY,
- 0x00030000, 0x00ffffff, 0 },
- {0, 0, 0},
-};
-
-static PciChipsets nouveau_xorg_pci_devices[] = {
- {PCI_MATCH_ANY, PCI_MATCH_ANY, NULL},
- {-1, -1, NULL}
-};
-
-static XF86ModuleVersionInfo nouveau_xorg_version = {
- "nouveau2",
- MODULEVENDORSTRING,
- MODINFOSTRING1,
- MODINFOSTRING2,
- XORG_VERSION_CURRENT,
- 0, 1, 0, /* major, minor, patch */
- ABI_CLASS_VIDEODRV,
- ABI_VIDEODRV_VERSION,
- MOD_CLASS_VIDEODRV,
- {0, 0, 0, 0}
-};
-
-/*
- * Xorg driver exported structures
- */
-
-_X_EXPORT DriverRec nouveau2 = {
- 1,
- "nouveau2",
- nouveau_xorg_identify,
- NULL,
- xorg_tracker_available_options,
- NULL,
- 0,
- NULL,
- nouveau_xorg_device_match,
- nouveau_xorg_pci_probe
-};
-
-static MODULESETUPPROTO(nouveau_xorg_setup);
-
-_X_EXPORT XF86ModuleData nouveau2ModuleData = {
- &nouveau_xorg_version,
- nouveau_xorg_setup,
- NULL
-};
-
-/*
- * Xorg driver functions
- */
-
-static pointer
-nouveau_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin)
-{
- static Bool setupDone = 0;
-
- /* This module should be loaded only once, but check to be sure.
- */
- if (!setupDone) {
- setupDone = 1;
- xf86AddDriver(&nouveau2, module, HaveDriverFuncs);
-
- /*
- * The return value must be non-NULL on success even though there
- * is no TearDownProc.
- */
- return (pointer) 1;
- } else {
- if (errmaj)
- *errmaj = LDR_ONCEONLY;
- return NULL;
- }
-}
-
-static void
-nouveau_xorg_identify(int flags)
-{
- xf86DrvMsg(0, X_INFO, "nouveau2: Gallium3D based 2D driver for NV30+ NVIDIA chipsets\n");
-}
-
-static Bool
-nouveau_xorg_pci_probe(DriverPtr driver,
- int entity_num, struct pci_device *device, intptr_t match_data)
-{
- ScrnInfoPtr scrn = NULL;
- struct nouveau_device *dev = NULL;
- char *busid;
- int chipset, ret;
-
- busid = malloc(64);
- if (!busid)
- return FALSE;
-
- sprintf(busid, "pci:%04x:%02x:%02x.%d",
- device->domain, device->bus,
- device->dev, device->func);
-
- ret = drmCheckModesettingSupported(busid);
- if (ret) {
- xf86DrvMsg(-1, X_ERROR, "[drm] KMS not enabled\n");
- free(busid);
- return FALSE;
- }
-
- ret = nouveau_device_open(busid, &dev);
- free(busid);
- if (ret) {
- xf86DrvMsg(-1, X_ERROR, "[drm] failed to open device\n");
- return FALSE;
- }
-
- chipset = dev->chipset;
- nouveau_device_del(&dev);
-
- switch (chipset & 0xf0) {
- case 0x00:
- case 0x10:
- case 0x20:
- xf86DrvMsg(-1, X_NOTICE, "Too old chipset: NV%02x\n", chipset);
- return FALSE;
- case 0x30:
- case 0x40:
- case 0x60:
- case 0x50:
- case 0x80:
- case 0x90:
- case 0xa0:
- case 0xc0:
- case 0xd0:
- case 0xe0:
- case 0xf0:
- xf86DrvMsg(-1, X_INFO, "Detected chipset: NV%02x\n", chipset);
- break;
- default:
- xf86DrvMsg(-1, X_ERROR, "Unknown chipset: NV%02x\n", chipset);
- return FALSE;
- }
-
- scrn = xf86ConfigPciEntity(scrn, 0, entity_num, nouveau_xorg_pci_devices,
- NULL, NULL, NULL, NULL, NULL);
- if (scrn != NULL) {
- scrn->driverVersion = 1;
- scrn->driverName = "nouveau";
- scrn->name = "nouveau2";
- scrn->Probe = NULL;
-
- /* Use all the functions from the xorg tracker */
- xorg_tracker_set_functions(scrn);
- }
- return scrn != NULL;
-}