diff options
| author | Jani Nikula <jani.nikula@intel.com> | 2025-11-19 21:52:51 +0300 |
|---|---|---|
| committer | Jani Nikula <jani.nikula@intel.com> | 2025-11-21 13:12:56 +0300 |
| commit | aa4dc3eeff6d5c47ed08905e5cf7b9b77a646fea (patch) | |
| tree | 9d32235403e7353f1468615b0555033a588766e4 | |
| parent | fff15f68eb06af4a77e349d419717bc9a2f4b37b (diff) | |
| download | linux-aa4dc3eeff6d5c47ed08905e5cf7b9b77a646fea.tar.xz | |
drm/i915: merge soc/intel_gmch.[ch] to display/intel_vga.c
The sole user of the remaining functions in intel_gmch.[ch] is in
intel_vga.c. Move everything there.
Since intel_gmch.c hasn't been part of xe, use a dummy function
relocated from xe_display_misc.c, with #ifdef. This is purely to keep
this change non-functional.
This allows us to remove soc/intel_gmch.[ch] from i915, compat
soc/intel_gmch.h from xe, and xe_display_misc.c from xe.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patch.msgid.link/b0f853ad7eae686738defa9e8f08a8848df8f226.1763578288.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
| -rw-r--r-- | drivers/gpu/drm/i915/Makefile | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_vga.c | 52 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/soc/intel_gmch.c | 56 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/soc/intel_gmch.h | 15 | ||||
| -rw-r--r-- | drivers/gpu/drm/xe/Makefile | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h | 6 | ||||
| -rw-r--r-- | drivers/gpu/drm/xe/display/xe_display_misc.c | 16 |
7 files changed, 50 insertions, 100 deletions
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index 1b169ae8f72c..83d70038c337 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -57,10 +57,6 @@ i915-y += \ vlv_iosf_sb.o \ vlv_suspend.o -# core peripheral code -i915-y += \ - soc/intel_gmch.o - # core library code i915-y += \ i915_memcpy.o \ diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c index 6e125564db34..5e516c79e2f7 100644 --- a/drivers/gpu/drm/i915/display/intel_vga.c +++ b/drivers/gpu/drm/i915/display/intel_vga.c @@ -9,12 +9,12 @@ #include <drm/drm_device.h> #include <drm/drm_print.h> +#include <drm/intel/i915_drm.h> #include <video/vga.h> -#include "soc/intel_gmch.h" - #include "intel_de.h" #include "intel_display.h" +#include "intel_display_types.h" #include "intel_vga.h" #include "intel_vga_regs.h" @@ -95,6 +95,54 @@ void intel_vga_reset_io_mem(struct intel_display *display) vga_put(pdev, VGA_RSRC_LEGACY_IO); } +#ifdef I915 +static int intel_gmch_vga_set_state(struct intel_display *display, bool enable_decode) +{ + struct pci_dev *pdev = to_pci_dev(display->drm->dev); + unsigned int reg = DISPLAY_VER(display) >= 6 ? SNB_GMCH_CTRL : INTEL_GMCH_CTRL; + u16 gmch_ctrl; + + if (pci_bus_read_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, &gmch_ctrl)) { + drm_err(display->drm, "failed to read control word\n"); + return -EIO; + } + + if (!!(gmch_ctrl & INTEL_GMCH_VGA_DISABLE) == !enable_decode) + return 0; + + if (enable_decode) + gmch_ctrl &= ~INTEL_GMCH_VGA_DISABLE; + else + gmch_ctrl |= INTEL_GMCH_VGA_DISABLE; + + if (pci_bus_write_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, gmch_ctrl)) { + drm_err(display->drm, "failed to write control word\n"); + return -EIO; + } + + return 0; +} + +static unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode) +{ + struct intel_display *display = to_intel_display(pdev); + + intel_gmch_vga_set_state(display, enable_decode); + + if (enable_decode) + return VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM | + VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM; + else + return VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM; +} +#else +static unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode) +{ + /* ToDo: Implement the actual handling of vga decode */ + return 0; +} +#endif + int intel_vga_register(struct intel_display *display) { diff --git a/drivers/gpu/drm/i915/soc/intel_gmch.c b/drivers/gpu/drm/i915/soc/intel_gmch.c deleted file mode 100644 index 4e7abe056551..000000000000 --- a/drivers/gpu/drm/i915/soc/intel_gmch.c +++ /dev/null @@ -1,56 +0,0 @@ -// SPDX-License-Identifier: MIT -/* - * Copyright © 2023 Intel Corporation - */ - -#include <linux/pci.h> -#include <linux/vgaarb.h> - -#include <drm/drm_print.h> -#include <drm/intel/i915_drm.h> - -#include "../display/intel_display_core.h" /* FIXME */ -#include "../display/intel_display_types.h" /* FIXME */ - -#include "intel_gmch.h" -#include "intel_pci_config.h" - -static int intel_gmch_vga_set_state(struct intel_display *display, bool enable_decode) -{ - struct pci_dev *pdev = to_pci_dev(display->drm->dev); - unsigned int reg = DISPLAY_VER(display) >= 6 ? SNB_GMCH_CTRL : INTEL_GMCH_CTRL; - u16 gmch_ctrl; - - if (pci_bus_read_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, &gmch_ctrl)) { - drm_err(display->drm, "failed to read control word\n"); - return -EIO; - } - - if (!!(gmch_ctrl & INTEL_GMCH_VGA_DISABLE) == !enable_decode) - return 0; - - if (enable_decode) - gmch_ctrl &= ~INTEL_GMCH_VGA_DISABLE; - else - gmch_ctrl |= INTEL_GMCH_VGA_DISABLE; - - if (pci_bus_write_config_word(pdev->bus, PCI_DEVFN(0, 0), reg, gmch_ctrl)) { - drm_err(display->drm, "failed to write control word\n"); - return -EIO; - } - - return 0; -} - -unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode) -{ - struct intel_display *display = to_intel_display(pdev); - - intel_gmch_vga_set_state(display, enable_decode); - - if (enable_decode) - return VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM | - VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM; - else - return VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM; -} diff --git a/drivers/gpu/drm/i915/soc/intel_gmch.h b/drivers/gpu/drm/i915/soc/intel_gmch.h deleted file mode 100644 index bc3421ab5ba6..000000000000 --- a/drivers/gpu/drm/i915/soc/intel_gmch.h +++ /dev/null @@ -1,15 +0,0 @@ -/* SPDX-License-Identifier: MIT */ -/* - * Copyright © 2023 Intel Corporation - */ - -#ifndef __INTEL_GMCH_H__ -#define __INTEL_GMCH_H__ - -#include <linux/types.h> - -struct pci_dev; - -unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode); - -#endif /* __INTEL_GMCH_H__ */ diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile index f4315b014826..ac2659f40642 100644 --- a/drivers/gpu/drm/xe/Makefile +++ b/drivers/gpu/drm/xe/Makefile @@ -202,7 +202,6 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ display/intel_fb_bo.o \ display/intel_fbdev_fb.o \ display/xe_display.o \ - display/xe_display_misc.o \ display/xe_display_rpm.o \ display/xe_display_wa.o \ display/xe_dsb_buffer.o \ diff --git a/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h b/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h deleted file mode 100644 index 33c5257b3a71..000000000000 --- a/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h +++ /dev/null @@ -1,6 +0,0 @@ -/* SPDX-License-Identifier: MIT */ -/* - * Copyright © 2023 Intel Corporation - */ - -#include "../../../i915/soc/intel_gmch.h" diff --git a/drivers/gpu/drm/xe/display/xe_display_misc.c b/drivers/gpu/drm/xe/display/xe_display_misc.c deleted file mode 100644 index 242c2ef4ca93..000000000000 --- a/drivers/gpu/drm/xe/display/xe_display_misc.c +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: MIT -/* - * Copyright © 2023 Intel Corporation - */ - -#include "intel_display_types.h" - -struct pci_dev; - -unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode); - -unsigned int intel_gmch_vga_set_decode(struct pci_dev *pdev, bool enable_decode) -{ - /* ToDo: Implement the actual handling of vga decode */ - return 0; -} |
