/*
|
/*
|
* PowerTec SCSI driver
|
* PowerTec SCSI driver
|
*
|
*
|
* Copyright (C) 1997-1998 Russell King
|
* Copyright (C) 1997-1998 Russell King
|
*/
|
*/
|
#ifndef POWERTECSCSI_H
|
#ifndef POWERTECSCSI_H
|
#define POWERTECSCSI_H
|
#define POWERTECSCSI_H
|
|
|
extern int powertecscsi_detect (Scsi_Host_Template *);
|
extern int powertecscsi_detect (Scsi_Host_Template *);
|
extern int powertecscsi_release (struct Scsi_Host *);
|
extern int powertecscsi_release (struct Scsi_Host *);
|
extern const char *powertecscsi_info (struct Scsi_Host *);
|
extern const char *powertecscsi_info (struct Scsi_Host *);
|
extern int powertecscsi_proc_info (char *buffer, char **start, off_t offset,
|
extern int powertecscsi_proc_info (char *buffer, char **start, off_t offset,
|
int length, int hostno, int inout);
|
int length, int hostno, int inout);
|
|
|
#ifndef NULL
|
#ifndef NULL
|
#define NULL ((void *)0)
|
#define NULL ((void *)0)
|
#endif
|
#endif
|
|
|
#ifndef CAN_QUEUE
|
#ifndef CAN_QUEUE
|
/*
|
/*
|
* Default queue size
|
* Default queue size
|
*/
|
*/
|
#define CAN_QUEUE 1
|
#define CAN_QUEUE 1
|
#endif
|
#endif
|
|
|
#ifndef CMD_PER_LUN
|
#ifndef CMD_PER_LUN
|
#define CMD_PER_LUN 1
|
#define CMD_PER_LUN 1
|
#endif
|
#endif
|
|
|
#ifndef SCSI_ID
|
#ifndef SCSI_ID
|
/*
|
/*
|
* Default SCSI host ID
|
* Default SCSI host ID
|
*/
|
*/
|
#define SCSI_ID 7
|
#define SCSI_ID 7
|
#endif
|
#endif
|
|
|
#include <scsi/scsicam.h>
|
#include <scsi/scsicam.h>
|
|
|
#include "fas216.h"
|
#include "fas216.h"
|
|
|
#define POWERTECSCSI { \
|
#define POWERTECSCSI { \
|
NULL, \
|
NULL, \
|
NULL, \
|
NULL, \
|
NULL, \
|
NULL, \
|
powertecscsi_proc_info, \
|
powertecscsi_proc_info, \
|
"PowerTec SCSI", \
|
"PowerTec SCSI", \
|
powertecscsi_detect, /* detect */ \
|
powertecscsi_detect, /* detect */ \
|
powertecscsi_release, /* release */ \
|
powertecscsi_release, /* release */ \
|
powertecscsi_info, /* info */ \
|
powertecscsi_info, /* info */ \
|
fas216_command, /* command */ \
|
fas216_command, /* command */ \
|
fas216_queue_command, /* queuecommand */ \
|
fas216_queue_command, /* queuecommand */ \
|
fas216_abort, /* abort */ \
|
fas216_abort, /* abort */ \
|
fas216_reset, /* reset */ \
|
fas216_reset, /* reset */ \
|
NULL, \
|
NULL, \
|
scsicam_bios_param, /* biosparam */ \
|
scsicam_bios_param, /* biosparam */ \
|
CAN_QUEUE, /* can queue */ \
|
CAN_QUEUE, /* can queue */ \
|
SCSI_ID, /* scsi host id */ \
|
SCSI_ID, /* scsi host id */ \
|
SG_ALL, /* sg_tablesize */ \
|
SG_ALL, /* sg_tablesize */ \
|
CMD_PER_LUN, /* cmd per lun */ \
|
CMD_PER_LUN, /* cmd per lun */ \
|
0, /* number of boards */ \
|
0, /* number of boards */ \
|
0, /* unchecked isa dma */ \
|
0, /* unchecked isa dma */ \
|
DISABLE_CLUSTERING \
|
DISABLE_CLUSTERING \
|
}
|
}
|
|
|
#ifndef HOSTS_C
|
#ifndef HOSTS_C
|
|
|
#include <asm/dma.h>
|
#include <asm/dma.h>
|
|
|
#define NR_SG 256
|
#define NR_SG 256
|
|
|
typedef struct {
|
typedef struct {
|
FAS216_Info info;
|
FAS216_Info info;
|
|
|
struct {
|
struct {
|
unsigned int term_port;
|
unsigned int term_port;
|
unsigned int terms;
|
unsigned int terms;
|
} control;
|
} control;
|
|
|
/* other info... */
|
/* other info... */
|
dmasg_t dmasg[NR_SG]; /* Scatter DMA list */
|
dmasg_t dmasg[NR_SG]; /* Scatter DMA list */
|
} PowerTecScsi_Info;
|
} PowerTecScsi_Info;
|
|
|
#endif /* HOSTS_C */
|
#endif /* HOSTS_C */
|
|
|
#endif /* POWERTECSCSI_H */
|
#endif /* POWERTECSCSI_H */
|
|
|