![Alexandre Courbot](/assets/img/avatar_default.png)
Upcoming mobile Kepler GPUs (such as GK20A) use the platform bus instead of PCI to which Nouveau is tightly dependent. This patch allows Nouveau to handle platform devices by: - abstracting PCI-dependent functions that were typically used for resource querying and page mapping, - introducing a nv_device_is_pci() function that allows to make PCI-dependent code conditional, - providing a nouveau_drm_platform_probe() function that takes a GPU platform device to be probed. Core code as well as engine/subdev drivers are updated wherever possible to make use of these functions. Some older drivers are too dependent on PCI to be properly updated, but all newer code on which future chips may depend should at least be runnable with platform devices. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
42 lines
1 KiB
C
42 lines
1 KiB
C
#ifndef __NOUVEAU_OS_H__
|
|
#define __NOUVEAU_OS_H__
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/slab.h>
|
|
#include <linux/mutex.h>
|
|
#include <linux/pci.h>
|
|
#include <linux/platform_device.h>
|
|
#include <linux/printk.h>
|
|
#include <linux/bitops.h>
|
|
#include <linux/firmware.h>
|
|
#include <linux/module.h>
|
|
#include <linux/i2c.h>
|
|
#include <linux/i2c-algo-bit.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/io-mapping.h>
|
|
#include <linux/acpi.h>
|
|
#include <linux/vmalloc.h>
|
|
#include <linux/dmi.h>
|
|
#include <linux/reboot.h>
|
|
#include <linux/interrupt.h>
|
|
#include <linux/log2.h>
|
|
#include <linux/pm_runtime.h>
|
|
|
|
#include <asm/unaligned.h>
|
|
|
|
#ifndef ioread32_native
|
|
#ifdef __BIG_ENDIAN
|
|
#define ioread16_native ioread16be
|
|
#define iowrite16_native iowrite16be
|
|
#define ioread32_native ioread32be
|
|
#define iowrite32_native iowrite32be
|
|
#else /* def __BIG_ENDIAN */
|
|
#define ioread16_native ioread16
|
|
#define iowrite16_native iowrite16
|
|
#define ioread32_native ioread32
|
|
#define iowrite32_native iowrite32
|
|
#endif /* def __BIG_ENDIAN else */
|
|
#endif /* !ioread32_native */
|
|
|
|
#endif
|