Re: [PATCH v1] Support Intel Xe GPU dirver Porting on RISC-V Architecture
From: ZhangZhiJie
Date: Wed Oct 29 2025 - 23:28:15 EST
On 2025/10/30 09:55, Jeff Geerling wrote:
+1 for this patch, as it would enable Xe on any non-x86 system.Congratulation! . So I think shoule be disable this ops or take other ways to instead this code, Like None IO soc/ARCH
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 <zhangzhijie@xxxxxxxxxx> wrote:
inb/outb speccial wire not support on other ARCH.
Should detect whether arch platform support or not.
Signed-off-by: zhangzhijie <zhangzhijie@xxxxxxxxxx>
---
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