[PATCH v2] vfio: selftests: Support DMR and GNR-D DSA devices

Yi Lai posted 1 patch 2 weeks, 1 day ago
.../testing/selftests/vfio/lib/drivers/dsa/dsa.c  | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
[PATCH v2] vfio: selftests: Support DMR and GNR-D DSA devices
Posted by Yi Lai 2 weeks, 1 day ago
Currently, the VFIO DSA driver test only supports the SPR DSA device ID.
Attempting to run the test on newer platforms like DMR or GNR-D results
in a "No driver found" error, causing the test to be skipped.

Refactor dsa_probe() to use a switch statement for checking device IDs.
This improves maintainability and makes it easier to add new device IDs
in the future.

Add the following DSA device IDs to the supported list:
PCI_DEVICE_ID_INTEL_DSA_DMR  (0x1212)
PCI_DEVICE_ID_INTEL_DSA_GNRD (0x11fb)

Signed-off-by: Yi Lai <yi1.lai@intel.com>
---
 .../testing/selftests/vfio/lib/drivers/dsa/dsa.c  | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/vfio/lib/drivers/dsa/dsa.c b/tools/testing/selftests/vfio/lib/drivers/dsa/dsa.c
index c75045bcab79..19d9630b24c2 100644
--- a/tools/testing/selftests/vfio/lib/drivers/dsa/dsa.c
+++ b/tools/testing/selftests/vfio/lib/drivers/dsa/dsa.c
@@ -65,9 +65,20 @@ static bool dsa_int_handle_request_required(struct vfio_pci_device *device)
 
 static int dsa_probe(struct vfio_pci_device *device)
 {
-	if (!vfio_pci_device_match(device, PCI_VENDOR_ID_INTEL,
-				   PCI_DEVICE_ID_INTEL_DSA_SPR0))
+	const u16 vendor_id = vfio_pci_config_readw(device, PCI_VENDOR_ID);
+	const u16 device_id = vfio_pci_config_readw(device, PCI_DEVICE_ID);
+
+	if (vendor_id != PCI_VENDOR_ID_INTEL)
+		return -EINVAL;
+
+	switch (device_id) {
+	case PCI_DEVICE_ID_INTEL_DSA_SPR0:
+	case PCI_DEVICE_ID_INTEL_DSA_DMR:
+	case PCI_DEVICE_ID_INTEL_DSA_GNRD:
+		break;
+	default:
 		return -EINVAL;
+	}
 
 	if (dsa_int_handle_request_required(device)) {
 		dev_err(device, "Device requires requesting interrupt handles\n");
-- 
2.43.0
Re: [PATCH v2] vfio: selftests: Support DMR and GNR-D DSA devices
Posted by Alex Williamson 2 weeks ago
On Fri, 20 Mar 2026 09:09:29 +0800
Yi Lai <yi1.lai@intel.com> wrote:

> Currently, the VFIO DSA driver test only supports the SPR DSA device ID.
> Attempting to run the test on newer platforms like DMR or GNR-D results
> in a "No driver found" error, causing the test to be skipped.
> 
> Refactor dsa_probe() to use a switch statement for checking device IDs.
> This improves maintainability and makes it easier to add new device IDs
> in the future.
> 
> Add the following DSA device IDs to the supported list:
> PCI_DEVICE_ID_INTEL_DSA_DMR  (0x1212)
> PCI_DEVICE_ID_INTEL_DSA_GNRD (0x11fb)
> 
> Signed-off-by: Yi Lai <yi1.lai@intel.com>
> ---
>  .../testing/selftests/vfio/lib/drivers/dsa/dsa.c  | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/vfio/lib/drivers/dsa/dsa.c b/tools/testing/selftests/vfio/lib/drivers/dsa/dsa.c
> index c75045bcab79..19d9630b24c2 100644
> --- a/tools/testing/selftests/vfio/lib/drivers/dsa/dsa.c
> +++ b/tools/testing/selftests/vfio/lib/drivers/dsa/dsa.c
> @@ -65,9 +65,20 @@ static bool dsa_int_handle_request_required(struct vfio_pci_device *device)
>  
>  static int dsa_probe(struct vfio_pci_device *device)
>  {
> -	if (!vfio_pci_device_match(device, PCI_VENDOR_ID_INTEL,
> -				   PCI_DEVICE_ID_INTEL_DSA_SPR0))
> +	const u16 vendor_id = vfio_pci_config_readw(device, PCI_VENDOR_ID);
> +	const u16 device_id = vfio_pci_config_readw(device, PCI_DEVICE_ID);
> +
> +	if (vendor_id != PCI_VENDOR_ID_INTEL)
> +		return -EINVAL;
> +
> +	switch (device_id) {
> +	case PCI_DEVICE_ID_INTEL_DSA_SPR0:
> +	case PCI_DEVICE_ID_INTEL_DSA_DMR:
> +	case PCI_DEVICE_ID_INTEL_DSA_GNRD:
> +		break;
> +	default:
>  		return -EINVAL;
> +	}
>  
>  	if (dsa_int_handle_request_required(device)) {
>  		dev_err(device, "Device requires requesting interrupt handles\n");

Applied to vfio next branch for v7.1.  Thanks,

Alex
Re: [PATCH v2] vfio: selftests: Support DMR and GNR-D DSA devices
Posted by David Matlack 2 weeks ago
On Thu, Mar 19, 2026 at 6:09 PM Yi Lai <yi1.lai@intel.com> wrote:
>
> Currently, the VFIO DSA driver test only supports the SPR DSA device ID.
> Attempting to run the test on newer platforms like DMR or GNR-D results
> in a "No driver found" error, causing the test to be skipped.
>
> Refactor dsa_probe() to use a switch statement for checking device IDs.
> This improves maintainability and makes it easier to add new device IDs
> in the future.
>
> Add the following DSA device IDs to the supported list:
> PCI_DEVICE_ID_INTEL_DSA_DMR  (0x1212)
> PCI_DEVICE_ID_INTEL_DSA_GNRD (0x11fb)
>
> Signed-off-by: Yi Lai <yi1.lai@intel.com>

Reviewed-by: David Matlack <dmatlack@google.com>