Skip to content

Commit

Permalink
USB: usbtmc: Add flag rigol_quirk to usbtmc_device_data
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Alexandre Peixoto Ferreira authored and Greg Kroah-Hartman committed May 17, 2013
1 parent 6523f6d commit 8402db5
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions drivers/usb/class/usbtmc.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
#include <linux/usb/tmc.h>


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

/*
Expand Down Expand Up @@ -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;
Expand All @@ -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;

Expand Down

0 comments on commit 8402db5

Please sign in to comment.