[PATCH 6/6] USB: IOCTL to toggle the quirk (not required).

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



These patches implement a modification of the USBTMC
protocol to allow operation with Rigol equipment. Ioctl change allowing test
and toggling of the status of the rigol_quirk bit.


Signed-off-by: Alexandre Peixoto Ferreira <alexandref75@xxxxxxxxx>
---
 drivers/usb/class/usbtmc.c   | 25 +++++++++++++++++++++++++
 include/uapi/linux/usb/tmc.h |  1 +
 2 files changed, 26 insertions(+)

diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c
index 609dbc2..20c0b88 100644
--- a/drivers/usb/class/usbtmc.c
+++ b/drivers/usb/class/usbtmc.c
@@ -154,6 +154,28 @@ static int usbtmc_release(struct inode *inode, struct file *file)
 	return 0;
 }
 
+static int usbtmc_ioctl_rigol_quirk(struct usbtmc_device_data *data,unsigned long arg)
+{
+	struct device *dev;
+
+	dev = &data->intf->dev;
+
+	switch(arg) {
+	case 0 : /* RESET RIGOL QUIRK MODE IF SET */
+		data->rigol_quirk = 0;
+		return 0;
+	case 1 : /* RESET RIGOL QUIRK MODE IF SET */
+		data->rigol_quirk = 1;
+		return 0;
+	case 2 : /* Check it it is set */
+		if (data->rigol_quirk) 
+			return 0;
+		else
+			return -EINVAL;
+	}
+	return 0;
+}
+
 static int usbtmc_ioctl_abort_bulk_in(struct usbtmc_device_data *data)
 {
 	u8 *buffer;
@@ -1067,6 +1089,9 @@ static long usbtmc_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 	case USBTMC_IOCTL_ABORT_BULK_IN:
 		retval = usbtmc_ioctl_abort_bulk_in(data);
 		break;
+	case USBTMC_IOCTL_RIGOL_QUIRK:
+		retval = usbtmc_ioctl_rigol_quirk(data,arg);
+		break;
 	}
 
 skip_io_on_zombie:
diff --git a/include/uapi/linux/usb/tmc.h b/include/uapi/linux/usb/tmc.h
index c045ae1..1787460 100644
--- a/include/uapi/linux/usb/tmc.h
+++ b/include/uapi/linux/usb/tmc.h
@@ -39,5 +39,6 @@
 #define USBTMC_IOCTL_ABORT_BULK_IN	_IO(USBTMC_IOC_NR, 4)
 #define USBTMC_IOCTL_CLEAR_OUT_HALT	_IO(USBTMC_IOC_NR, 6)
 #define USBTMC_IOCTL_CLEAR_IN_HALT	_IO(USBTMC_IOC_NR, 7)
+#define USBTMC_IOCTL_RIGOL_QUIRK	_IO(USBTMC_IOC_NR, 8)
 
 #endif
-- 
1.8.2.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux