Blame SOURCES/0002-Add-support-for-public-dfl-driver-to-fpgaport.patch

e498dc
From cd80370722f050f15cbeae121584853fbe44949b Mon Sep 17 00:00:00 2001
e498dc
From: Tom Rix <trix@redhat.com>
e498dc
Date: Wed, 13 May 2020 15:06:40 -0400
e498dc
Subject: [PATCH 2/2] Add support for public dfl driver to fpgaport
e498dc
e498dc
The ioctl's are different and the data passed is an int.
e498dc
e498dc
Signed-off-by: Tom Rix <trix@redhat.com>
e498dc
---
e498dc
 tools/fpgaport/fpgaport | 21 +++++++++++++++++----
e498dc
 1 file changed, 17 insertions(+), 4 deletions(-)
e498dc
e498dc
diff --git a/tools/fpgaport/fpgaport b/tools/fpgaport/fpgaport
e498dc
index 2f707183..cf133c98 100755
e498dc
--- a/tools/fpgaport/fpgaport
e498dc
+++ b/tools/fpgaport/fpgaport
e498dc
@@ -27,8 +27,12 @@
e498dc
 
e498dc
 import fcntl, os, sys, argparse, stat, struct
e498dc
 
e498dc
+# Intel driver
e498dc
 FPGA_FME_PORT_ASSIGN = 0xB582
e498dc
 FPGA_FME_PORT_RELEASE = 0xB581
e498dc
+# DFL driver
e498dc
+DFL_FME_PORT_ASSIGN = 0x4004B682
e498dc
+DFL_FME_PORT_RELEASE = 0x4004B681
e498dc
 
e498dc
 if __name__ == "__main__":
e498dc
 
e498dc
@@ -51,18 +55,27 @@ if __name__ == "__main__":
e498dc
 
e498dc
 	# open FPGA device
e498dc
 	try:
e498dc
-		f = open(args.device, "rw")
e498dc
+		f = open(args.device, "w")
e498dc
 	except Exception as e:
e498dc
 		print("open() failed:", e)
e498dc
 		sys.exit(1)
e498dc
 
e498dc
 	# send IOCTL
e498dc
-	ioctl_data = struct.pack('III', 12, 0, args.port)
e498dc
+	if (args.device.find("intel-fpga-fme") != -1):
e498dc
+		ioctl_data = struct.pack('III', 12, 0, args.port)
e498dc
+	else:
e498dc
+		ioctl_data = struct.pack('I', args.port)
e498dc
 	try:
e498dc
 		if args.action == 'assign':
e498dc
-			ret = fcntl.ioctl(f, FPGA_FME_PORT_ASSIGN, ioctl_data)
e498dc
+			if (args.device.find("intel-fpga-fme") != -1):
e498dc
+				ret = fcntl.ioctl(f, FPGA_FME_PORT_ASSIGN, ioctl_data)
e498dc
+			else:
e498dc
+				ret = fcntl.ioctl(f, DFL_FME_PORT_ASSIGN, ioctl_data)
e498dc
 		else:
e498dc
-			ret = fcntl.ioctl(f, FPGA_FME_PORT_RELEASE, ioctl_data)
e498dc
+			if (args.device.find("intel-fpga-fme") != -1):
e498dc
+				ret = fcntl.ioctl(f, FPGA_FME_PORT_RELEASE, ioctl_data)
e498dc
+			else:
e498dc
+				ret = fcntl.ioctl(f, DFL_FME_PORT_RELEASE, ioctl_data)
e498dc
 	except Exception as e:
e498dc
 		print("ioctl() failed:", e)
e498dc
 		f.close()
e498dc
-- 
e498dc
2.18.2
e498dc