The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH v1] Support Intel Xe GPU dirver Porting on RISC-V Architecture
@ 2025-07-15  6:18 zhangzhijie
  2025-10-30  1:55 ` Jeff Geerling
  2025-10-30 13:34 ` Jani Nikula
  0 siblings, 2 replies; 4+ messages in thread
From: zhangzhijie @ 2025-07-15  6:18 UTC (permalink / raw)
  To: zhangzhijie, wangran, zhangjian, daniel, jani.nikula,
	rodrigo.vivi, joonas.lahtinen, tursulin, airlied, intel-gfx,
	intel-xe, dri-devel, linux-kernel

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

Signed-off-by: zhangzhijie <zhangzhijie@bosc.ac.cn>
---
 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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] Support Intel Xe GPU dirver Porting on RISC-V Architecture
  2025-07-15  6:18 [PATCH v1] Support Intel Xe GPU dirver Porting on RISC-V Architecture zhangzhijie
@ 2025-10-30  1:55 ` Jeff Geerling
  2025-10-30  3:28   ` ZhangZhiJie
  2025-10-30 13:34 ` Jani Nikula
  1 sibling, 1 reply; 4+ messages in thread
From: Jeff Geerling @ 2025-10-30  1:55 UTC (permalink / raw)
  To: zhangzhijie
  Cc: wangran, zhangjian, daniel, jani.nikula, rodrigo.vivi,
	joonas.lahtinen, tursulin, airlied, intel-gfx, intel-xe,
	dri-devel, linux-kernel

+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 <zhangzhijie@bosc.ac.cn> wrote:
> 
>    inb/outb speccial wire not support on other ARCH.
> Should detect whether arch platform support or not.
> 
> Signed-off-by: zhangzhijie <zhangzhijie@bosc.ac.cn>
> ---
> 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
> 
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] Support Intel Xe GPU dirver Porting on RISC-V Architecture
  2025-10-30  1:55 ` Jeff Geerling
@ 2025-10-30  3:28   ` ZhangZhiJie
  0 siblings, 0 replies; 4+ messages in thread
From: ZhangZhiJie @ 2025-10-30  3:28 UTC (permalink / raw)
  To: Jeff Geerling
  Cc: wangran, zhangjian, daniel, jani.nikula, rodrigo.vivi,
	joonas.lahtinen, tursulin, airlied, intel-gfx, intel-xe,
	dri-devel, linux-kernel



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 <zhangzhijie@bosc.ac.cn> wrote:
>>
>>     inb/outb speccial wire not support on other ARCH.
>> Should detect whether arch platform support or not.
>>
>> Signed-off-by: zhangzhijie <zhangzhijie@bosc.ac.cn>
>> ---
>> 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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] Support Intel Xe GPU dirver Porting on RISC-V Architecture
  2025-07-15  6:18 [PATCH v1] Support Intel Xe GPU dirver Porting on RISC-V Architecture zhangzhijie
  2025-10-30  1:55 ` Jeff Geerling
@ 2025-10-30 13:34 ` Jani Nikula
  1 sibling, 0 replies; 4+ messages in thread
From: Jani Nikula @ 2025-10-30 13:34 UTC (permalink / raw)
  To: zhangzhijie, zhangzhijie, wangran, zhangjian, daniel,
	rodrigo.vivi, joonas.lahtinen, tursulin, airlied, intel-gfx,
	intel-xe, dri-devel, linux-kernel

On Tue, 15 Jul 2025, zhangzhijie <zhangzhijie@bosc.ac.cn> wrote:
>     inb/outb speccial wire not support on other ARCH.
> Should detect whether arch platform support or not.
>
> Signed-off-by: zhangzhijie <zhangzhijie@bosc.ac.cn>
> ---
>  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

This should be abstracted to a separate function with the
#if/#else/#endif choosing a different implementation of the function
(empty stub in the else branch).

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

Ditto, but you have the function already.

>  }
>  
>  int intel_vga_register(struct drm_i915_private *i915)

-- 
Jani Nikula, Intel

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-10-30 13:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-15  6:18 [PATCH v1] Support Intel Xe GPU dirver Porting on RISC-V Architecture zhangzhijie
2025-10-30  1:55 ` Jeff Geerling
2025-10-30  3:28   ` ZhangZhiJie
2025-10-30 13:34 ` Jani Nikula

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox