forked from Minki/linux
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>
|
#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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user