Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8402db5d authored by Alexandre Peixoto Ferreira's avatar Alexandre Peixoto Ferreira Committed by Greg Kroah-Hartman
Browse files

USB: usbtmc: Add flag rigol_quirk to usbtmc_device_data



These patches implement a modification of the USBTMC
protocol to allow operation with Rigol equipment. Rigol requires that a
single TMC request to receive any buffer size and bulk requests to get the
data. The original algorithm sends a TMC request for each subset of the data
(a single USB transaction). The modification is only active for Rigol
equipment, vendor and product set is contained in the array usbtmc_id_quirk.

This patch creates the rigol_quirk variable and the arrays for the
idvendor and idproduct.

Signed-off-by: default avatarAlexandre Peixoto Ferreira <alexandref75@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6523f6d2
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -31,6 +31,8 @@
#include <linux/usb/tmc.h>
#include <linux/usb/tmc.h>




#define RIGOL			1
#define USBTMC_HEADER_SIZE	12
#define USBTMC_MINOR_BASE	176
#define USBTMC_MINOR_BASE	176


/*
/*
@@ -84,6 +86,8 @@ struct usbtmc_device_data {
	u8 bTag_last_write;	/* needed for abort */
	u8 bTag_last_write;	/* needed for abort */
	u8 bTag_last_read;	/* needed for abort */
	u8 bTag_last_read;	/* needed for abort */


	u8 rigol_quirk;

	/* attributes from the USB TMC spec for this device */
	/* attributes from the USB TMC spec for this device */
	u8 TermChar;
	u8 TermChar;
	bool TermCharEnabled;
	bool TermCharEnabled;
@@ -97,6 +101,16 @@ struct usbtmc_device_data {
};
};
#define to_usbtmc_data(d) container_of(d, struct usbtmc_device_data, kref)
#define to_usbtmc_data(d) container_of(d, struct usbtmc_device_data, kref)


struct usbtmc_ID_rigol_quirk {
	__u16 idVendor;
	__u16 idProduct;
};

static const struct usbtmc_ID_rigol_quirk usbtmc_id_quirk[] = {
	{ 0x1ab1, 0x0588 },
	{ 0, 0 }
};

/* Forward declarations */
/* Forward declarations */
static struct usb_driver usbtmc_driver;
static struct usb_driver usbtmc_driver;