1d6c0b56eSmrg/*
2d6c0b56eSmrg * Copyright 2000 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
3d6c0b56eSmrg *
4d6c0b56eSmrg * Permission to use, copy, modify, distribute, and sell this software and its
5d6c0b56eSmrg * documentation for any purpose is hereby granted without fee, provided that
6d6c0b56eSmrg * the above copyright notice appear in all copies and that both that copyright
7d6c0b56eSmrg * notice and this permission notice appear in supporting documentation, and
8d6c0b56eSmrg * that the name of Marc Aurele La France not be used in advertising or
9d6c0b56eSmrg * publicity pertaining to distribution of the software without specific,
10d6c0b56eSmrg * written prior permission.  Marc Aurele La France makes no representations
11d6c0b56eSmrg * about the suitability of this software for any purpose.  It is provided
12d6c0b56eSmrg * "as-is" without express or implied warranty.
13d6c0b56eSmrg *
14d6c0b56eSmrg * MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15d6c0b56eSmrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO
16d6c0b56eSmrg * EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17d6c0b56eSmrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18d6c0b56eSmrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19d6c0b56eSmrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20d6c0b56eSmrg * PERFORMANCE OF THIS SOFTWARE.
21d6c0b56eSmrg */
22d6c0b56eSmrg
23d6c0b56eSmrg#ifdef HAVE_CONFIG_H
24d6c0b56eSmrg#include "config.h"
25d6c0b56eSmrg#endif
26d6c0b56eSmrg
27d6c0b56eSmrg#include "amdgpu_probe.h"
28d6c0b56eSmrg#include "amdgpu_version.h"
29d6c0b56eSmrg
30d6c0b56eSmrg#include "xf86.h"
31d6c0b56eSmrg
32d6c0b56eSmrg/* Module loader interface for subsidiary driver module */
33d6c0b56eSmrg
34d6c0b56eSmrgstatic XF86ModuleVersionInfo AMDGPUVersionRec = {
35d6c0b56eSmrg	AMDGPU_DRIVER_NAME,
36d6c0b56eSmrg	MODULEVENDORSTRING,
37d6c0b56eSmrg	MODINFOSTRING1,
38d6c0b56eSmrg	MODINFOSTRING2,
39d6c0b56eSmrg	XORG_VERSION_CURRENT,
40d6c0b56eSmrg	AMDGPU_VERSION_MAJOR, AMDGPU_VERSION_MINOR, AMDGPU_VERSION_PATCH,
41d6c0b56eSmrg	ABI_CLASS_VIDEODRV,
42d6c0b56eSmrg	ABI_VIDEODRV_VERSION,
43d6c0b56eSmrg	MOD_CLASS_VIDEODRV,
44d6c0b56eSmrg	{0, 0, 0, 0}
45d6c0b56eSmrg};
46d6c0b56eSmrg
47d6c0b56eSmrg/*
48d6c0b56eSmrg * AMDGPUSetup --
49d6c0b56eSmrg *
50d6c0b56eSmrg * This function is called every time the module is loaded.
51d6c0b56eSmrg */
52d6c0b56eSmrgstatic pointer
53d6c0b56eSmrgAMDGPUSetup(pointer Module, pointer Options, int *ErrorMajor, int *ErrorMinor)
54d6c0b56eSmrg{
55d6c0b56eSmrg	static Bool Inited = FALSE;
56d6c0b56eSmrg
57d6c0b56eSmrg	if (!Inited) {
58d6c0b56eSmrg		Inited = TRUE;
59d6c0b56eSmrg		xf86AddDriver(&AMDGPU, Module, HaveDriverFuncs);
60d6c0b56eSmrg	}
61d6c0b56eSmrg
62d6c0b56eSmrg	return (pointer) TRUE;
63d6c0b56eSmrg}
64d6c0b56eSmrg
65d6c0b56eSmrg/* The following record must be called amdgpuModuleData */
66d6c0b56eSmrg_X_EXPORT XF86ModuleData amdgpuModuleData = {
67d6c0b56eSmrg	&AMDGPUVersionRec,
68d6c0b56eSmrg	AMDGPUSetup,
69d6c0b56eSmrg	NULL
70d6c0b56eSmrg};
71