i915: Use new acpidisp_register_notify for ACPI VGA events.diff -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.c
(riastradh)
--- 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 | |||
615 | void intel_opregion_asle_intr(struct drm_i915_private *dev_priv) | 619 | void 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__ | |
626 | static struct intel_opregion *system_opregion; | |||
627 | ||||
628 | static void | 630 | static void | |
629 | intel_opregion_video_event(ACPI_HANDLE hdl, uint32_t notify, void *opaque) | 631 | intel_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 | */ | |
655 | static int intel_opregion_video_event(struct notifier_block *nb, | 655 | static 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 | |||
1141 | void intel_opregion_register(struct drm_i915_private *i915) | 1141 | void 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 | |||
1167 | void intel_opregion_resume(struct drm_i915_private *i915) | 1163 | void 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 | |||
1213 | void intel_opregion_unregister(struct drm_i915_private *i915) | 1209 | void 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 |
--- 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; | |||
41 | struct intel_opregion { | 41 | struct 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 | |||
61 | int intel_opregion_setup(struct drm_i915_private *dev_priv); | 65 | int intel_opregion_setup(struct drm_i915_private *dev_priv); | |
62 | 66 | |||
63 | void intel_opregion_register(struct drm_i915_private *dev_priv); | 67 | void intel_opregion_register(struct drm_i915_private *dev_priv); | |
64 | void intel_opregion_unregister(struct drm_i915_private *dev_priv); | 68 | void intel_opregion_unregister(struct drm_i915_private *dev_priv); | |
65 | 69 | |||
66 | void intel_opregion_resume(struct drm_i915_private *dev_priv); | 70 | void intel_opregion_resume(struct drm_i915_private *dev_priv); | |
67 | void intel_opregion_suspend(struct drm_i915_private *dev_priv, | 71 | void intel_opregion_suspend(struct drm_i915_private *dev_priv, |
--- 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 | |||
3 | version 20180827 | 3 | version 20180827 | |
4 | 4 | |||
5 | define intelfbbus { } | 5 | define intelfbbus { } | |
6 | device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810, firmload | 6 | device i915drmkms: acpivga, drmkms, drmkms_pci, intelfbbus, agp_i810, firmload | |
7 | attach i915drmkms at pci | 7 | attach i915drmkms at pci | |
8 | 8 | |||
9 | device intelfb: intelfbbus, drmfb, drmfb_pci, wsemuldisplaydev | 9 | device intelfb: intelfbbus, drmfb, drmfb_pci, wsemuldisplaydev | |
10 | attach intelfb at intelfbbus | 10 | attach 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. | |
14 | makeoptions i915drmkms "COPTS.i915drmkms"+="-fwrapv" | 14 | makeoptions i915drmkms "COPTS.i915drmkms"+="-fwrapv" | |
15 | 15 | |||
16 | makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-I$S/external/bsd/drm2/i915drm" | 16 | makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-I$S/external/bsd/drm2/i915drm" | |
17 | makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-I$S/external/bsd/drm2/dist/drm/i915" | 17 | makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-I$S/external/bsd/drm2/dist/drm/i915" | |
18 | 18 | |||
19 | makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-DCONFIG_DRM_FBDEV_EMULATION=1" | 19 | makeoptions i915drmkms "CPPFLAGS.i915drmkms"+="-DCONFIG_DRM_FBDEV_EMULATION=1" |
--- 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 | |||
49 | MODULE(MODULE_CLASS_DRIVER, i915drmkms, "drmkms,drmkms_pci"); /* XXX drmkms_i2c */ | 49 | MODULE(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 | |||
55 | struct drm_sysctl_def i915_def = DRM_SYSCTL_INIT(); | 55 | struct 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 */ | |
58 | extern spinlock_t i915_sw_fence_lock; | 58 | extern spinlock_t i915_sw_fence_lock; | |
59 | extern spinlock_t *const i915_schedule_lock; | 59 | extern spinlock_t *const i915_schedule_lock; | |
60 | 60 | |||
61 | int i915_global_buddy_init(void); /* XXX */ | 61 | int i915_global_buddy_init(void); /* XXX */ | |
62 | 62 |