Sun Feb 27 21:22:01 2022 UTC ()
i915: Use new acpidisp_register_notify for ACPI VGA events.


(riastradh)
diff -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.c
diff -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h
diff -r1.85 -r1.86 src/sys/external/bsd/drm2/i915drm/files.i915drmkms
diff -r1.17 -r1.18 src/sys/external/bsd/drm2/i915drm/i915_module.c

cvs diff -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.c (expand / switch to unified diff)

--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.c 2021/12/24 15:08:09 1.5
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.c 2022/02/27 21:22:01 1.6
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: intel_opregion.c,v 1.5 2021/12/24 15:08:09 riastradh Exp $ */ 1/* $NetBSD: intel_opregion.c,v 1.6 2022/02/27 21:22:01 riastradh Exp $ */
2 2
3/* 3/*
4 * Copyright 2008 Intel Corporation <hong.liu@intel.com> 4 * Copyright 2008 Intel Corporation <hong.liu@intel.com>
5 * Copyright 2008 Red Hat <mjg@redhat.com> 5 * Copyright 2008 Red Hat <mjg@redhat.com>
6 * 6 *
7 * Permission is hereby granted, free of charge, to any person obtaining 7 * Permission is hereby granted, free of charge, to any person obtaining
8 * a copy of this software and associated documentation files (the 8 * a copy of this software and associated documentation files (the
9 * "Software"), to deal in the Software without restriction, including 9 * "Software"), to deal in the Software without restriction, including
10 * without limitation the rights to use, copy, modify, merge, publish, 10 * without limitation the rights to use, copy, modify, merge, publish,
11 * distribute, sub license, and/or sell copies of the Software, and to 11 * distribute, sub license, and/or sell copies of the Software, and to
12 * permit persons to whom the Software is furnished to do so, subject to 12 * permit persons to whom the Software is furnished to do so, subject to
13 * the following conditions: 13 * the following conditions:
14 * 14 *
@@ -18,27 +18,31 @@ @@ -18,27 +18,31 @@
18 * 18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22 * NON-INFRINGEMENT. IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE 22 * NON-INFRINGEMENT. IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE
23 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 23 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
24 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 24 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 25 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26 * SOFTWARE. 26 * SOFTWARE.
27 * 27 *
28 */ 28 */
29 29
30#include <sys/cdefs.h> 30#include <sys/cdefs.h>
31__KERNEL_RCSID(0, "$NetBSD: intel_opregion.c,v 1.5 2021/12/24 15:08:09 riastradh Exp $"); 31__KERNEL_RCSID(0, "$NetBSD: intel_opregion.c,v 1.6 2022/02/27 21:22:01 riastradh Exp $");
 32
 33#ifdef __NetBSD__
 34#include <dev/acpi/acpi_display.h>
 35#endif
32 36
33#include <linux/acpi.h> 37#include <linux/acpi.h>
34#include <linux/dmi.h> 38#include <linux/dmi.h>
35#include <linux/firmware.h> 39#include <linux/firmware.h>
36#include <acpi/video.h> 40#include <acpi/video.h>
37 41
38#include <drm/i915_drm.h> 42#include <drm/i915_drm.h>
39 43
40#include "display/intel_panel.h" 44#include "display/intel_panel.h"
41 45
42#include "i915_drv.h" 46#include "i915_drv.h"
43#include "intel_display_types.h" 47#include "intel_display_types.h"
44#include "intel_opregion.h" 48#include "intel_opregion.h"
@@ -613,47 +617,43 @@ static void asle_work(struct work_struct @@ -613,47 +617,43 @@ static void asle_work(struct work_struct
613} 617}
614 618
615void intel_opregion_asle_intr(struct drm_i915_private *dev_priv) 619void intel_opregion_asle_intr(struct drm_i915_private *dev_priv)
616{ 620{
617 if (dev_priv->opregion.asle) 621 if (dev_priv->opregion.asle)
618 schedule_work(&dev_priv->opregion.asle_work); 622 schedule_work(&dev_priv->opregion.asle_work);
619} 623}
620 624
621#define ACPI_EV_DISPLAY_SWITCH (1<<0) 625#define ACPI_EV_DISPLAY_SWITCH (1<<0)
622#define ACPI_EV_LID (1<<1) 626#define ACPI_EV_LID (1<<1)
623#define ACPI_EV_DOCK (1<<2) 627#define ACPI_EV_DOCK (1<<2)
624 628
625#ifdef __NetBSD__ 629#ifdef __NetBSD__
626static struct intel_opregion *system_opregion; 
627 
628static void 630static void
629intel_opregion_video_event(ACPI_HANDLE hdl, uint32_t notify, void *opaque) 631intel_opregion_video_event(ACPI_HANDLE hdl, uint32_t notify, void *cookie)
630{ 632{
631 device_t self = opaque; 633 struct intel_opregion *opregion = cookie;
632 struct opregion_acpi *acpi; 634 struct opregion_acpi *acpi = opregion->acpi;
633 635
634 DRM_DEBUG_DRIVER("notify=0x%08x\n", notify); 636 DRM_DEBUG_DRIVER("notify=0x%08x csts=0x%02x cevt=0x%02x\n", notify,
 637 acpi->csts, acpi->cevt);
635 638
636 if (!system_opregion) 639 /*
 640 * The firmware sets CSTS to 0x03 `Dispatched (ASL)' before
 641 * issuing any graphics notification, and won't issue
 642 * additional notifications until the graphics driver sets CSTS
 643 * to 0x00 `Success (Driver)' to acknowledge it.
 644 */
 645 if (acpi->csts != 0x03)
637 return; 646 return;
638 
639 acpi = system_opregion->acpi; 
640 
641 if (notify != 0x80) { 
642 aprint_error_dev(self, "unknown notify 0x%02x\n", notify); 
643 } else if ((acpi->cevt & 1) == 0) { 
644 aprint_error_dev(self, "bad notify\n"); 
645 } 
646 
647 acpi->csts = 0; 647 acpi->csts = 0;
648} 648}
649#else /* !__NetBSD__ */ 649#else /* !__NetBSD__ */
650/* 650/*
651 * The only video events relevant to opregion are 0x80. These indicate either a 651 * The only video events relevant to opregion are 0x80. These indicate either a
652 * docking event, lid switch or display switch request. In Linux, these are 652 * docking event, lid switch or display switch request. In Linux, these are
653 * handled by the dock, button and video drivers. 653 * handled by the dock, button and video drivers.
654 */ 654 */
655static int intel_opregion_video_event(struct notifier_block *nb, 655static int intel_opregion_video_event(struct notifier_block *nb,
656 unsigned long val, void *data) 656 unsigned long val, void *data)
657{ 657{
658 struct intel_opregion *opregion = container_of(nb, struct intel_opregion, 658 struct intel_opregion *opregion = container_of(nb, struct intel_opregion,
659 acpi_notifier); 659 acpi_notifier);
@@ -1137,33 +1137,29 @@ intel_opregion_get_panel_type(struct drm @@ -1137,33 +1137,29 @@ intel_opregion_get_panel_type(struct drm
1137 1137
1138 return ret - 1; 1138 return ret - 1;
1139} 1139}
1140 1140
1141void intel_opregion_register(struct drm_i915_private *i915) 1141void intel_opregion_register(struct drm_i915_private *i915)
1142{ 1142{
1143 struct intel_opregion *opregion = &i915->opregion; 1143 struct intel_opregion *opregion = &i915->opregion;
1144 1144
1145 if (!opregion->header) 1145 if (!opregion->header)
1146 return; 1146 return;
1147 1147
1148 if (opregion->acpi) { 1148 if (opregion->acpi) {
1149#ifdef __NetBSD__ 1149#ifdef __NetBSD__
1150 if (i915->drm.pdev->pd_ad != NULL) { 1150 opregion->acpi_notifier =
1151 /* XXX gross but expedient */ 1151 acpidisp_register_notify(intel_opregion_video_event,
1152 KASSERT(system_opregion == NULL); 1152 opregion);
1153 system_opregion = opregion; 
1154 acpi_register_notify(i915->drm.pdev->pd_ad, 
1155 intel_opregion_video_event); 
1156 } 
1157#else 1153#else
1158 opregion->acpi_notifier.notifier_call = 1154 opregion->acpi_notifier.notifier_call =
1159 intel_opregion_video_event; 1155 intel_opregion_video_event;
1160 register_acpi_notifier(&opregion->acpi_notifier); 1156 register_acpi_notifier(&opregion->acpi_notifier);
1161#endif 1157#endif
1162 } 1158 }
1163 1159
1164 intel_opregion_resume(i915); 1160 intel_opregion_resume(i915);
1165} 1161}
1166 1162
1167void intel_opregion_resume(struct drm_i915_private *i915) 1163void intel_opregion_resume(struct drm_i915_private *i915)
1168{ 1164{
1169 struct intel_opregion *opregion = &i915->opregion; 1165 struct intel_opregion *opregion = &i915->opregion;
@@ -1210,29 +1206,29 @@ void intel_opregion_suspend(struct drm_i @@ -1210,29 +1206,29 @@ void intel_opregion_suspend(struct drm_i
1210 opregion->acpi->drdy = 0; 1206 opregion->acpi->drdy = 0;
1211} 1207}
1212 1208
1213void intel_opregion_unregister(struct drm_i915_private *i915) 1209void intel_opregion_unregister(struct drm_i915_private *i915)
1214{ 1210{
1215 struct intel_opregion *opregion = &i915->opregion; 1211 struct intel_opregion *opregion = &i915->opregion;
1216 1212
1217 intel_opregion_suspend(i915, PCI_D1); 1213 intel_opregion_suspend(i915, PCI_D1);
1218 1214
1219 if (!opregion->header) 1215 if (!opregion->header)
1220 return; 1216 return;
1221 1217
1222#ifdef __NetBSD__ 1218#ifdef __NetBSD__
1223 if (opregion->acpi) { 1219 if (opregion->acpi_notifier) {
1224 if (i915->drm.pdev->pd_ad != NULL) 1220 acpidisp_deregister_notify(opregion->acpi_notifier);
1225 acpi_deregister_notify(i915->drm.pdev->pd_ad); 1221 opregion->acpi_notifier = NULL;
1226 } 1222 }
1227#else 1223#else
1228 if (opregion->acpi_notifier.notifier_call) { 1224 if (opregion->acpi_notifier.notifier_call) {
1229 unregister_acpi_notifier(&opregion->acpi_notifier); 1225 unregister_acpi_notifier(&opregion->acpi_notifier);
1230 opregion->acpi_notifier.notifier_call = NULL; 1226 opregion->acpi_notifier.notifier_call = NULL;
1231 } 1227 }
1232#endif 1228#endif
1233 1229
1234 /* just clear all opregion memory pointers now */ 1230 /* just clear all opregion memory pointers now */
1235#ifdef __NetBSD__ 1231#ifdef __NetBSD__
1236 size_t rvds = opregion->asle->rvds; 1232 size_t rvds = opregion->asle->rvds;
1237 AcpiOsUnmapMemory(opregion->header, OPREGION_SIZE); 1233 AcpiOsUnmapMemory(opregion->header, OPREGION_SIZE);
1238#else 1234#else

cvs diff -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h (expand / switch to unified diff)

--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h 2021/12/24 15:08:09 1.4
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h 2022/02/27 21:22:01 1.5
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: intel_opregion.h,v 1.4 2021/12/24 15:08:09 riastradh Exp $ */ 1/* $NetBSD: intel_opregion.h,v 1.5 2022/02/27 21:22:01 riastradh Exp $ */
2 2
3/* 3/*
4 * Copyright © 2008-2017 Intel Corporation 4 * Copyright © 2008-2017 Intel Corporation
5 * 5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a 6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the "Software"), 7 * copy of this software and associated documentation files (the "Software"),
8 * to deal in the Software without restriction, including without limitation 8 * to deal in the Software without restriction, including without limitation
9 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 * and/or sell copies of the Software, and to permit persons to whom the 10 * and/or sell copies of the Software, and to permit persons to whom the
11 * Software is furnished to do so, subject to the following conditions: 11 * Software is furnished to do so, subject to the following conditions:
12 * 12 *
13 * The above copyright notice and this permission notice (including the next 13 * The above copyright notice and this permission notice (including the next
14 * paragraph) shall be included in all copies or substantial portions of the 14 * paragraph) shall be included in all copies or substantial portions of the
@@ -41,27 +41,31 @@ struct opregion_asle; @@ -41,27 +41,31 @@ struct opregion_asle;
41struct intel_opregion { 41struct intel_opregion {
42 struct opregion_header *header; 42 struct opregion_header *header;
43 struct opregion_acpi *acpi; 43 struct opregion_acpi *acpi;
44 struct opregion_swsci *swsci; 44 struct opregion_swsci *swsci;
45 u32 swsci_gbda_sub_functions; 45 u32 swsci_gbda_sub_functions;
46 u32 swsci_sbcb_sub_functions; 46 u32 swsci_sbcb_sub_functions;
47 struct opregion_asle *asle; 47 struct opregion_asle *asle;
48 void *rvda; 48 void *rvda;
49 void *vbt_firmware; 49 void *vbt_firmware;
50 const void *vbt; 50 const void *vbt;
51 u32 vbt_size; 51 u32 vbt_size;
52 u32 *lid_state; 52 u32 *lid_state;
53 struct work_struct asle_work; 53 struct work_struct asle_work;
 54#ifdef __NetBSD__
 55 struct acpidisp_notifier *acpi_notifier;
 56#else
54 struct notifier_block acpi_notifier; 57 struct notifier_block acpi_notifier;
 58#endif
55}; 59};
56 60
57#define OPREGION_SIZE (8 * 1024) 61#define OPREGION_SIZE (8 * 1024)
58 62
59#ifdef CONFIG_ACPI 63#ifdef CONFIG_ACPI
60 64
61int intel_opregion_setup(struct drm_i915_private *dev_priv); 65int intel_opregion_setup(struct drm_i915_private *dev_priv);
62 66
63void intel_opregion_register(struct drm_i915_private *dev_priv); 67void intel_opregion_register(struct drm_i915_private *dev_priv);
64void intel_opregion_unregister(struct drm_i915_private *dev_priv); 68void intel_opregion_unregister(struct drm_i915_private *dev_priv);
65 69
66void intel_opregion_resume(struct drm_i915_private *dev_priv); 70void intel_opregion_resume(struct drm_i915_private *dev_priv);
67void intel_opregion_suspend(struct drm_i915_private *dev_priv, 71void intel_opregion_suspend(struct drm_i915_private *dev_priv,

cvs diff -r1.85 -r1.86 src/sys/external/bsd/drm2/i915drm/files.i915drmkms (expand / switch to unified diff)

--- src/sys/external/bsd/drm2/i915drm/files.i915drmkms 2021/12/21 12:55:23 1.85
+++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms 2022/02/27 21:22:01 1.86
@@ -1,19 +1,19 @@ @@ -1,19 +1,19 @@
1# $NetBSD: files.i915drmkms,v 1.85 2021/12/21 12:55:23 tnn Exp $ 1# $NetBSD: files.i915drmkms,v 1.86 2022/02/27 21:22:01 riastradh Exp $
2 2
3version 20180827 3version 20180827
4 4
5define intelfbbus { } 5define intelfbbus { }
6device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810, firmload 6device i915drmkms: acpivga, drmkms, drmkms_pci, intelfbbus, agp_i810, firmload
7attach i915drmkms at pci 7attach i915drmkms at pci
8 8
9device intelfb: intelfbbus, drmfb, drmfb_pci, wsemuldisplaydev 9device intelfb: intelfbbus, drmfb, drmfb_pci, wsemuldisplaydev
10attach intelfb at intelfbbus 10attach intelfb at intelfbbus
11 11
12# This code comes from the Linux kernel, which assumes signed 12# This code comes from the Linux kernel, which assumes signed
13# overflow is OK. 13# overflow is OK.
14makeoptions i915drmkms "COPTS.i915drmkms"+="-fwrapv" 14makeoptions i915drmkms "COPTS.i915drmkms"+="-fwrapv"
15 15
16makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-I$S/external/bsd/drm2/i915drm" 16makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-I$S/external/bsd/drm2/i915drm"
17makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-I$S/external/bsd/drm2/dist/drm/i915" 17makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-I$S/external/bsd/drm2/dist/drm/i915"
18 18
19makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-DCONFIG_DRM_FBDEV_EMULATION=1" 19makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-DCONFIG_DRM_FBDEV_EMULATION=1"

cvs diff -r1.17 -r1.18 src/sys/external/bsd/drm2/i915drm/i915_module.c (expand / switch to unified diff)

--- src/sys/external/bsd/drm2/i915drm/i915_module.c 2021/12/19 11:49:12 1.17
+++ src/sys/external/bsd/drm2/i915drm/i915_module.c 2022/02/27 21:22:01 1.18
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: i915_module.c,v 1.17 2021/12/19 11:49:12 riastradh Exp $ */ 1/* $NetBSD: i915_module.c,v 1.18 2022/02/27 21:22:01 riastradh Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2013 The NetBSD Foundation, Inc. 4 * Copyright (c) 2013 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Taylor R. Campbell. 8 * by Taylor R. Campbell.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -20,43 +20,43 @@ @@ -20,43 +20,43 @@
20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE. 29 * POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32#include <sys/cdefs.h> 32#include <sys/cdefs.h>
33__KERNEL_RCSID(0, "$NetBSD: i915_module.c,v 1.17 2021/12/19 11:49:12 riastradh Exp $"); 33__KERNEL_RCSID(0, "$NetBSD: i915_module.c,v 1.18 2022/02/27 21:22:01 riastradh Exp $");
34 34
35#include <sys/types.h> 35#include <sys/types.h>
36#include <sys/module.h> 36#include <sys/module.h>
37#ifndef _MODULE 37#ifndef _MODULE
38#include <sys/once.h> 38#include <sys/once.h>
39#endif 39#endif
40#include <sys/systm.h> 40#include <sys/systm.h>
41 41
42#include <drm/drm_device.h> 42#include <drm/drm_device.h>
43#include <drm/drm_sysctl.h> 43#include <drm/drm_sysctl.h>
44 44
45#include "i915_drv.h" 45#include "i915_drv.h"
46#include "i915_globals.h" 46#include "i915_globals.h"
47#include "gt/intel_rps.h" 47#include "gt/intel_rps.h"
48 48
49MODULE(MODULE_CLASS_DRIVER, i915drmkms, "drmkms,drmkms_pci"); /* XXX drmkms_i2c */ 49MODULE(MODULE_CLASS_DRIVER, i915drmkms, "acpivga,drmkms,drmkms_pci"); /* XXX drmkms_i2c */
50 50
51#ifdef _MODULE 51#ifdef _MODULE
52#include "ioconf.c" 52#include "ioconf.c"
53#endif 53#endif
54 54
55struct drm_sysctl_def i915_def = DRM_SYSCTL_INIT(); 55struct drm_sysctl_def i915_def = DRM_SYSCTL_INIT();
56 56
57/* XXX use link sets for DEFINE_SPINLOCK */ 57/* XXX use link sets for DEFINE_SPINLOCK */
58extern spinlock_t i915_sw_fence_lock; 58extern spinlock_t i915_sw_fence_lock;
59extern spinlock_t *const i915_schedule_lock; 59extern spinlock_t *const i915_schedule_lock;
60 60
61int i915_global_buddy_init(void); /* XXX */ 61int i915_global_buddy_init(void); /* XXX */
62 62