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_ */

Reply via email to