On 2025/10/30 09:55, Jeff Geerling wrote:
+1 for this patch, as it would enable Xe on any non-x86 system.

I've successfully tested this change on Ampere and Broadcom (Raspberry Pi) 
systems.

We've been using the flag `CONFIG_VGA_CONSOLE` instead of `CONFIG_X86` but 
either should achieve the same goal. See: 
https://github.com/6by9/linux/commit/6bd4cfe79b5111986dd11a5c6e48d4a963fd7740

With some OSes a later Mesa version needs to be compiled to support newer 
Xe/Xe2 cards, however I've successfully tested a number of Intel dGPUs at this 
point. Sometimes setting force probe to '*' (or the particular GPU ID) is 
required, but otherwise stability is good.

For example, the A750: 
https://github.com/geerlingguy/raspberry-pi-pcie-devices/issues/510#issuecomment-3383284831

On Jul 15, 2025, at 1:18 AM, zhangzhijie <[email protected]> wrote:

    inb/outb speccial wire not support on other ARCH.
Should detect whether arch platform support or not.

Signed-off-by: zhangzhijie <[email protected]>
---
drivers/gpu/drm/i915/display/intel_vga.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_vga.c 
b/drivers/gpu/drm/i915/display/intel_vga.c
index 4b98833bfa8c..5e48e3282670 100644
--- a/drivers/gpu/drm/i915/display/intel_vga.c
+++ b/drivers/gpu/drm/i915/display/intel_vga.c
@@ -33,6 +33,7 @@ void intel_vga_disable(struct drm_i915_private *dev_priv)
if (intel_de_read(dev_priv, vga_reg) & VGA_DISP_DISABLE)
return;

+#if defined(CONFIG_X86) || defined(CONFIG_X86_64)
/* WaEnableVGAAccessThroughIOPort:ctg,elk,ilk,snb,ivb,vlv,hsw */
vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO);
outb(0x01, VGA_SEQ_I);
@@ -40,6 +41,7 @@ void intel_vga_disable(struct drm_i915_private *dev_priv)
outb(sr1 | VGA_SR01_SCREEN_OFF, VGA_SEQ_D);
vga_put(pdev, VGA_RSRC_LEGACY_IO);
udelay(300);
+#endif

intel_de_write(dev_priv, vga_reg, VGA_DISP_DISABLE);
intel_de_posting_read(dev_priv, vga_reg);
@@ -80,6 +82,7 @@ void intel_vga_redisable(struct drm_i915_private *i915)

void intel_vga_reset_io_mem(struct drm_i915_private *i915)
{
+#if defined(CONFIG_X86) || defined(CONFIG_X86_64)
struct pci_dev *pdev = to_pci_dev(i915->drm.dev);

/*
@@ -95,6 +98,7 @@ void intel_vga_reset_io_mem(struct drm_i915_private *i915)
vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO);
outb(inb(VGA_MIS_R), VGA_MIS_W);
vga_put(pdev, VGA_RSRC_LEGACY_IO);
+#endif
}

int intel_vga_register(struct drm_i915_private *i915)
--
2.34.1


Congratulation! . So I think shoule be disable this ops or take other ways to instead this code, Like None IO soc/ARCH

Reply via email to