#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] |