#include <linux/jiffies.h>
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/ata.h>
#include <linux/hdreg.h>
#include <linux/scatterlist.h>
#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_device.h>
#include "usb.h"
#include "transport.h"
#include "protocol.h"
#include "debug.h"
#include "scsiglue.h"
#include "unusual_isd200.h"
Go to the source code of this file.
|
#define | UNUSUAL_DEV(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax, vendorName, productName, useProtocol, useTransport, initFunction, flags) |
|
#define | UNUSUAL_DEV(idVendor, idProduct, bcdDeviceMin, bcdDeviceMax, vendor_name, product_name, use_protocol, use_transport, init_function, Flags) |
|
#define | ISD200_ENUM_BSY_TIMEOUT 35 |
|
#define | ISD200_ENUM_DETECT_TIMEOUT 30 |
|
#define | ISD200_DEFAULT_TIMEOUT 30 |
|
#define | DF_ATA_DEVICE 0x0001 |
|
#define | DF_MEDIA_STATUS_ENABLED 0x0002 |
|
#define | DF_REMOVABLE_MEDIA 0x0004 |
|
#define | CAPABILITY_DMA 0x01 |
|
#define | CAPABILITY_LBA 0x02 |
|
#define | COMMANDSET_REMOVABLE 0x02 |
|
#define | COMMANDSET_MEDIA_STATUS 0x10 |
|
#define | ATA_ADDRESS_DEVHEAD_STD 0xa0 |
|
#define | ATA_ADDRESS_DEVHEAD_LBA_MODE 0x40 |
|
#define | ATA_ADDRESS_DEVHEAD_SLAVE 0x10 |
|
#define | ACTION_SELECT_0 0x01 |
|
#define | ACTION_SELECT_1 0x02 |
|
#define | ACTION_SELECT_2 0x04 |
|
#define | ACTION_SELECT_3 0x08 |
|
#define | ACTION_SELECT_4 0x10 |
|
#define | ACTION_SELECT_5 0x20 |
|
#define | ACTION_SELECT_6 0x40 |
|
#define | ACTION_SELECT_7 0x80 |
|
#define | REG_ALTERNATE_STATUS 0x01 |
|
#define | REG_DEVICE_CONTROL 0x01 |
|
#define | REG_ERROR 0x02 |
|
#define | REG_FEATURES 0x02 |
|
#define | REG_SECTOR_COUNT 0x04 |
|
#define | REG_SECTOR_NUMBER 0x08 |
|
#define | REG_CYLINDER_LOW 0x10 |
|
#define | REG_CYLINDER_HIGH 0x20 |
|
#define | REG_DEVICE_HEAD 0x40 |
|
#define | REG_STATUS 0x80 |
|
#define | REG_COMMAND 0x80 |
|
#define | ATA_REG_ERROR_OFFSET 1 |
|
#define | ATA_REG_LCYL_OFFSET 4 |
|
#define | ATA_REG_HCYL_OFFSET 5 |
|
#define | ATA_REG_STATUS_OFFSET 7 |
|
#define | ATA_ERROR_MEDIA_CHANGE 0x20 |
|
#define | ATA_COMMAND_GET_MEDIA_STATUS 0xDA |
|
#define | ATA_COMMAND_MEDIA_EJECT 0xED |
|
#define | ATA_DC_DISABLE_INTERRUPTS 0x02 |
|
#define | ATA_DC_RESET_CONTROLLER 0x04 |
|
#define | ATA_DC_REENABLE_CONTROLLER 0x00 |
|
#define | ISD200_ERROR -1 |
|
#define | ISD200_GOOD 0 |
|
#define | ISD200_TRANSPORT_GOOD 0 /* Transport good, command good */ |
|
#define | ISD200_TRANSPORT_FAILED 1 /* Transport good, command failed */ |
|
#define | ISD200_TRANSPORT_ERROR 2 /* Transport bad (i.e. device dead) */ |
|
#define | ACTION_READ_STATUS 0 |
|
#define | ACTION_RESET 1 |
|
#define | ACTION_REENABLE 2 |
|
#define | ACTION_SOFT_RESET 3 |
|
#define | ACTION_ENUM 4 |
|
#define | ACTION_IDENTIFY 5 |
|
#define | DIRECT_ACCESS_DEVICE 0x00 /* disks */ |
|
#define | DEVICE_REMOVABLE 0x80 |
|
#define | INQUIRYDATABUFFERSIZE 36 |
|
#define | ATACFG_TIMING 0x0f |
|
#define | ATACFG_ATAPI_RESET 0x10 |
|
#define | ATACFG_MASTER 0x20 |
|
#define | ATACFG_BLOCKSIZE 0xa0 |
|
#define | ATACFGE_LAST_LUN 0x07 |
|
#define | ATACFGE_DESC_OVERRIDE 0x08 |
|
#define | ATACFGE_STATE_SUSPEND 0x10 |
|
#define | ATACFGE_SKIP_BOOT 0x20 |
|
#define | ATACFGE_CONF_DESC2 0x40 |
|
#define | ATACFGE_INIT_STATUS 0x80 |
|
#define | CFG_CAPABILITY_SRST 0x01 |
|
#define | SENSE_ERRCODE 0x7f |
|
#define | SENSE_ERRCODE_VALID 0x80 |
|
#define | SENSE_FLAG_SENSE_KEY 0x0f |
|
#define | SENSE_FLAG_BAD_LENGTH 0x20 |
|
#define | SENSE_FLAG_END_OF_MEDIA 0x40 |
|
#define | SENSE_FLAG_FILE_MARK 0x80 |
|
#define | SENSE_BUFFER_SIZE 18 |
|
#define ACTION_IDENTIFY 5 |
#define ACTION_READ_STATUS 0 |
#define ACTION_REENABLE 2 |
#define ACTION_SELECT_0 0x01 |
#define ACTION_SELECT_1 0x02 |
#define ACTION_SELECT_2 0x04 |
#define ACTION_SELECT_3 0x08 |
#define ACTION_SELECT_4 0x10 |
#define ACTION_SELECT_5 0x20 |
#define ACTION_SELECT_6 0x40 |
#define ACTION_SELECT_7 0x80 |
#define ACTION_SOFT_RESET 3 |
#define ATA_ADDRESS_DEVHEAD_LBA_MODE 0x40 |
#define ATA_ADDRESS_DEVHEAD_SLAVE 0x10 |
#define ATA_ADDRESS_DEVHEAD_STD 0xa0 |
#define ATA_COMMAND_GET_MEDIA_STATUS 0xDA |
#define ATA_COMMAND_MEDIA_EJECT 0xED |
#define ATA_DC_DISABLE_INTERRUPTS 0x02 |
#define ATA_DC_REENABLE_CONTROLLER 0x00 |
#define ATA_DC_RESET_CONTROLLER 0x04 |
#define ATA_ERROR_MEDIA_CHANGE 0x20 |
#define ATA_REG_ERROR_OFFSET 1 |
#define ATA_REG_HCYL_OFFSET 5 |
#define ATA_REG_LCYL_OFFSET 4 |
#define ATA_REG_STATUS_OFFSET 7 |
#define ATACFG_ATAPI_RESET 0x10 |
#define ATACFG_BLOCKSIZE 0xa0 |
#define ATACFG_MASTER 0x20 |
#define ATACFG_TIMING 0x0f |
#define ATACFGE_CONF_DESC2 0x40 |
#define ATACFGE_DESC_OVERRIDE 0x08 |
#define ATACFGE_INIT_STATUS 0x80 |
#define ATACFGE_LAST_LUN 0x07 |
#define ATACFGE_SKIP_BOOT 0x20 |
#define ATACFGE_STATE_SUSPEND 0x10 |
#define CAPABILITY_DMA 0x01 |
#define CAPABILITY_LBA 0x02 |
#define CFG_CAPABILITY_SRST 0x01 |
#define COMMANDSET_MEDIA_STATUS 0x10 |
#define COMMANDSET_REMOVABLE 0x02 |
#define DEVICE_REMOVABLE 0x80 |
#define DF_ATA_DEVICE 0x0001 |
#define DF_MEDIA_STATUS_ENABLED 0x0002 |
#define DF_REMOVABLE_MEDIA 0x0004 |
#define DIRECT_ACCESS_DEVICE 0x00 /* disks */ |
#define INQUIRYDATABUFFERSIZE 36 |
#define ISD200_DEFAULT_TIMEOUT 30 |
#define ISD200_ENUM_BSY_TIMEOUT 35 |
#define ISD200_ENUM_DETECT_TIMEOUT 30 |
#define ISD200_TRANSPORT_ERROR 2 /* Transport bad (i.e. device dead) */ |
#define ISD200_TRANSPORT_FAILED 1 /* Transport good, command failed */ |
#define ISD200_TRANSPORT_GOOD 0 /* Transport good, command good */ |
#define REG_ALTERNATE_STATUS 0x01 |
#define REG_CYLINDER_HIGH 0x20 |
#define REG_CYLINDER_LOW 0x10 |
#define REG_DEVICE_CONTROL 0x01 |
#define REG_DEVICE_HEAD 0x40 |
#define REG_FEATURES 0x02 |
#define REG_SECTOR_COUNT 0x04 |
#define REG_SECTOR_NUMBER 0x08 |
#define SENSE_BUFFER_SIZE 18 |
#define SENSE_ERRCODE 0x7f |
#define SENSE_ERRCODE_VALID 0x80 |
#define SENSE_FLAG_BAD_LENGTH 0x20 |
#define SENSE_FLAG_END_OF_MEDIA 0x40 |
#define SENSE_FLAG_FILE_MARK 0x80 |
#define SENSE_FLAG_SENSE_KEY 0x0f |
#define UNUSUAL_DEV |
( |
|
id_vendor, |
|
|
|
id_product, |
|
|
|
bcdDeviceMin, |
|
|
|
bcdDeviceMax, |
|
|
|
vendorName, |
|
|
|
productName, |
|
|
|
useProtocol, |
|
|
|
useTransport, |
|
|
|
initFunction, |
|
|
|
flags |
|
) |
| |
Value:{ USB_DEVICE_VER(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax), \
Definition at line 90 of file isd200.c.
#define UNUSUAL_DEV |
( |
|
idVendor, |
|
|
|
idProduct, |
|
|
|
bcdDeviceMin, |
|
|
|
bcdDeviceMax, |
|
|
|
vendor_name, |
|
|
|
product_name, |
|
|
|
use_protocol, |
|
|
|
use_transport, |
|
|
|
init_function, |
|
|
|
Flags |
|
) |
| |
Value:{ \
.vendorName = vendor_name, \
.productName = product_name, \
.useProtocol = use_protocol, \
.useTransport = use_transport, \
.initFunction = init_function, \
}
Definition at line 90 of file isd200.c.
mcontroller : adapter info structure for old mimd_t apps
: base address : irq number : number of logical drives : pci bus : pci device : pci function : pci id : vendor id : slot number : unique id
Definition at line 171 of file esd_usb2.c.
MODULE_DESCRIPTION |
( |
"Driver for In-System |
Design, |
|
|
Inc.ISD200 ASIC" |
|
|
) |
| |
MODULE_DEVICE_TABLE |
( |
usb |
, |
|
|
isd200_usb_ids |
|
|
) |
| |
module_usb_driver |
( |
isd200_driver |
| ) |
|
unsigned char AdditionalLength |
unsigned char AdditionalSenseCode |
unsigned char AdditionalSenseCodeQualifier |
unsigned char AdditionalSenseLength |
unsigned char ATAExtraConfig |
unsigned char ATAInitTimeout |
unsigned char ATAMajorCommand |
unsigned char ATAMinorCommand |
unsigned char CommandSpecificInformation[4] |
unsigned char DeviceTypeModifier |
unsigned char EventNotification |
unsigned char ExternalClock |
unsigned char FieldReplaceableUnitCode |
unsigned char Information[4] |
unsigned char ProductId[16] |
unsigned char ProductRevisionLevel[4] |
unsigned char Reserved[2] |
unsigned char SegmentNumber |
unsigned char SenseKeySpecific[3] |
unsigned char VendorId[8] |
unsigned char VendorSpecific[20] |