+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
> 
> 

Reply via email to