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: Alexandre Peixoto Ferreira <alexandref75@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6523f6d247
commit
8402db5dda
|
@ -31,6 +31,8 @@
|
|||
#include <linux/usb/tmc.h>
|
||||
|
||||
|
||||
#define RIGOL 1
|
||||
#define USBTMC_HEADER_SIZE 12
|
||||
#define USBTMC_MINOR_BASE 176
|
||||
|
||||
/*
|
||||
|
@ -84,6 +86,8 @@ struct usbtmc_device_data {
|
|||
u8 bTag_last_write; /* needed for abort */
|
||||
u8 bTag_last_read; /* needed for abort */
|
||||
|
||||
u8 rigol_quirk;
|
||||
|
||||
/* attributes from the USB TMC spec for this device */
|
||||
u8 TermChar;
|
||||
bool TermCharEnabled;
|
||||
|
@ -97,6 +101,16 @@ struct usbtmc_device_data {
|
|||
};
|
||||
#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 */
|
||||
static struct usb_driver usbtmc_driver;
|
||||
|
||||
|
|
Loading…
Reference in a new issue