mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.0 KiB
55 lines
1.0 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
/* |
|
* Driver for Microtek Scanmaker X6 USB scanner and possibly others. |
|
* |
|
* (C) Copyright 2000 John Fremlin <[email protected]> |
|
* (C) Copyright 2000 Oliver Neukum <[email protected]> |
|
* |
|
* See microtek.c for history |
|
* |
|
*/ |
|
|
|
typedef void (*mts_scsi_cmnd_callback)(struct scsi_cmnd *); |
|
|
|
|
|
struct mts_transfer_context |
|
{ |
|
struct mts_desc *instance; |
|
mts_scsi_cmnd_callback final_callback; |
|
struct scsi_cmnd *srb; |
|
|
|
void *data; |
|
unsigned data_length; |
|
int data_pipe; |
|
struct scatterlist *curr_sg; |
|
|
|
u8 *scsi_status; /* status returned from ep_response after command completion */ |
|
}; |
|
|
|
|
|
struct mts_desc { |
|
struct mts_desc *next; |
|
struct mts_desc *prev; |
|
|
|
struct usb_device *usb_dev; |
|
struct usb_interface *usb_intf; |
|
|
|
/* Endpoint addresses */ |
|
u8 ep_out; |
|
u8 ep_response; |
|
u8 ep_image; |
|
|
|
struct Scsi_Host *host; |
|
|
|
struct urb *urb; |
|
struct mts_transfer_context context; |
|
}; |
|
|
|
|
|
#define MTS_EP_OUT 0x1 |
|
#define MTS_EP_RESPONSE 0x2 |
|
#define MTS_EP_IMAGE 0x3 |
|
#define MTS_EP_TOTAL 0x3 |
|
|
|
#define MTS_SCSI_ERR_MASK ~0x3fu |
|
|
|
|