Module Name: src
Committed By: jmcneill
Date: Sat Oct 17 21:13:38 UTC 2015
Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device:
nouveau_engine_device_base.c
src/sys/external/bsd/drm2/include/linux: platform_device.h
Log Message:
support for non-PCI devices
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/include/linux/platform_device.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.4 Fri Mar 6 13:44:18 2015
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c Sat Oct 17 21:13:38 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: nouveau_engine_device_base.c,v 1.4 2015/03/06 13:44:18 riastradh Exp $ */
+/* $NetBSD: nouveau_engine_device_base.c,v 1.5 2015/10/17 21:13:38 jmcneill Exp $ */
/*
* Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.4 2015/03/06 13:44:18 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.5 2015/10/17 21:13:38 jmcneill Exp $");
#include <core/object.h>
#include <core/device.h>
@@ -528,8 +528,8 @@ nv_device_resource_tag(struct nouveau_de
else
return pa->pa_iot;
} else {
- /* XXX nouveau platform device */
- panic("can't handle non-PCI nouveau devices");
+ KASSERT(bar < device->platformdev->nresource);
+ return device->platformdev->resource[bar].tag;
}
}
#endif
@@ -541,8 +541,9 @@ nv_device_resource_start(struct nouveau_
return pci_resource_start(device->pdev, bar);
} else {
#ifdef __NetBSD__
- /* XXX nouveau platform device */
- panic("can't handle non-PCI nouveau devices");
+ if (bar >= device->platformdev->nresource)
+ return 0;
+ return device->platformdev->resource[bar].start;
#else
struct resource *res;
res = platform_get_resource(device->platformdev,
@@ -561,8 +562,9 @@ nv_device_resource_len(struct nouveau_de
return pci_resource_len(device->pdev, bar);
} else {
#ifdef __NetBSD__
- /* XXX nouveau platform device */
- panic("can't handle non-PCI nouveau devices");
+ if (bar >= device->platformdev->nresource)
+ return 0;
+ return device->platformdev->resource[bar].len;
#else
struct resource *res;
res = platform_get_resource(device->platformdev,
Index: src/sys/external/bsd/drm2/include/linux/platform_device.h
diff -u src/sys/external/bsd/drm2/include/linux/platform_device.h:1.4 src/sys/external/bsd/drm2/include/linux/platform_device.h:1.5
--- src/sys/external/bsd/drm2/include/linux/platform_device.h:1.4 Wed Aug 6 15:01:33 2014
+++ src/sys/external/bsd/drm2/include/linux/platform_device.h Sat Oct 17 21:13:38 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: platform_device.h,v 1.4 2014/08/06 15:01:33 riastradh Exp $ */
+/* $NetBSD: platform_device.h,v 1.5 2015/10/17 21:13:38 jmcneill Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -33,10 +33,20 @@
#define _LINUX_PLATFORM_DEVICE_H_
#include <sys/device.h>
+#include <sys/bus.h>
+
+#define NUM_PLATFORM_RESOURCE 2
struct platform_device {
struct device dev; /* XXX DON'T BELIEVE ME */
uint64_t id;
+
+ unsigned int nresource;
+ struct {
+ bus_space_tag_t tag;
+ bus_addr_t start;
+ bus_size_t len;
+ } resource[NUM_PLATFORM_RESOURCE];
};
#endif /* _LINUX_PLATFORM_DEVICE_H_ */