Module Name: src
Committed By: riastradh
Date: Thu Feb 11 04:51:44 UTC 2016
Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_drm.c nouveau_drm.h
src/sys/external/bsd/drm2/nouveau: nouveau_pci.c
Log Message:
Pass a sensible device state pointer to nouveau suspend/resume ops.
Gives nouveau half a chance of suspending and resuming -- not that it
works on my test laptop yet, but it's a start.
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/nouveau/nouveau_pci.c
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/nouveau_drm.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c:1.7 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c:1.7 Tue Oct 27 13:21:18 2015
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c Thu Feb 11 04:51:44 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: nouveau_drm.c,v 1.7 2015/10/27 13:21:18 riastradh Exp $ */
+/* $NetBSD: nouveau_drm.c,v 1.8 2016/02/11 04:51:44 riastradh Exp $ */
/*
* Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_drm.c,v 1.7 2015/10/27 13:21:18 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_drm.c,v 1.8 2016/02/11 04:51:44 riastradh Exp $");
#include <linux/console.h>
#include <linux/module.h>
@@ -612,12 +612,13 @@ fail_display:
return ret;
}
-int nouveau_pmops_suspend(struct device *dev)
-{
#ifdef __NetBSD__
- struct drm_device *drm_dev = device_private(dev);
- struct pci_dev *pdev __unused = drm_dev->pdev;
+int nouveau_pmops_suspend(struct drm_device *drm_dev)
#else
+int nouveau_pmops_suspend(struct device *dev)
+#endif
+{
+#ifndef __NetBSD__
struct pci_dev *pdev = to_pci_dev(dev);
struct drm_device *drm_dev = pci_get_drvdata(pdev);
#endif
@@ -674,12 +675,13 @@ nouveau_do_resume(struct drm_device *dev
return 0;
}
-int nouveau_pmops_resume(struct device *dev)
-{
#ifdef __NetBSD__
- struct drm_device *drm_dev = device_private(dev);
- struct pci_dev *pdev __unused = drm_dev->pdev;
+int nouveau_pmops_resume(struct drm_device *drm_dev)
#else
+int nouveau_pmops_resume(struct device *dev)
+#endif
+{
+#ifndef __NetBSD__
struct pci_dev *pdev = to_pci_dev(dev);
struct drm_device *drm_dev = pci_get_drvdata(pdev);
#endif
Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h:1.3 Thu Oct 29 08:08:52 2015
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h Thu Feb 11 04:51:44 2016
@@ -160,8 +160,13 @@ nouveau_dev(struct drm_device *dev)
return nv_device(nouveau_drm(dev)->device);
}
+#ifdef __NetBSD__
+int nouveau_pmops_suspend(struct drm_device *);
+int nouveau_pmops_resume(struct drm_device *);
+#else
int nouveau_pmops_suspend(struct device *);
int nouveau_pmops_resume(struct device *);
+#endif
#define NV_FATAL(cli, fmt, args...) nv_fatal((cli), fmt, ##args)
#define NV_ERROR(cli, fmt, args...) nv_error((cli), fmt, ##args)
Index: src/sys/external/bsd/drm2/nouveau/nouveau_pci.c
diff -u src/sys/external/bsd/drm2/nouveau/nouveau_pci.c:1.6 src/sys/external/bsd/drm2/nouveau/nouveau_pci.c:1.7
--- src/sys/external/bsd/drm2/nouveau/nouveau_pci.c:1.6 Tue Oct 27 21:46:42 2015
+++ src/sys/external/bsd/drm2/nouveau/nouveau_pci.c Thu Feb 11 04:51:44 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: nouveau_pci.c,v 1.6 2015/10/27 21:46:42 mrg Exp $ */
+/* $NetBSD: nouveau_pci.c,v 1.7 2016/02/11 04:51:44 riastradh Exp $ */
/*-
* Copyright (c) 2015 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_pci.c,v 1.6 2015/10/27 21:46:42 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_pci.c,v 1.7 2016/02/11 04:51:44 riastradh Exp $");
#include <sys/types.h>
#include <sys/device.h>
@@ -208,15 +208,17 @@ out0: pmf_device_deregister(self);
static bool
nouveau_pci_suspend(device_t self, const pmf_qual_t *qual __unused)
{
+ struct nouveau_pci_softc *const sc = device_private(self);
- return nouveau_pmops_suspend(self) == 0;
+ return nouveau_pmops_suspend(sc->sc_drm_dev) == 0;
}
static bool
nouveau_pci_resume(device_t self, const pmf_qual_t *qual)
{
+ struct nouveau_pci_softc *const sc = device_private(self);
- return nouveau_pmops_resume(self) == 0;
+ return nouveau_pmops_resume(sc->sc_drm_dev) == 0;
}
static void