Commit 391e2f25 authored by Khalid Aziz's avatar Khalid Aziz Committed by James Bottomley

[SCSI] BusLogic: Port driver to 64-bit.

[jejb: fix up pointer to int cast warning]
Signed-off-by: default avatarKhalid Aziz <khalid.aziz@oracle.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 839cb99e
...@@ -1208,7 +1208,7 @@ static bool blogic_hwreset(struct blogic_adapter *adapter, bool hard_reset) ...@@ -1208,7 +1208,7 @@ static bool blogic_hwreset(struct blogic_adapter *adapter, bool hard_reset)
fpinfo->report_underrun = true; fpinfo->report_underrun = true;
adapter->cardhandle = adapter->cardhandle =
FlashPoint_HardwareResetHostAdapter(fpinfo); FlashPoint_HardwareResetHostAdapter(fpinfo);
if (adapter->cardhandle == FPOINT_BADCARD_HANDLE) if (adapter->cardhandle == (void *)FPOINT_BADCARD_HANDLE)
return false; return false;
/* /*
Indicate the Host Adapter Hard Reset completed successfully. Indicate the Host Adapter Hard Reset completed successfully.
...@@ -2372,8 +2372,7 @@ static int __init blogic_init(void) ...@@ -2372,8 +2372,7 @@ static int __init blogic_init(void)
return -ENOMEM; return -ENOMEM;
} }
adapter = adapter = kzalloc(sizeof(struct blogic_adapter), GFP_KERNEL);
kzalloc(sizeof(struct blogic_adapter), GFP_KERNEL);
if (adapter == NULL) { if (adapter == NULL) {
kfree(blogic_probeinfo_list); kfree(blogic_probeinfo_list);
blogic_err("BusLogic: Unable to allocate Prototype Host Adapter\n", NULL); blogic_err("BusLogic: Unable to allocate Prototype Host Adapter\n", NULL);
...@@ -3079,11 +3078,11 @@ static int blogic_qcmd_lck(struct scsi_cmnd *command, ...@@ -3079,11 +3078,11 @@ static int blogic_qcmd_lck(struct scsi_cmnd *command,
ccb->opcode = BLOGIC_INITIATOR_CCB_SG; ccb->opcode = BLOGIC_INITIATOR_CCB_SG;
ccb->datalen = count * sizeof(struct blogic_sg_seg); ccb->datalen = count * sizeof(struct blogic_sg_seg);
if (blogic_multimaster_type(adapter)) if (blogic_multimaster_type(adapter))
ccb->data = (unsigned int) ccb->dma_handle + ccb->data = (void *)((unsigned int) ccb->dma_handle +
((unsigned long) &ccb->sglist - ((unsigned long) &ccb->sglist -
(unsigned long) ccb); (unsigned long) ccb));
else else
ccb->data = virt_to_32bit_virt(ccb->sglist); ccb->data = ccb->sglist;
scsi_for_each_sg(command, sg, count, i) { scsi_for_each_sg(command, sg, count, i) {
ccb->sglist[i].segbytes = sg_dma_len(sg); ccb->sglist[i].segbytes = sg_dma_len(sg);
......
...@@ -821,7 +821,7 @@ struct blogic_ccb { ...@@ -821,7 +821,7 @@ struct blogic_ccb {
unsigned char cdblen; /* Byte 2 */ unsigned char cdblen; /* Byte 2 */
unsigned char sense_datalen; /* Byte 3 */ unsigned char sense_datalen; /* Byte 3 */
u32 datalen; /* Bytes 4-7 */ u32 datalen; /* Bytes 4-7 */
u32 data; /* Bytes 8-11 */ void *data; /* Bytes 8-11 */
unsigned char:8; /* Byte 12 */ unsigned char:8; /* Byte 12 */
unsigned char:8; /* Byte 13 */ unsigned char:8; /* Byte 13 */
enum blogic_adapter_status adapter_status; /* Byte 14 */ enum blogic_adapter_status adapter_status; /* Byte 14 */
...@@ -833,7 +833,7 @@ struct blogic_ccb { ...@@ -833,7 +833,7 @@ struct blogic_ccb {
unsigned char cdb[BLOGIC_CDB_MAXLEN]; /* Bytes 18-29 */ unsigned char cdb[BLOGIC_CDB_MAXLEN]; /* Bytes 18-29 */
unsigned char:8; /* Byte 30 */ unsigned char:8; /* Byte 30 */
unsigned char:8; /* Byte 31 */ unsigned char:8; /* Byte 31 */
unsigned int:32; /* Bytes 32-35 */ u32 rsvd_int; /* Bytes 32-35 */
u32 sensedata; /* Bytes 36-39 */ u32 sensedata; /* Bytes 36-39 */
/* /*
FlashPoint SCCB Manager Defined Portion. FlashPoint SCCB Manager Defined Portion.
...@@ -843,8 +843,11 @@ struct blogic_ccb { ...@@ -843,8 +843,11 @@ struct blogic_ccb {
enum blogic_cmplt_code comp_code; /* Byte 48 */ enum blogic_cmplt_code comp_code; /* Byte 48 */
#ifdef CONFIG_SCSI_FLASHPOINT #ifdef CONFIG_SCSI_FLASHPOINT
unsigned char:8; /* Byte 49 */ unsigned char:8; /* Byte 49 */
unsigned short os_flags; /* Bytes 50-51 */ u16 os_flags; /* Bytes 50-51 */
unsigned char private[48]; /* Bytes 52-99 */ unsigned char private[24]; /* Bytes 52-99 */
void *rsvd1;
void *rsvd2;
unsigned char private2[16];
#endif #endif
/* /*
BusLogic Linux Driver Defined Portion. BusLogic Linux Driver Defined Portion.
...@@ -867,7 +870,7 @@ struct blogic_ccb { ...@@ -867,7 +870,7 @@ struct blogic_ccb {
struct blogic_outbox { struct blogic_outbox {
u32 ccb; /* Bytes 0-3 */ u32 ccb; /* Bytes 0-3 */
unsigned int:24; /* Bytes 4-6 */ u32:24; /* Bytes 4-6 */
enum blogic_action action; /* Byte 7 */ enum blogic_action action; /* Byte 7 */
}; };
...@@ -876,11 +879,11 @@ struct blogic_outbox { ...@@ -876,11 +879,11 @@ struct blogic_outbox {
*/ */
struct blogic_inbox { struct blogic_inbox {
u32 ccb; /* Bytes 0-3 */ u32 ccb; /* Bytes 0-3 */
enum blogic_adapter_status adapter_status; /* Byte 4 */ enum blogic_adapter_status adapter_status; /* Byte 4 */
enum blogic_tgt_status tgt_status; /* Byte 5 */ enum blogic_tgt_status tgt_status; /* Byte 5 */
unsigned char:8; /* Byte 6 */ unsigned char:8; /* Byte 6 */
enum blogic_cmplt_code comp_code; /* Byte 7 */ enum blogic_cmplt_code comp_code; /* Byte 7 */
}; };
...@@ -941,7 +944,7 @@ struct blogic_tgt_stats { ...@@ -941,7 +944,7 @@ struct blogic_tgt_stats {
Define the FlashPoint Card Handle data type. Define the FlashPoint Card Handle data type.
*/ */
#define FPOINT_BADCARD_HANDLE 0xFFFFFFFF #define FPOINT_BADCARD_HANDLE 0xFFFFFFFFL
/* /*
...@@ -955,12 +958,12 @@ struct fpoint_info { ...@@ -955,12 +958,12 @@ struct fpoint_info {
unsigned char irq_ch; /* Byte 5 */ unsigned char irq_ch; /* Byte 5 */
unsigned char scsi_id; /* Byte 6 */ unsigned char scsi_id; /* Byte 6 */
unsigned char scsi_lun; /* Byte 7 */ unsigned char scsi_lun; /* Byte 7 */
unsigned short fw_rev; /* Bytes 8-9 */ u16 fw_rev; /* Bytes 8-9 */
unsigned short sync_ok; /* Bytes 10-11 */ u16 sync_ok; /* Bytes 10-11 */
unsigned short fast_ok; /* Bytes 12-13 */ u16 fast_ok; /* Bytes 12-13 */
unsigned short ultra_ok; /* Bytes 14-15 */ u16 ultra_ok; /* Bytes 14-15 */
unsigned short discon_ok; /* Bytes 16-17 */ u16 discon_ok; /* Bytes 16-17 */
unsigned short wide_ok; /* Bytes 18-19 */ u16 wide_ok; /* Bytes 18-19 */
bool parity:1; /* Byte 20 Bit 0 */ bool parity:1; /* Byte 20 Bit 0 */
bool wide:1; /* Byte 20 Bit 1 */ bool wide:1; /* Byte 20 Bit 1 */
bool softreset:1; /* Byte 20 Bit 2 */ bool softreset:1; /* Byte 20 Bit 2 */
...@@ -976,10 +979,10 @@ struct fpoint_info { ...@@ -976,10 +979,10 @@ struct fpoint_info {
unsigned char model[3]; /* Bytes 24-26 */ unsigned char model[3]; /* Bytes 24-26 */
unsigned char relative_cardnum; /* Byte 27 */ unsigned char relative_cardnum; /* Byte 27 */
unsigned char rsvd[4]; /* Bytes 28-31 */ unsigned char rsvd[4]; /* Bytes 28-31 */
unsigned int os_rsvd; /* Bytes 32-35 */ u32 os_rsvd; /* Bytes 32-35 */
unsigned char translation_info[4]; /* Bytes 36-39 */ unsigned char translation_info[4]; /* Bytes 36-39 */
unsigned int rsvd2[5]; /* Bytes 40-59 */ u32 rsvd2[5]; /* Bytes 40-59 */
unsigned int sec_range; /* Bytes 60-63 */ u32 sec_range; /* Bytes 60-63 */
}; };
/* /*
...@@ -1052,7 +1055,7 @@ struct blogic_adapter { ...@@ -1052,7 +1055,7 @@ struct blogic_adapter {
u32 bios_addr; u32 bios_addr;
struct blogic_drvr_options *drvr_opts; struct blogic_drvr_options *drvr_opts;
struct fpoint_info fpinfo; struct fpoint_info fpinfo;
unsigned int cardhandle; void *cardhandle;
struct list_head host_list; struct list_head host_list;
struct blogic_ccb *all_ccbs; struct blogic_ccb *all_ccbs;
struct blogic_ccb *free_ccbs; struct blogic_ccb *free_ccbs;
......
...@@ -29,27 +29,27 @@ struct sccb; ...@@ -29,27 +29,27 @@ struct sccb;
typedef void (*CALL_BK_FN) (struct sccb *); typedef void (*CALL_BK_FN) (struct sccb *);
struct sccb_mgr_info { struct sccb_mgr_info {
unsigned long si_baseaddr; u32 si_baseaddr;
unsigned char si_present; unsigned char si_present;
unsigned char si_intvect; unsigned char si_intvect;
unsigned char si_id; unsigned char si_id;
unsigned char si_lun; unsigned char si_lun;
unsigned short si_fw_revision; u16 si_fw_revision;
unsigned short si_per_targ_init_sync; u16 si_per_targ_init_sync;
unsigned short si_per_targ_fast_nego; u16 si_per_targ_fast_nego;
unsigned short si_per_targ_ultra_nego; u16 si_per_targ_ultra_nego;
unsigned short si_per_targ_no_disc; u16 si_per_targ_no_disc;
unsigned short si_per_targ_wide_nego; u16 si_per_targ_wide_nego;
unsigned short si_flags; u16 si_flags;
unsigned char si_card_family; unsigned char si_card_family;
unsigned char si_bustype; unsigned char si_bustype;
unsigned char si_card_model[3]; unsigned char si_card_model[3];
unsigned char si_relative_cardnum; unsigned char si_relative_cardnum;
unsigned char si_reserved[4]; unsigned char si_reserved[4];
unsigned long si_OS_reserved; u32 si_OS_reserved;
unsigned char si_XlatInfo[4]; unsigned char si_XlatInfo[4];
unsigned long si_reserved2[5]; u32 si_reserved2[5];
unsigned long si_secondary_range; u32 si_secondary_range;
}; };
#define SCSI_PARITY_ENA 0x0001 #define SCSI_PARITY_ENA 0x0001
...@@ -70,14 +70,14 @@ struct sccb_mgr_info { ...@@ -70,14 +70,14 @@ struct sccb_mgr_info {
* The UCB Manager treats the SCCB as it's 'native hardware structure' * The UCB Manager treats the SCCB as it's 'native hardware structure'
*/ */
#pragma pack(1) /*#pragma pack(1)*/
struct sccb { struct sccb {
unsigned char OperationCode; unsigned char OperationCode;
unsigned char ControlByte; unsigned char ControlByte;
unsigned char CdbLength; unsigned char CdbLength;
unsigned char RequestSenseLength; unsigned char RequestSenseLength;
unsigned long DataLength; u32 DataLength;
unsigned long DataPointer; void *DataPointer;
unsigned char CcbRes[2]; unsigned char CcbRes[2];
unsigned char HostStatus; unsigned char HostStatus;
unsigned char TargetStatus; unsigned char TargetStatus;
...@@ -86,32 +86,32 @@ struct sccb { ...@@ -86,32 +86,32 @@ struct sccb {
unsigned char Cdb[12]; unsigned char Cdb[12];
unsigned char CcbRes1; unsigned char CcbRes1;
unsigned char Reserved1; unsigned char Reserved1;
unsigned long Reserved2; u32 Reserved2;
unsigned long SensePointer; u32 SensePointer;
CALL_BK_FN SccbCallback; /* VOID (*SccbCallback)(); */ CALL_BK_FN SccbCallback; /* VOID (*SccbCallback)(); */
unsigned long SccbIOPort; /* Identifies board base port */ u32 SccbIOPort; /* Identifies board base port */
unsigned char SccbStatus; unsigned char SccbStatus;
unsigned char SCCBRes2; unsigned char SCCBRes2;
unsigned short SccbOSFlags; u16 SccbOSFlags;
unsigned long Sccb_XferCnt; /* actual transfer count */ u32 Sccb_XferCnt; /* actual transfer count */
unsigned long Sccb_ATC; u32 Sccb_ATC;
unsigned long SccbVirtDataPtr; /* virtual addr for OS/2 */ u32 SccbVirtDataPtr; /* virtual addr for OS/2 */
unsigned long Sccb_res1; u32 Sccb_res1;
unsigned short Sccb_MGRFlags; u16 Sccb_MGRFlags;
unsigned short Sccb_sgseg; u16 Sccb_sgseg;
unsigned char Sccb_scsimsg; /* identify msg for selection */ unsigned char Sccb_scsimsg; /* identify msg for selection */
unsigned char Sccb_tag; unsigned char Sccb_tag;
unsigned char Sccb_scsistat; unsigned char Sccb_scsistat;
unsigned char Sccb_idmsg; /* image of last msg in */ unsigned char Sccb_idmsg; /* image of last msg in */
struct sccb *Sccb_forwardlink; struct sccb *Sccb_forwardlink;
struct sccb *Sccb_backlink; struct sccb *Sccb_backlink;
unsigned long Sccb_savedATC; u32 Sccb_savedATC;
unsigned char Save_Cdb[6]; unsigned char Save_Cdb[6];
unsigned char Save_CdbLen; unsigned char Save_CdbLen;
unsigned char Sccb_XferState; unsigned char Sccb_XferState;
unsigned long Sccb_SGoffset; u32 Sccb_SGoffset;
}; };
#pragma pack() #pragma pack()
...@@ -223,15 +223,21 @@ struct sccb_mgr_tar_info { ...@@ -223,15 +223,21 @@ struct sccb_mgr_tar_info {
}; };
struct nvram_info { struct nvram_info {
unsigned char niModel; /* Model No. of card */ unsigned char niModel; /* Model No. of card */
unsigned char niCardNo; /* Card no. */ unsigned char niCardNo; /* Card no. */
unsigned long niBaseAddr; /* Port Address of card */ u32 niBaseAddr; /* Port Address of card */
unsigned char niSysConf; /* Adapter Configuration byte - Byte 16 of eeprom map */ unsigned char niSysConf; /* Adapter Configuration byte -
unsigned char niScsiConf; /* SCSI Configuration byte - Byte 17 of eeprom map */ Byte 16 of eeprom map */
unsigned char niScamConf; /* SCAM Configuration byte - Byte 20 of eeprom map */ unsigned char niScsiConf; /* SCSI Configuration byte -
unsigned char niAdapId; /* Host Adapter ID - Byte 24 of eerpom map */ Byte 17 of eeprom map */
unsigned char niSyncTbl[MAX_SCSI_TAR / 2]; /* Sync/Wide byte of targets */ unsigned char niScamConf; /* SCAM Configuration byte -
unsigned char niScamTbl[MAX_SCSI_TAR][4]; /* Compressed Scam name string of Targets */ Byte 20 of eeprom map */
unsigned char niAdapId; /* Host Adapter ID -
Byte 24 of eerpom map */
unsigned char niSyncTbl[MAX_SCSI_TAR / 2]; /* Sync/Wide byte
of targets */
unsigned char niScamTbl[MAX_SCSI_TAR][4]; /* Compressed Scam name
string of Targets */
}; };
#define MODEL_LT 1 #define MODEL_LT 1
...@@ -243,7 +249,7 @@ struct sccb_card { ...@@ -243,7 +249,7 @@ struct sccb_card {
struct sccb *currentSCCB; struct sccb *currentSCCB;
struct sccb_mgr_info *cardInfo; struct sccb_mgr_info *cardInfo;
unsigned long ioPort; u32 ioPort;
unsigned short cmdCounter; unsigned short cmdCounter;
unsigned char discQCount; unsigned char discQCount;
...@@ -780,37 +786,37 @@ typedef struct SCCBscam_info { ...@@ -780,37 +786,37 @@ typedef struct SCCBscam_info {
#define MENABLE_INT(p_port) (WR_HARPOON(p_port+hp_page_ctrl, \ #define MENABLE_INT(p_port) (WR_HARPOON(p_port+hp_page_ctrl, \
(RD_HARPOON(p_port+hp_page_ctrl) & ~G_INT_DISABLE))) (RD_HARPOON(p_port+hp_page_ctrl) & ~G_INT_DISABLE)))
static unsigned char FPT_sisyncn(unsigned long port, unsigned char p_card, static unsigned char FPT_sisyncn(u32 port, unsigned char p_card,
unsigned char syncFlag); unsigned char syncFlag);
static void FPT_ssel(unsigned long port, unsigned char p_card); static void FPT_ssel(u32 port, unsigned char p_card);
static void FPT_sres(unsigned long port, unsigned char p_card, static void FPT_sres(u32 port, unsigned char p_card,
struct sccb_card *pCurrCard); struct sccb_card *pCurrCard);
static void FPT_shandem(unsigned long port, unsigned char p_card, static void FPT_shandem(u32 port, unsigned char p_card,
struct sccb *pCurrSCCB); struct sccb *pCurrSCCB);
static void FPT_stsyncn(unsigned long port, unsigned char p_card); static void FPT_stsyncn(u32 port, unsigned char p_card);
static void FPT_sisyncr(unsigned long port, unsigned char sync_pulse, static void FPT_sisyncr(u32 port, unsigned char sync_pulse,
unsigned char offset); unsigned char offset);
static void FPT_sssyncv(unsigned long p_port, unsigned char p_id, static void FPT_sssyncv(u32 p_port, unsigned char p_id,
unsigned char p_sync_value, unsigned char p_sync_value,
struct sccb_mgr_tar_info *currTar_Info); struct sccb_mgr_tar_info *currTar_Info);
static void FPT_sresb(unsigned long port, unsigned char p_card); static void FPT_sresb(u32 port, unsigned char p_card);
static void FPT_sxfrp(unsigned long p_port, unsigned char p_card); static void FPT_sxfrp(u32 p_port, unsigned char p_card);
static void FPT_schkdd(unsigned long port, unsigned char p_card); static void FPT_schkdd(u32 port, unsigned char p_card);
static unsigned char FPT_RdStack(unsigned long port, unsigned char index); static unsigned char FPT_RdStack(u32 port, unsigned char index);
static void FPT_WrStack(unsigned long portBase, unsigned char index, static void FPT_WrStack(u32 portBase, unsigned char index,
unsigned char data); unsigned char data);
static unsigned char FPT_ChkIfChipInitialized(unsigned long ioPort); static unsigned char FPT_ChkIfChipInitialized(u32 ioPort);
static void FPT_SendMsg(unsigned long port, unsigned char message); static void FPT_SendMsg(u32 port, unsigned char message);
static void FPT_queueFlushTargSccb(unsigned char p_card, unsigned char thisTarg, static void FPT_queueFlushTargSccb(unsigned char p_card, unsigned char thisTarg,
unsigned char error_code); unsigned char error_code);
static void FPT_sinits(struct sccb *p_sccb, unsigned char p_card); static void FPT_sinits(struct sccb *p_sccb, unsigned char p_card);
static void FPT_RNVRamData(struct nvram_info *pNvRamInfo); static void FPT_RNVRamData(struct nvram_info *pNvRamInfo);
static unsigned char FPT_siwidn(unsigned long port, unsigned char p_card); static unsigned char FPT_siwidn(u32 port, unsigned char p_card);
static void FPT_stwidn(unsigned long port, unsigned char p_card); static void FPT_stwidn(u32 port, unsigned char p_card);
static void FPT_siwidr(unsigned long port, unsigned char width); static void FPT_siwidr(u32 port, unsigned char width);
static void FPT_queueSelectFail(struct sccb_card *pCurrCard, static void FPT_queueSelectFail(struct sccb_card *pCurrCard,
unsigned char p_card); unsigned char p_card);
...@@ -827,45 +833,45 @@ static void FPT_utilUpdateResidual(struct sccb *p_SCCB); ...@@ -827,45 +833,45 @@ static void FPT_utilUpdateResidual(struct sccb *p_SCCB);
static unsigned short FPT_CalcCrc16(unsigned char buffer[]); static unsigned short FPT_CalcCrc16(unsigned char buffer[]);
static unsigned char FPT_CalcLrc(unsigned char buffer[]); static unsigned char FPT_CalcLrc(unsigned char buffer[]);
static void FPT_Wait1Second(unsigned long p_port); static void FPT_Wait1Second(u32 p_port);
static void FPT_Wait(unsigned long p_port, unsigned char p_delay); static void FPT_Wait(u32 p_port, unsigned char p_delay);
static void FPT_utilEEWriteOnOff(unsigned long p_port, unsigned char p_mode); static void FPT_utilEEWriteOnOff(u32 p_port, unsigned char p_mode);
static void FPT_utilEEWrite(unsigned long p_port, unsigned short ee_data, static void FPT_utilEEWrite(u32 p_port, unsigned short ee_data,
unsigned short ee_addr); unsigned short ee_addr);
static unsigned short FPT_utilEERead(unsigned long p_port, static unsigned short FPT_utilEERead(u32 p_port,
unsigned short ee_addr); unsigned short ee_addr);
static unsigned short FPT_utilEEReadOrg(unsigned long p_port, static unsigned short FPT_utilEEReadOrg(u32 p_port,
unsigned short ee_addr); unsigned short ee_addr);
static void FPT_utilEESendCmdAddr(unsigned long p_port, unsigned char ee_cmd, static void FPT_utilEESendCmdAddr(u32 p_port, unsigned char ee_cmd,
unsigned short ee_addr); unsigned short ee_addr);
static void FPT_phaseDataOut(unsigned long port, unsigned char p_card); static void FPT_phaseDataOut(u32 port, unsigned char p_card);
static void FPT_phaseDataIn(unsigned long port, unsigned char p_card); static void FPT_phaseDataIn(u32 port, unsigned char p_card);
static void FPT_phaseCommand(unsigned long port, unsigned char p_card); static void FPT_phaseCommand(u32 port, unsigned char p_card);
static void FPT_phaseStatus(unsigned long port, unsigned char p_card); static void FPT_phaseStatus(u32 port, unsigned char p_card);
static void FPT_phaseMsgOut(unsigned long port, unsigned char p_card); static void FPT_phaseMsgOut(u32 port, unsigned char p_card);
static void FPT_phaseMsgIn(unsigned long port, unsigned char p_card); static void FPT_phaseMsgIn(u32 port, unsigned char p_card);
static void FPT_phaseIllegal(unsigned long port, unsigned char p_card); static void FPT_phaseIllegal(u32 port, unsigned char p_card);
static void FPT_phaseDecode(unsigned long port, unsigned char p_card); static void FPT_phaseDecode(u32 port, unsigned char p_card);
static void FPT_phaseChkFifo(unsigned long port, unsigned char p_card); static void FPT_phaseChkFifo(u32 port, unsigned char p_card);
static void FPT_phaseBusFree(unsigned long p_port, unsigned char p_card); static void FPT_phaseBusFree(u32 p_port, unsigned char p_card);
static void FPT_XbowInit(unsigned long port, unsigned char scamFlg); static void FPT_XbowInit(u32 port, unsigned char scamFlg);
static void FPT_BusMasterInit(unsigned long p_port); static void FPT_BusMasterInit(u32 p_port);
static void FPT_DiagEEPROM(unsigned long p_port); static void FPT_DiagEEPROM(u32 p_port);
static void FPT_dataXferProcessor(unsigned long port, static void FPT_dataXferProcessor(u32 port,
struct sccb_card *pCurrCard); struct sccb_card *pCurrCard);
static void FPT_busMstrSGDataXferStart(unsigned long port, static void FPT_busMstrSGDataXferStart(u32 port,
struct sccb *pCurrSCCB); struct sccb *pCurrSCCB);
static void FPT_busMstrDataXferStart(unsigned long port, static void FPT_busMstrDataXferStart(u32 port,
struct sccb *pCurrSCCB); struct sccb *pCurrSCCB);
static void FPT_hostDataXferAbort(unsigned long port, unsigned char p_card, static void FPT_hostDataXferAbort(u32 port, unsigned char p_card,
struct sccb *pCurrSCCB); struct sccb *pCurrSCCB);
static void FPT_hostDataXferRestart(struct sccb *currSCCB); static void FPT_hostDataXferRestart(struct sccb *currSCCB);
static unsigned char FPT_SccbMgr_bad_isr(unsigned long p_port, static unsigned char FPT_SccbMgr_bad_isr(u32 p_port,
unsigned char p_card, unsigned char p_card,
struct sccb_card *pCurrCard, struct sccb_card *pCurrCard,
unsigned short p_int); unsigned short p_int);
...@@ -879,28 +885,28 @@ static void FPT_SccbMgrTableInitTarget(unsigned char p_card, ...@@ -879,28 +885,28 @@ static void FPT_SccbMgrTableInitTarget(unsigned char p_card,
static void FPT_scini(unsigned char p_card, unsigned char p_our_id, static void FPT_scini(unsigned char p_card, unsigned char p_our_id,
unsigned char p_power_up); unsigned char p_power_up);
static int FPT_scarb(unsigned long p_port, unsigned char p_sel_type); static int FPT_scarb(u32 p_port, unsigned char p_sel_type);
static void FPT_scbusf(unsigned long p_port); static void FPT_scbusf(u32 p_port);
static void FPT_scsel(unsigned long p_port); static void FPT_scsel(u32 p_port);
static void FPT_scasid(unsigned char p_card, unsigned long p_port); static void FPT_scasid(unsigned char p_card, u32 p_port);
static unsigned char FPT_scxferc(unsigned long p_port, unsigned char p_data); static unsigned char FPT_scxferc(u32 p_port, unsigned char p_data);
static unsigned char FPT_scsendi(unsigned long p_port, static unsigned char FPT_scsendi(u32 p_port,
unsigned char p_id_string[]); unsigned char p_id_string[]);
static unsigned char FPT_sciso(unsigned long p_port, static unsigned char FPT_sciso(u32 p_port,
unsigned char p_id_string[]); unsigned char p_id_string[]);
static void FPT_scwirod(unsigned long p_port, unsigned char p_data_bit); static void FPT_scwirod(u32 p_port, unsigned char p_data_bit);
static void FPT_scwiros(unsigned long p_port, unsigned char p_data_bit); static void FPT_scwiros(u32 p_port, unsigned char p_data_bit);
static unsigned char FPT_scvalq(unsigned char p_quintet); static unsigned char FPT_scvalq(unsigned char p_quintet);
static unsigned char FPT_scsell(unsigned long p_port, unsigned char targ_id); static unsigned char FPT_scsell(u32 p_port, unsigned char targ_id);
static void FPT_scwtsel(unsigned long p_port); static void FPT_scwtsel(u32 p_port);
static void FPT_inisci(unsigned char p_card, unsigned long p_port, static void FPT_inisci(unsigned char p_card, u32 p_port,
unsigned char p_our_id); unsigned char p_our_id);
static void FPT_scsavdi(unsigned char p_card, unsigned long p_port); static void FPT_scsavdi(unsigned char p_card, u32 p_port);
static unsigned char FPT_scmachid(unsigned char p_card, static unsigned char FPT_scmachid(unsigned char p_card,
unsigned char p_id_string[]); unsigned char p_id_string[]);
static void FPT_autoCmdCmplt(unsigned long p_port, unsigned char p_card); static void FPT_autoCmdCmplt(u32 p_port, unsigned char p_card);
static void FPT_autoLoadDefaultMap(unsigned long p_port); static void FPT_autoLoadDefaultMap(u32 p_port);
static struct sccb_mgr_tar_info FPT_sccbMgrTbl[MAX_CARDS][MAX_SCSI_TAR] = static struct sccb_mgr_tar_info FPT_sccbMgrTbl[MAX_CARDS][MAX_SCSI_TAR] =
{ {{0}} }; { {{0}} };
...@@ -918,7 +924,7 @@ static unsigned char FPT_scamHAString[] = ...@@ -918,7 +924,7 @@ static unsigned char FPT_scamHAString[] =
static unsigned short FPT_default_intena = 0; static unsigned short FPT_default_intena = 0;
static void (*FPT_s_PhaseTbl[8]) (unsigned long, unsigned char) = { static void (*FPT_s_PhaseTbl[8]) (u32, unsigned char) = {
0}; 0};
/*--------------------------------------------------------------------- /*---------------------------------------------------------------------
...@@ -935,7 +941,7 @@ static int FlashPoint_ProbeHostAdapter(struct sccb_mgr_info *pCardInfo) ...@@ -935,7 +941,7 @@ static int FlashPoint_ProbeHostAdapter(struct sccb_mgr_info *pCardInfo)
unsigned char i, j, id, ScamFlg; unsigned char i, j, id, ScamFlg;
unsigned short temp, temp2, temp3, temp4, temp5, temp6; unsigned short temp, temp2, temp3, temp4, temp5, temp6;
unsigned long ioport; u32 ioport;
struct nvram_info *pCurrNvRam; struct nvram_info *pCurrNvRam;
ioport = pCardInfo->si_baseaddr; ioport = pCardInfo->si_baseaddr;
...@@ -1201,23 +1207,21 @@ static int FlashPoint_ProbeHostAdapter(struct sccb_mgr_info *pCardInfo) ...@@ -1201,23 +1207,21 @@ static int FlashPoint_ProbeHostAdapter(struct sccb_mgr_info *pCardInfo)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned long FlashPoint_HardwareResetHostAdapter(struct sccb_mgr_info static void *FlashPoint_HardwareResetHostAdapter(struct sccb_mgr_info
*pCardInfo) *pCardInfo)
{ {
struct sccb_card *CurrCard = NULL; struct sccb_card *CurrCard = NULL;
struct nvram_info *pCurrNvRam; struct nvram_info *pCurrNvRam;
unsigned char i, j, thisCard, ScamFlg; unsigned char i, j, thisCard, ScamFlg;
unsigned short temp, sync_bit_map, id; unsigned short temp, sync_bit_map, id;
unsigned long ioport; u32 ioport;
ioport = pCardInfo->si_baseaddr; ioport = pCardInfo->si_baseaddr;
for (thisCard = 0; thisCard <= MAX_CARDS; thisCard++) { for (thisCard = 0; thisCard <= MAX_CARDS; thisCard++) {
if (thisCard == MAX_CARDS) { if (thisCard == MAX_CARDS)
return (void *)FAILURE;
return FAILURE;
}
if (FPT_BL_Card[thisCard].ioPort == ioport) { if (FPT_BL_Card[thisCard].ioPort == ioport) {
...@@ -1384,16 +1388,16 @@ static unsigned long FlashPoint_HardwareResetHostAdapter(struct sccb_mgr_info ...@@ -1384,16 +1388,16 @@ static unsigned long FlashPoint_HardwareResetHostAdapter(struct sccb_mgr_info
(unsigned char)(RD_HARPOON((ioport + hp_semaphore)) | (unsigned char)(RD_HARPOON((ioport + hp_semaphore)) |
SCCB_MGR_PRESENT)); SCCB_MGR_PRESENT));
return (unsigned long)CurrCard; return (void *)CurrCard;
} }
static void FlashPoint_ReleaseHostAdapter(unsigned long pCurrCard) static void FlashPoint_ReleaseHostAdapter(void *pCurrCard)
{ {
unsigned char i; unsigned char i;
unsigned long portBase; u32 portBase;
unsigned long regOffset; u32 regOffset;
unsigned long scamData; u32 scamData;
unsigned long *pScamTbl; u32 *pScamTbl;
struct nvram_info *pCurrNvRam; struct nvram_info *pCurrNvRam;
pCurrNvRam = ((struct sccb_card *)pCurrCard)->pNvRamInfo; pCurrNvRam = ((struct sccb_card *)pCurrCard)->pNvRamInfo;
...@@ -1414,7 +1418,7 @@ static void FlashPoint_ReleaseHostAdapter(unsigned long pCurrCard) ...@@ -1414,7 +1418,7 @@ static void FlashPoint_ReleaseHostAdapter(unsigned long pCurrCard)
for (i = 0; i < MAX_SCSI_TAR; i++) { for (i = 0; i < MAX_SCSI_TAR; i++) {
regOffset = hp_aramBase + 64 + i * 4; regOffset = hp_aramBase + 64 + i * 4;
pScamTbl = (unsigned long *)&pCurrNvRam->niScamTbl[i]; pScamTbl = (u32 *)&pCurrNvRam->niScamTbl[i];
scamData = *pScamTbl; scamData = *pScamTbl;
WR_HARP32(portBase, regOffset, scamData); WR_HARP32(portBase, regOffset, scamData);
} }
...@@ -1427,10 +1431,10 @@ static void FlashPoint_ReleaseHostAdapter(unsigned long pCurrCard) ...@@ -1427,10 +1431,10 @@ static void FlashPoint_ReleaseHostAdapter(unsigned long pCurrCard)
static void FPT_RNVRamData(struct nvram_info *pNvRamInfo) static void FPT_RNVRamData(struct nvram_info *pNvRamInfo)
{ {
unsigned char i; unsigned char i;
unsigned long portBase; u32 portBase;
unsigned long regOffset; u32 regOffset;
unsigned long scamData; u32 scamData;
unsigned long *pScamTbl; u32 *pScamTbl;
pNvRamInfo->niModel = FPT_RdStack(pNvRamInfo->niBaseAddr, 0); pNvRamInfo->niModel = FPT_RdStack(pNvRamInfo->niBaseAddr, 0);
pNvRamInfo->niSysConf = FPT_RdStack(pNvRamInfo->niBaseAddr, 1); pNvRamInfo->niSysConf = FPT_RdStack(pNvRamInfo->niBaseAddr, 1);
...@@ -1447,26 +1451,25 @@ static void FPT_RNVRamData(struct nvram_info *pNvRamInfo) ...@@ -1447,26 +1451,25 @@ static void FPT_RNVRamData(struct nvram_info *pNvRamInfo)
for (i = 0; i < MAX_SCSI_TAR; i++) { for (i = 0; i < MAX_SCSI_TAR; i++) {
regOffset = hp_aramBase + 64 + i * 4; regOffset = hp_aramBase + 64 + i * 4;
RD_HARP32(portBase, regOffset, scamData); RD_HARP32(portBase, regOffset, scamData);
pScamTbl = (unsigned long *)&pNvRamInfo->niScamTbl[i]; pScamTbl = (u32 *)&pNvRamInfo->niScamTbl[i];
*pScamTbl = scamData; *pScamTbl = scamData;
} }
} }
static unsigned char FPT_RdStack(unsigned long portBase, unsigned char index) static unsigned char FPT_RdStack(u32 portBase, unsigned char index)
{ {
WR_HARPOON(portBase + hp_stack_addr, index); WR_HARPOON(portBase + hp_stack_addr, index);
return RD_HARPOON(portBase + hp_stack_data); return RD_HARPOON(portBase + hp_stack_data);
} }
static void FPT_WrStack(unsigned long portBase, unsigned char index, static void FPT_WrStack(u32 portBase, unsigned char index, unsigned char data)
unsigned char data)
{ {
WR_HARPOON(portBase + hp_stack_addr, index); WR_HARPOON(portBase + hp_stack_addr, index);
WR_HARPOON(portBase + hp_stack_data, data); WR_HARPOON(portBase + hp_stack_data, data);
} }
static unsigned char FPT_ChkIfChipInitialized(unsigned long ioPort) static unsigned char FPT_ChkIfChipInitialized(u32 ioPort)
{ {
if ((RD_HARPOON(ioPort + hp_arb_id) & 0x0f) != FPT_RdStack(ioPort, 4)) if ((RD_HARPOON(ioPort + hp_arb_id) & 0x0f) != FPT_RdStack(ioPort, 4))
return 0; return 0;
...@@ -1489,15 +1492,16 @@ static unsigned char FPT_ChkIfChipInitialized(unsigned long ioPort) ...@@ -1489,15 +1492,16 @@ static unsigned char FPT_ChkIfChipInitialized(unsigned long ioPort)
* callback function. * callback function.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb) static void FlashPoint_StartCCB(void *curr_card, struct sccb *p_Sccb)
{ {
unsigned long ioport; u32 ioport;
unsigned char thisCard, lun; unsigned char thisCard, lun;
struct sccb *pSaveSccb; struct sccb *pSaveSccb;
CALL_BK_FN callback; CALL_BK_FN callback;
struct sccb_card *pCurrCard = curr_card;
thisCard = ((struct sccb_card *)pCurrCard)->cardIndex; thisCard = pCurrCard->cardIndex;
ioport = ((struct sccb_card *)pCurrCard)->ioPort; ioport = pCurrCard->ioPort;
if ((p_Sccb->TargID >= MAX_SCSI_TAR) || (p_Sccb->Lun >= MAX_LUN)) { if ((p_Sccb->TargID >= MAX_SCSI_TAR) || (p_Sccb->Lun >= MAX_LUN)) {
...@@ -1512,18 +1516,18 @@ static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb) ...@@ -1512,18 +1516,18 @@ static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb)
FPT_sinits(p_Sccb, thisCard); FPT_sinits(p_Sccb, thisCard);
if (!((struct sccb_card *)pCurrCard)->cmdCounter) { if (!pCurrCard->cmdCounter) {
WR_HARPOON(ioport + hp_semaphore, WR_HARPOON(ioport + hp_semaphore,
(RD_HARPOON(ioport + hp_semaphore) (RD_HARPOON(ioport + hp_semaphore)
| SCCB_MGR_ACTIVE)); | SCCB_MGR_ACTIVE));
if (((struct sccb_card *)pCurrCard)->globalFlags & F_GREEN_PC) { if (pCurrCard->globalFlags & F_GREEN_PC) {
WR_HARPOON(ioport + hp_clkctrl_0, CLKCTRL_DEFAULT); WR_HARPOON(ioport + hp_clkctrl_0, CLKCTRL_DEFAULT);
WR_HARPOON(ioport + hp_sys_ctrl, 0x00); WR_HARPOON(ioport + hp_sys_ctrl, 0x00);
} }
} }
((struct sccb_card *)pCurrCard)->cmdCounter++; pCurrCard->cmdCounter++;
if (RD_HARPOON(ioport + hp_semaphore) & BIOS_IN_USE) { if (RD_HARPOON(ioport + hp_semaphore) & BIOS_IN_USE) {
...@@ -1532,10 +1536,10 @@ static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb) ...@@ -1532,10 +1536,10 @@ static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb)
| TICKLE_ME)); | TICKLE_ME));
if (p_Sccb->OperationCode == RESET_COMMAND) { if (p_Sccb->OperationCode == RESET_COMMAND) {
pSaveSccb = pSaveSccb =
((struct sccb_card *)pCurrCard)->currentSCCB; pCurrCard->currentSCCB;
((struct sccb_card *)pCurrCard)->currentSCCB = p_Sccb; pCurrCard->currentSCCB = p_Sccb;
FPT_queueSelectFail(&FPT_BL_Card[thisCard], thisCard); FPT_queueSelectFail(&FPT_BL_Card[thisCard], thisCard);
((struct sccb_card *)pCurrCard)->currentSCCB = pCurrCard->currentSCCB =
pSaveSccb; pSaveSccb;
} else { } else {
FPT_queueAddSccb(p_Sccb, thisCard); FPT_queueAddSccb(p_Sccb, thisCard);
...@@ -1546,10 +1550,10 @@ static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb) ...@@ -1546,10 +1550,10 @@ static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb)
if (p_Sccb->OperationCode == RESET_COMMAND) { if (p_Sccb->OperationCode == RESET_COMMAND) {
pSaveSccb = pSaveSccb =
((struct sccb_card *)pCurrCard)->currentSCCB; pCurrCard->currentSCCB;
((struct sccb_card *)pCurrCard)->currentSCCB = p_Sccb; pCurrCard->currentSCCB = p_Sccb;
FPT_queueSelectFail(&FPT_BL_Card[thisCard], thisCard); FPT_queueSelectFail(&FPT_BL_Card[thisCard], thisCard);
((struct sccb_card *)pCurrCard)->currentSCCB = pCurrCard->currentSCCB =
pSaveSccb; pSaveSccb;
} else { } else {
FPT_queueAddSccb(p_Sccb, thisCard); FPT_queueAddSccb(p_Sccb, thisCard);
...@@ -1560,34 +1564,29 @@ static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb) ...@@ -1560,34 +1564,29 @@ static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb)
MDISABLE_INT(ioport); MDISABLE_INT(ioport);
if ((((struct sccb_card *)pCurrCard)->globalFlags & F_CONLUN_IO) if ((pCurrCard->globalFlags & F_CONLUN_IO) &&
&&
((FPT_sccbMgrTbl[thisCard][p_Sccb->TargID]. ((FPT_sccbMgrTbl[thisCard][p_Sccb->TargID].
TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)) TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
lun = p_Sccb->Lun; lun = p_Sccb->Lun;
else else
lun = 0; lun = 0;
if ((((struct sccb_card *)pCurrCard)->currentSCCB == NULL) && if ((pCurrCard->currentSCCB == NULL) &&
(FPT_sccbMgrTbl[thisCard][p_Sccb->TargID].TarSelQ_Cnt == 0) (FPT_sccbMgrTbl[thisCard][p_Sccb->TargID].TarSelQ_Cnt == 0)
&& (FPT_sccbMgrTbl[thisCard][p_Sccb->TargID].TarLUNBusy[lun] && (FPT_sccbMgrTbl[thisCard][p_Sccb->TargID].TarLUNBusy[lun]
== 0)) { == 0)) {
((struct sccb_card *)pCurrCard)->currentSCCB = p_Sccb; pCurrCard->currentSCCB = p_Sccb;
FPT_ssel(p_Sccb->SccbIOPort, thisCard); FPT_ssel(p_Sccb->SccbIOPort, thisCard);
} }
else { else {
if (p_Sccb->OperationCode == RESET_COMMAND) { if (p_Sccb->OperationCode == RESET_COMMAND) {
pSaveSccb = pSaveSccb = pCurrCard->currentSCCB;
((struct sccb_card *)pCurrCard)-> pCurrCard->currentSCCB = p_Sccb;
currentSCCB;
((struct sccb_card *)pCurrCard)->currentSCCB =
p_Sccb;
FPT_queueSelectFail(&FPT_BL_Card[thisCard], FPT_queueSelectFail(&FPT_BL_Card[thisCard],
thisCard); thisCard);
((struct sccb_card *)pCurrCard)->currentSCCB = pCurrCard->currentSCCB = pSaveSccb;
pSaveSccb;
} else { } else {
FPT_queueAddSccb(p_Sccb, thisCard); FPT_queueAddSccb(p_Sccb, thisCard);
} }
...@@ -1607,9 +1606,9 @@ static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb) ...@@ -1607,9 +1606,9 @@ static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb)
* callback function. * callback function.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static int FlashPoint_AbortCCB(unsigned long pCurrCard, struct sccb *p_Sccb) static int FlashPoint_AbortCCB(void *pCurrCard, struct sccb *p_Sccb)
{ {
unsigned long ioport; u32 ioport;
unsigned char thisCard; unsigned char thisCard;
CALL_BK_FN callback; CALL_BK_FN callback;
...@@ -1715,9 +1714,9 @@ static int FlashPoint_AbortCCB(unsigned long pCurrCard, struct sccb *p_Sccb) ...@@ -1715,9 +1714,9 @@ static int FlashPoint_AbortCCB(unsigned long pCurrCard, struct sccb *p_Sccb)
* interrupt for this card and disable the IRQ Pin if so. * interrupt for this card and disable the IRQ Pin if so.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned char FlashPoint_InterruptPending(unsigned long pCurrCard) static unsigned char FlashPoint_InterruptPending(void *pCurrCard)
{ {
unsigned long ioport; u32 ioport;
ioport = ((struct sccb_card *)pCurrCard)->ioPort; ioport = ((struct sccb_card *)pCurrCard)->ioPort;
...@@ -1739,38 +1738,36 @@ static unsigned char FlashPoint_InterruptPending(unsigned long pCurrCard) ...@@ -1739,38 +1738,36 @@ static unsigned char FlashPoint_InterruptPending(unsigned long pCurrCard)
* us. * us.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static int FlashPoint_HandleInterrupt(unsigned long pCurrCard) static int FlashPoint_HandleInterrupt(void *pcard)
{ {
struct sccb *currSCCB; struct sccb *currSCCB;
unsigned char thisCard, result, bm_status, bm_int_st; unsigned char thisCard, result, bm_status, bm_int_st;
unsigned short hp_int; unsigned short hp_int;
unsigned char i, target; unsigned char i, target;
unsigned long ioport; struct sccb_card *pCurrCard = pcard;
u32 ioport;
thisCard = ((struct sccb_card *)pCurrCard)->cardIndex; thisCard = pCurrCard->cardIndex;
ioport = ((struct sccb_card *)pCurrCard)->ioPort; ioport = pCurrCard->ioPort;
MDISABLE_INT(ioport); MDISABLE_INT(ioport);
if ((bm_int_st = RD_HARPOON(ioport + hp_int_status)) & EXT_STATUS_ON) if ((bm_int_st = RD_HARPOON(ioport + hp_int_status)) & EXT_STATUS_ON)
bm_status = bm_status = RD_HARPOON(ioport + hp_ext_status) &
RD_HARPOON(ioport + (unsigned char)BAD_EXT_STATUS;
hp_ext_status) & (unsigned char)BAD_EXT_STATUS;
else else
bm_status = 0; bm_status = 0;
WR_HARPOON(ioport + hp_int_mask, (INT_CMD_COMPL | SCSI_INTERRUPT)); WR_HARPOON(ioport + hp_int_mask, (INT_CMD_COMPL | SCSI_INTERRUPT));
while ((hp_int = while ((hp_int = RDW_HARPOON((ioport + hp_intstat)) &
RDW_HARPOON((ioport + FPT_default_intena) | bm_status) {
hp_intstat)) & FPT_default_intena) | bm_status) {
currSCCB = ((struct sccb_card *)pCurrCard)->currentSCCB; currSCCB = pCurrCard->currentSCCB;
if (hp_int & (FIFO | TIMEOUT | RESET | SCAM_SEL) || bm_status) { if (hp_int & (FIFO | TIMEOUT | RESET | SCAM_SEL) || bm_status) {
result = result =
FPT_SccbMgr_bad_isr(ioport, thisCard, FPT_SccbMgr_bad_isr(ioport, thisCard, pCurrCard,
((struct sccb_card *)pCurrCard),
hp_int); hp_int);
WRW_HARPOON((ioport + hp_intstat), WRW_HARPOON((ioport + hp_intstat),
(FIFO | TIMEOUT | RESET | SCAM_SEL)); (FIFO | TIMEOUT | RESET | SCAM_SEL));
...@@ -1796,8 +1793,7 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard) ...@@ -1796,8 +1793,7 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard)
(BUS_FREE | RSEL))) ; (BUS_FREE | RSEL))) ;
} }
if (((struct sccb_card *)pCurrCard)-> if (pCurrCard->globalFlags & F_HOST_XFER_ACT)
globalFlags & F_HOST_XFER_ACT)
FPT_phaseChkFifo(ioport, thisCard); FPT_phaseChkFifo(ioport, thisCard);
...@@ -1813,14 +1809,11 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard) ...@@ -1813,14 +1809,11 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard)
else if (hp_int & ITAR_DISC) { else if (hp_int & ITAR_DISC) {
if (((struct sccb_card *)pCurrCard)-> if (pCurrCard->globalFlags & F_HOST_XFER_ACT)
globalFlags & F_HOST_XFER_ACT) {
FPT_phaseChkFifo(ioport, thisCard); FPT_phaseChkFifo(ioport, thisCard);
} if (RD_HARPOON(ioport + hp_gp_reg_1) ==
SMSAVE_DATA_PTR) {
if (RD_HARPOON(ioport + hp_gp_reg_1) == SMSAVE_DATA_PTR) {
WR_HARPOON(ioport + hp_gp_reg_1, 0x00); WR_HARPOON(ioport + hp_gp_reg_1, 0x00);
currSCCB->Sccb_XferState |= F_NO_DATA_YET; currSCCB->Sccb_XferState |= F_NO_DATA_YET;
...@@ -1859,8 +1852,7 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard) ...@@ -1859,8 +1852,7 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard)
WRW_HARPOON((ioport + hp_intstat), WRW_HARPOON((ioport + hp_intstat),
(BUS_FREE | ITAR_DISC)); (BUS_FREE | ITAR_DISC));
((struct sccb_card *)pCurrCard)->globalFlags |= pCurrCard->globalFlags |= F_NEW_SCCB_CMD;
F_NEW_SCCB_CMD;
} }
...@@ -1870,10 +1862,8 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard) ...@@ -1870,10 +1862,8 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard)
(PROG_HLT | RSEL | PHASE | BUS_FREE)); (PROG_HLT | RSEL | PHASE | BUS_FREE));
if (RDW_HARPOON((ioport + hp_intstat)) & ITAR_DISC) { if (RDW_HARPOON((ioport + hp_intstat)) & ITAR_DISC) {
if (((struct sccb_card *)pCurrCard)-> if (pCurrCard->globalFlags & F_HOST_XFER_ACT)
globalFlags & F_HOST_XFER_ACT) {
FPT_phaseChkFifo(ioport, thisCard); FPT_phaseChkFifo(ioport, thisCard);
}
if (RD_HARPOON(ioport + hp_gp_reg_1) == if (RD_HARPOON(ioport + hp_gp_reg_1) ==
SMSAVE_DATA_PTR) { SMSAVE_DATA_PTR) {
...@@ -1890,8 +1880,7 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard) ...@@ -1890,8 +1880,7 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard)
FPT_queueDisconnect(currSCCB, thisCard); FPT_queueDisconnect(currSCCB, thisCard);
} }
FPT_sres(ioport, thisCard, FPT_sres(ioport, thisCard, pCurrCard);
((struct sccb_card *)pCurrCard));
FPT_phaseDecode(ioport, thisCard); FPT_phaseDecode(ioport, thisCard);
} }
...@@ -1948,8 +1937,7 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard) ...@@ -1948,8 +1937,7 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard)
WRW_HARPOON((ioport + hp_intstat), BUS_FREE); WRW_HARPOON((ioport + hp_intstat), BUS_FREE);
if (((struct sccb_card *)pCurrCard)-> if (pCurrCard->globalFlags & F_HOST_XFER_ACT) {
globalFlags & F_HOST_XFER_ACT) {
FPT_hostDataXferAbort(ioport, thisCard, FPT_hostDataXferAbort(ioport, thisCard,
currSCCB); currSCCB);
...@@ -1961,27 +1949,19 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard) ...@@ -1961,27 +1949,19 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard)
else if (hp_int & ITICKLE) { else if (hp_int & ITICKLE) {
WRW_HARPOON((ioport + hp_intstat), ITICKLE); WRW_HARPOON((ioport + hp_intstat), ITICKLE);
((struct sccb_card *)pCurrCard)->globalFlags |= pCurrCard->globalFlags |= F_NEW_SCCB_CMD;
F_NEW_SCCB_CMD;
} }
if (((struct sccb_card *)pCurrCard)-> if (((struct sccb_card *)pCurrCard)->
globalFlags & F_NEW_SCCB_CMD) { globalFlags & F_NEW_SCCB_CMD) {
((struct sccb_card *)pCurrCard)->globalFlags &= pCurrCard->globalFlags &= ~F_NEW_SCCB_CMD;
~F_NEW_SCCB_CMD;
if (((struct sccb_card *)pCurrCard)->currentSCCB == if (pCurrCard->currentSCCB == NULL)
NULL) { FPT_queueSearchSelect(pCurrCard, thisCard);
FPT_queueSearchSelect(((struct sccb_card *)
pCurrCard), thisCard);
}
if (((struct sccb_card *)pCurrCard)->currentSCCB != if (pCurrCard->currentSCCB != NULL) {
NULL) { pCurrCard->globalFlags &= ~F_NEW_SCCB_CMD;
((struct sccb_card *)pCurrCard)->globalFlags &=
~F_NEW_SCCB_CMD;
FPT_ssel(ioport, thisCard); FPT_ssel(ioport, thisCard);
} }
...@@ -2006,8 +1986,7 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard) ...@@ -2006,8 +1986,7 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard)
* processing time. * processing time.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned char FPT_SccbMgr_bad_isr(unsigned long p_port, static unsigned char FPT_SccbMgr_bad_isr(u32 p_port, unsigned char p_card,
unsigned char p_card,
struct sccb_card *pCurrCard, struct sccb_card *pCurrCard,
unsigned short p_int) unsigned short p_int)
{ {
...@@ -2254,7 +2233,7 @@ static void FPT_SccbMgrTableInitTarget(unsigned char p_card, ...@@ -2254,7 +2233,7 @@ static void FPT_SccbMgrTableInitTarget(unsigned char p_card,
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned char FPT_sfm(unsigned long port, struct sccb *pCurrSCCB) static unsigned char FPT_sfm(u32 port, struct sccb *pCurrSCCB)
{ {
unsigned char message; unsigned char message;
unsigned short TimeOutLoop; unsigned short TimeOutLoop;
...@@ -2322,12 +2301,12 @@ static unsigned char FPT_sfm(unsigned long port, struct sccb *pCurrSCCB) ...@@ -2322,12 +2301,12 @@ static unsigned char FPT_sfm(unsigned long port, struct sccb *pCurrSCCB)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_ssel(unsigned long port, unsigned char p_card) static void FPT_ssel(u32 port, unsigned char p_card)
{ {
unsigned char auto_loaded, i, target, *theCCB; unsigned char auto_loaded, i, target, *theCCB;
unsigned long cdb_reg; u32 cdb_reg;
struct sccb_card *CurrCard; struct sccb_card *CurrCard;
struct sccb *currSCCB; struct sccb *currSCCB;
struct sccb_mgr_tar_info *currTar_Info; struct sccb_mgr_tar_info *currTar_Info;
...@@ -2621,7 +2600,7 @@ static void FPT_ssel(unsigned long port, unsigned char p_card) ...@@ -2621,7 +2600,7 @@ static void FPT_ssel(unsigned long port, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_sres(unsigned long port, unsigned char p_card, static void FPT_sres(u32 port, unsigned char p_card,
struct sccb_card *pCurrCard) struct sccb_card *pCurrCard)
{ {
...@@ -2857,7 +2836,7 @@ static void FPT_sres(unsigned long port, unsigned char p_card, ...@@ -2857,7 +2836,7 @@ static void FPT_sres(unsigned long port, unsigned char p_card,
(RD_HARPOON(port + hp_scsisig) & SCSI_BSY)) ; (RD_HARPOON(port + hp_scsisig) & SCSI_BSY)) ;
} }
static void FPT_SendMsg(unsigned long port, unsigned char message) static void FPT_SendMsg(u32 port, unsigned char message)
{ {
while (!(RD_HARPOON(port + hp_scsisig) & SCSI_REQ)) { while (!(RD_HARPOON(port + hp_scsisig) & SCSI_REQ)) {
if (!(RD_HARPOON(port + hp_scsisig) & SCSI_BSY)) { if (!(RD_HARPOON(port + hp_scsisig) & SCSI_BSY)) {
...@@ -2904,8 +2883,7 @@ static void FPT_SendMsg(unsigned long port, unsigned char message) ...@@ -2904,8 +2883,7 @@ static void FPT_SendMsg(unsigned long port, unsigned char message)
* target device. * target device.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_sdecm(unsigned char message, unsigned long port, static void FPT_sdecm(unsigned char message, u32 port, unsigned char p_card)
unsigned char p_card)
{ {
struct sccb *currSCCB; struct sccb *currSCCB;
struct sccb_card *CurrCard; struct sccb_card *CurrCard;
...@@ -3085,8 +3063,7 @@ static void FPT_sdecm(unsigned char message, unsigned long port, ...@@ -3085,8 +3063,7 @@ static void FPT_sdecm(unsigned char message, unsigned long port,
* Description: Decide what to do with the extended message. * Description: Decide what to do with the extended message.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_shandem(unsigned long port, unsigned char p_card, static void FPT_shandem(u32 port, unsigned char p_card, struct sccb *pCurrSCCB)
struct sccb *pCurrSCCB)
{ {
unsigned char length, message; unsigned char length, message;
...@@ -3153,7 +3130,7 @@ static void FPT_shandem(unsigned long port, unsigned char p_card, ...@@ -3153,7 +3130,7 @@ static void FPT_shandem(unsigned long port, unsigned char p_card,
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned char FPT_sisyncn(unsigned long port, unsigned char p_card, static unsigned char FPT_sisyncn(u32 port, unsigned char p_card,
unsigned char syncFlag) unsigned char syncFlag)
{ {
struct sccb *currSCCB; struct sccb *currSCCB;
...@@ -3234,7 +3211,7 @@ static unsigned char FPT_sisyncn(unsigned long port, unsigned char p_card, ...@@ -3234,7 +3211,7 @@ static unsigned char FPT_sisyncn(unsigned long port, unsigned char p_card,
* necessary. * necessary.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_stsyncn(unsigned long port, unsigned char p_card) static void FPT_stsyncn(u32 port, unsigned char p_card)
{ {
unsigned char sync_msg, offset, sync_reg, our_sync_msg; unsigned char sync_msg, offset, sync_reg, our_sync_msg;
struct sccb *currSCCB; struct sccb *currSCCB;
...@@ -3363,7 +3340,7 @@ static void FPT_stsyncn(unsigned long port, unsigned char p_card) ...@@ -3363,7 +3340,7 @@ static void FPT_stsyncn(unsigned long port, unsigned char p_card)
* Description: Answer the targets sync message. * Description: Answer the targets sync message.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_sisyncr(unsigned long port, unsigned char sync_pulse, static void FPT_sisyncr(u32 port, unsigned char sync_pulse,
unsigned char offset) unsigned char offset)
{ {
ARAM_ACCESS(port); ARAM_ACCESS(port);
...@@ -3394,7 +3371,7 @@ static void FPT_sisyncr(unsigned long port, unsigned char sync_pulse, ...@@ -3394,7 +3371,7 @@ static void FPT_sisyncr(unsigned long port, unsigned char sync_pulse,
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned char FPT_siwidn(unsigned long port, unsigned char p_card) static unsigned char FPT_siwidn(u32 port, unsigned char p_card)
{ {
struct sccb *currSCCB; struct sccb *currSCCB;
struct sccb_mgr_tar_info *currTar_Info; struct sccb_mgr_tar_info *currTar_Info;
...@@ -3449,7 +3426,7 @@ static unsigned char FPT_siwidn(unsigned long port, unsigned char p_card) ...@@ -3449,7 +3426,7 @@ static unsigned char FPT_siwidn(unsigned long port, unsigned char p_card)
* necessary. * necessary.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_stwidn(unsigned long port, unsigned char p_card) static void FPT_stwidn(u32 port, unsigned char p_card)
{ {
unsigned char width; unsigned char width;
struct sccb *currSCCB; struct sccb *currSCCB;
...@@ -3520,7 +3497,7 @@ static void FPT_stwidn(unsigned long port, unsigned char p_card) ...@@ -3520,7 +3497,7 @@ static void FPT_stwidn(unsigned long port, unsigned char p_card)
* Description: Answer the targets Wide nego message. * Description: Answer the targets Wide nego message.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_siwidr(unsigned long port, unsigned char width) static void FPT_siwidr(u32 port, unsigned char width)
{ {
ARAM_ACCESS(port); ARAM_ACCESS(port);
WRW_HARPOON((port + SYNC_MSGS + 0), (MPM_OP + AMSG_OUT + SMEXT)); WRW_HARPOON((port + SYNC_MSGS + 0), (MPM_OP + AMSG_OUT + SMEXT));
...@@ -3548,7 +3525,7 @@ static void FPT_siwidr(unsigned long port, unsigned char width) ...@@ -3548,7 +3525,7 @@ static void FPT_siwidr(unsigned long port, unsigned char width)
* ID specified. * ID specified.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_sssyncv(unsigned long p_port, unsigned char p_id, static void FPT_sssyncv(u32 p_port, unsigned char p_id,
unsigned char p_sync_value, unsigned char p_sync_value,
struct sccb_mgr_tar_info *currTar_Info) struct sccb_mgr_tar_info *currTar_Info)
{ {
...@@ -3620,7 +3597,7 @@ static void FPT_sssyncv(unsigned long p_port, unsigned char p_id, ...@@ -3620,7 +3597,7 @@ static void FPT_sssyncv(unsigned long p_port, unsigned char p_id,
* Description: Reset the desired card's SCSI bus. * Description: Reset the desired card's SCSI bus.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_sresb(unsigned long port, unsigned char p_card) static void FPT_sresb(u32 port, unsigned char p_card)
{ {
unsigned char scsiID, i; unsigned char scsiID, i;
...@@ -3713,7 +3690,7 @@ static void FPT_ssenss(struct sccb_card *pCurrCard) ...@@ -3713,7 +3690,7 @@ static void FPT_ssenss(struct sccb_card *pCurrCard)
currSCCB->Cdb[4] = currSCCB->RequestSenseLength; currSCCB->Cdb[4] = currSCCB->RequestSenseLength;
currSCCB->Cdb[5] = 0x00; currSCCB->Cdb[5] = 0x00;
currSCCB->Sccb_XferCnt = (unsigned long)currSCCB->RequestSenseLength; currSCCB->Sccb_XferCnt = (u32)currSCCB->RequestSenseLength;
currSCCB->Sccb_ATC = 0x00; currSCCB->Sccb_ATC = 0x00;
...@@ -3737,7 +3714,7 @@ static void FPT_ssenss(struct sccb_card *pCurrCard) ...@@ -3737,7 +3714,7 @@ static void FPT_ssenss(struct sccb_card *pCurrCard)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_sxfrp(unsigned long p_port, unsigned char p_card) static void FPT_sxfrp(u32 p_port, unsigned char p_card)
{ {
unsigned char curr_phz; unsigned char curr_phz;
...@@ -3819,7 +3796,7 @@ static void FPT_sxfrp(unsigned long p_port, unsigned char p_card) ...@@ -3819,7 +3796,7 @@ static void FPT_sxfrp(unsigned long p_port, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_schkdd(unsigned long port, unsigned char p_card) static void FPT_schkdd(u32 port, unsigned char p_card)
{ {
unsigned short TimeOutLoop; unsigned short TimeOutLoop;
unsigned char sPhase; unsigned char sPhase;
...@@ -3998,10 +3975,10 @@ static void FPT_sinits(struct sccb *p_sccb, unsigned char p_card) ...@@ -3998,10 +3975,10 @@ static void FPT_sinits(struct sccb *p_sccb, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_phaseDecode(unsigned long p_port, unsigned char p_card) static void FPT_phaseDecode(u32 p_port, unsigned char p_card)
{ {
unsigned char phase_ref; unsigned char phase_ref;
void (*phase) (unsigned long, unsigned char); void (*phase) (u32, unsigned char);
DISABLE_AUTO(p_port); DISABLE_AUTO(p_port);
...@@ -4021,7 +3998,7 @@ static void FPT_phaseDecode(unsigned long p_port, unsigned char p_card) ...@@ -4021,7 +3998,7 @@ static void FPT_phaseDecode(unsigned long p_port, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_phaseDataOut(unsigned long port, unsigned char p_card) static void FPT_phaseDataOut(u32 port, unsigned char p_card)
{ {
struct sccb *currSCCB; struct sccb *currSCCB;
...@@ -4062,7 +4039,7 @@ static void FPT_phaseDataOut(unsigned long port, unsigned char p_card) ...@@ -4062,7 +4039,7 @@ static void FPT_phaseDataOut(unsigned long port, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_phaseDataIn(unsigned long port, unsigned char p_card) static void FPT_phaseDataIn(u32 port, unsigned char p_card)
{ {
struct sccb *currSCCB; struct sccb *currSCCB;
...@@ -4106,10 +4083,10 @@ static void FPT_phaseDataIn(unsigned long port, unsigned char p_card) ...@@ -4106,10 +4083,10 @@ static void FPT_phaseDataIn(unsigned long port, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_phaseCommand(unsigned long p_port, unsigned char p_card) static void FPT_phaseCommand(u32 p_port, unsigned char p_card)
{ {
struct sccb *currSCCB; struct sccb *currSCCB;
unsigned long cdb_reg; u32 cdb_reg;
unsigned char i; unsigned char i;
currSCCB = FPT_BL_Card[p_card].currentSCCB; currSCCB = FPT_BL_Card[p_card].currentSCCB;
...@@ -4157,7 +4134,7 @@ static void FPT_phaseCommand(unsigned long p_port, unsigned char p_card) ...@@ -4157,7 +4134,7 @@ static void FPT_phaseCommand(unsigned long p_port, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_phaseStatus(unsigned long port, unsigned char p_card) static void FPT_phaseStatus(u32 port, unsigned char p_card)
{ {
/* Start-up the automation to finish off this command and let the /* Start-up the automation to finish off this command and let the
isr handle the interrupt for command complete when it comes in. isr handle the interrupt for command complete when it comes in.
...@@ -4178,7 +4155,7 @@ static void FPT_phaseStatus(unsigned long port, unsigned char p_card) ...@@ -4178,7 +4155,7 @@ static void FPT_phaseStatus(unsigned long port, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_phaseMsgOut(unsigned long port, unsigned char p_card) static void FPT_phaseMsgOut(u32 port, unsigned char p_card)
{ {
unsigned char message, scsiID; unsigned char message, scsiID;
struct sccb *currSCCB; struct sccb *currSCCB;
...@@ -4317,7 +4294,7 @@ static void FPT_phaseMsgOut(unsigned long port, unsigned char p_card) ...@@ -4317,7 +4294,7 @@ static void FPT_phaseMsgOut(unsigned long port, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_phaseMsgIn(unsigned long port, unsigned char p_card) static void FPT_phaseMsgIn(u32 port, unsigned char p_card)
{ {
unsigned char message; unsigned char message;
struct sccb *currSCCB; struct sccb *currSCCB;
...@@ -4364,7 +4341,7 @@ static void FPT_phaseMsgIn(unsigned long port, unsigned char p_card) ...@@ -4364,7 +4341,7 @@ static void FPT_phaseMsgIn(unsigned long port, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_phaseIllegal(unsigned long port, unsigned char p_card) static void FPT_phaseIllegal(u32 port, unsigned char p_card)
{ {
struct sccb *currSCCB; struct sccb *currSCCB;
...@@ -4390,9 +4367,9 @@ static void FPT_phaseIllegal(unsigned long port, unsigned char p_card) ...@@ -4390,9 +4367,9 @@ static void FPT_phaseIllegal(unsigned long port, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_phaseChkFifo(unsigned long port, unsigned char p_card) static void FPT_phaseChkFifo(u32 port, unsigned char p_card)
{ {
unsigned long xfercnt; u32 xfercnt;
struct sccb *currSCCB; struct sccb *currSCCB;
currSCCB = FPT_BL_Card[p_card].currentSCCB; currSCCB = FPT_BL_Card[p_card].currentSCCB;
...@@ -4461,7 +4438,7 @@ static void FPT_phaseChkFifo(unsigned long port, unsigned char p_card) ...@@ -4461,7 +4438,7 @@ static void FPT_phaseChkFifo(unsigned long port, unsigned char p_card)
* because of command complete or from a disconnect. * because of command complete or from a disconnect.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_phaseBusFree(unsigned long port, unsigned char p_card) static void FPT_phaseBusFree(u32 port, unsigned char p_card)
{ {
struct sccb *currSCCB; struct sccb *currSCCB;
...@@ -4557,9 +4534,9 @@ static void FPT_phaseBusFree(unsigned long port, unsigned char p_card) ...@@ -4557,9 +4534,9 @@ static void FPT_phaseBusFree(unsigned long port, unsigned char p_card)
* Description: Load the Automation RAM with the defualt map values. * Description: Load the Automation RAM with the defualt map values.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_autoLoadDefaultMap(unsigned long p_port) static void FPT_autoLoadDefaultMap(u32 p_port)
{ {
unsigned long map_addr; u32 map_addr;
ARAM_ACCESS(p_port); ARAM_ACCESS(p_port);
map_addr = p_port + hp_aramBase; map_addr = p_port + hp_aramBase;
...@@ -4663,7 +4640,7 @@ static void FPT_autoLoadDefaultMap(unsigned long p_port) ...@@ -4663,7 +4640,7 @@ static void FPT_autoLoadDefaultMap(unsigned long p_port)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_autoCmdCmplt(unsigned long p_port, unsigned char p_card) static void FPT_autoCmdCmplt(u32 p_port, unsigned char p_card)
{ {
struct sccb *currSCCB; struct sccb *currSCCB;
unsigned char status_byte; unsigned char status_byte;
...@@ -4936,8 +4913,7 @@ static void FPT_autoCmdCmplt(unsigned long p_port, unsigned char p_card) ...@@ -4936,8 +4913,7 @@ static void FPT_autoCmdCmplt(unsigned long p_port, unsigned char p_card)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_dataXferProcessor(unsigned long port, static void FPT_dataXferProcessor(u32 port, struct sccb_card *pCurrCard)
struct sccb_card *pCurrCard)
{ {
struct sccb *currSCCB; struct sccb *currSCCB;
...@@ -4970,22 +4946,18 @@ static void FPT_dataXferProcessor(unsigned long port, ...@@ -4970,22 +4946,18 @@ static void FPT_dataXferProcessor(unsigned long port,
* Description: * Description:
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_busMstrSGDataXferStart(unsigned long p_port, static void FPT_busMstrSGDataXferStart(u32 p_port, struct sccb *pcurrSCCB)
struct sccb *pcurrSCCB)
{ {
unsigned long count, addr, tmpSGCnt; u32 count, addr, tmpSGCnt;
unsigned int sg_index; unsigned int sg_index;
unsigned char sg_count, i; unsigned char sg_count, i;
unsigned long reg_offset; u32 reg_offset;
struct blogic_sg_seg *segp;
if (pcurrSCCB->Sccb_XferState & F_HOST_XFER_DIR) {
count = ((unsigned long)HOST_RD_CMD) << 24; if (pcurrSCCB->Sccb_XferState & F_HOST_XFER_DIR)
} count = ((u32)HOST_RD_CMD) << 24;
else
else { count = ((u32)HOST_WRT_CMD) << 24;
count = ((unsigned long)HOST_WRT_CMD) << 24;
}
sg_count = 0; sg_count = 0;
tmpSGCnt = 0; tmpSGCnt = 0;
...@@ -4998,25 +4970,20 @@ static void FPT_busMstrSGDataXferStart(unsigned long p_port, ...@@ -4998,25 +4970,20 @@ static void FPT_busMstrSGDataXferStart(unsigned long p_port,
WR_HARPOON(p_port + hp_page_ctrl, i); WR_HARPOON(p_port + hp_page_ctrl, i);
while ((sg_count < (unsigned char)SG_BUF_CNT) && while ((sg_count < (unsigned char)SG_BUF_CNT) &&
((unsigned long)(sg_index * (unsigned int)SG_ELEMENT_SIZE) < ((sg_index * (unsigned int)SG_ELEMENT_SIZE) <
pcurrSCCB->DataLength)) { pcurrSCCB->DataLength)) {
tmpSGCnt += *(((unsigned long *)pcurrSCCB->DataPointer) +
(sg_index * 2));
count |= *(((unsigned long *)pcurrSCCB->DataPointer) +
(sg_index * 2));
addr = *(((unsigned long *)pcurrSCCB->DataPointer) + segp = (struct blogic_sg_seg *)(pcurrSCCB->DataPointer) +
((sg_index * 2) + 1)); sg_index;
tmpSGCnt += segp->segbytes;
count |= segp->segbytes;
addr = segp->segdata;
if ((!sg_count) && (pcurrSCCB->Sccb_SGoffset)) { if ((!sg_count) && (pcurrSCCB->Sccb_SGoffset)) {
addr += addr +=
((count & 0x00FFFFFFL) - pcurrSCCB->Sccb_SGoffset); ((count & 0x00FFFFFFL) - pcurrSCCB->Sccb_SGoffset);
count = count =
(count & 0xFF000000L) | pcurrSCCB->Sccb_SGoffset; (count & 0xFF000000L) | pcurrSCCB->Sccb_SGoffset;
tmpSGCnt = count & 0x00FFFFFFL; tmpSGCnt = count & 0x00FFFFFFL;
} }
...@@ -5072,17 +5039,15 @@ static void FPT_busMstrSGDataXferStart(unsigned long p_port, ...@@ -5072,17 +5039,15 @@ static void FPT_busMstrSGDataXferStart(unsigned long p_port,
* Description: * Description:
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_busMstrDataXferStart(unsigned long p_port, static void FPT_busMstrDataXferStart(u32 p_port, struct sccb *pcurrSCCB)
struct sccb *pcurrSCCB)
{ {
unsigned long addr, count; u32 addr, count;
if (!(pcurrSCCB->Sccb_XferState & F_AUTO_SENSE)) { if (!(pcurrSCCB->Sccb_XferState & F_AUTO_SENSE)) {
count = pcurrSCCB->Sccb_XferCnt; count = pcurrSCCB->Sccb_XferCnt;
addr = addr = (u32)(unsigned long)pcurrSCCB->DataPointer + pcurrSCCB->Sccb_ATC;
(unsigned long)pcurrSCCB->DataPointer + pcurrSCCB->Sccb_ATC;
} }
else { else {
...@@ -5127,7 +5092,7 @@ static void FPT_busMstrDataXferStart(unsigned long p_port, ...@@ -5127,7 +5092,7 @@ static void FPT_busMstrDataXferStart(unsigned long p_port,
* command busy is also time out, it'll just give up. * command busy is also time out, it'll just give up.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned char FPT_busMstrTimeOut(unsigned long p_port) static unsigned char FPT_busMstrTimeOut(u32 p_port)
{ {
unsigned long timeout; unsigned long timeout;
...@@ -5166,13 +5131,14 @@ static unsigned char FPT_busMstrTimeOut(unsigned long p_port) ...@@ -5166,13 +5131,14 @@ static unsigned char FPT_busMstrTimeOut(unsigned long p_port)
* Description: Abort any in progress transfer. * Description: Abort any in progress transfer.
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_hostDataXferAbort(unsigned long port, unsigned char p_card, static void FPT_hostDataXferAbort(u32 port, unsigned char p_card,
struct sccb *pCurrSCCB) struct sccb *pCurrSCCB)
{ {
unsigned long timeout; unsigned long timeout;
unsigned long remain_cnt; unsigned long remain_cnt;
unsigned int sg_ptr; u32 sg_ptr;
struct blogic_sg_seg *segp;
FPT_BL_Card[p_card].globalFlags &= ~F_HOST_XFER_ACT; FPT_BL_Card[p_card].globalFlags &= ~F_HOST_XFER_ACT;
...@@ -5236,9 +5202,8 @@ static void FPT_hostDataXferAbort(unsigned long port, unsigned char p_card, ...@@ -5236,9 +5202,8 @@ static void FPT_hostDataXferAbort(unsigned long port, unsigned char p_card,
(unsigned int)(pCurrSCCB->DataLength / (unsigned int)(pCurrSCCB->DataLength /
SG_ELEMENT_SIZE)) { SG_ELEMENT_SIZE)) {
sg_ptr = sg_ptr = (u32)(pCurrSCCB->DataLength /
(unsigned int)(pCurrSCCB->DataLength / SG_ELEMENT_SIZE);
SG_ELEMENT_SIZE);
} }
remain_cnt = pCurrSCCB->Sccb_XferCnt; remain_cnt = pCurrSCCB->Sccb_XferCnt;
...@@ -5246,23 +5211,13 @@ static void FPT_hostDataXferAbort(unsigned long port, unsigned char p_card, ...@@ -5246,23 +5211,13 @@ static void FPT_hostDataXferAbort(unsigned long port, unsigned char p_card,
while (remain_cnt < 0x01000000L) { while (remain_cnt < 0x01000000L) {
sg_ptr--; sg_ptr--;
segp = (struct blogic_sg_seg *)(pCurrSCCB->
if (remain_cnt > DataPointer) + (sg_ptr * 2);
(unsigned if (remain_cnt > (unsigned long)segp->segbytes)
long)(*(((unsigned long *)pCurrSCCB->
DataPointer) + (sg_ptr * 2)))) {
remain_cnt -= remain_cnt -=
(unsigned (unsigned long)segp->segbytes;
long)(*(((unsigned long *) else
pCurrSCCB->DataPointer) +
(sg_ptr * 2)));
}
else {
break; break;
}
} }
if (remain_cnt < 0x01000000L) { if (remain_cnt < 0x01000000L) {
...@@ -5418,23 +5373,18 @@ static void FPT_hostDataXferAbort(unsigned long port, unsigned char p_card, ...@@ -5418,23 +5373,18 @@ static void FPT_hostDataXferAbort(unsigned long port, unsigned char p_card,
pCurrSCCB->Sccb_SGoffset = 0x00; pCurrSCCB->Sccb_SGoffset = 0x00;
if ((unsigned long)(pCurrSCCB->Sccb_sgseg * if ((u32)(pCurrSCCB->Sccb_sgseg * SG_ELEMENT_SIZE) >=
SG_ELEMENT_SIZE) >= pCurrSCCB->DataLength) {
pCurrSCCB->DataLength) {
pCurrSCCB->Sccb_XferState |= F_ALL_XFERRED; pCurrSCCB->Sccb_XferState |= F_ALL_XFERRED;
pCurrSCCB->Sccb_sgseg = pCurrSCCB->Sccb_sgseg =
(unsigned short)(pCurrSCCB->DataLength / (unsigned short)(pCurrSCCB->DataLength /
SG_ELEMENT_SIZE); SG_ELEMENT_SIZE);
} }
} }
else { else {
if (!(pCurrSCCB->Sccb_XferState & F_AUTO_SENSE)) if (!(pCurrSCCB->Sccb_XferState & F_AUTO_SENSE))
pCurrSCCB->Sccb_XferState |= F_ALL_XFERRED; pCurrSCCB->Sccb_XferState |= F_ALL_XFERRED;
} }
} }
...@@ -5454,21 +5404,22 @@ static void FPT_hostDataXferRestart(struct sccb *currSCCB) ...@@ -5454,21 +5404,22 @@ static void FPT_hostDataXferRestart(struct sccb *currSCCB)
{ {
unsigned long data_count; unsigned long data_count;
unsigned int sg_index; unsigned int sg_index;
unsigned long *sg_ptr; struct blogic_sg_seg *segp;
if (currSCCB->Sccb_XferState & F_SG_XFER) { if (currSCCB->Sccb_XferState & F_SG_XFER) {
currSCCB->Sccb_XferCnt = 0; currSCCB->Sccb_XferCnt = 0;
sg_index = 0xffff; /*Index by long words into sg list. */ sg_index = 0xffff; /*Index by long words into sg list. */
data_count = 0; /*Running count of SG xfer counts. */ data_count = 0; /*Running count of SG xfer counts. */
sg_ptr = (unsigned long *)currSCCB->DataPointer;
while (data_count < currSCCB->Sccb_ATC) { while (data_count < currSCCB->Sccb_ATC) {
sg_index++; sg_index++;
data_count += *(sg_ptr + (sg_index * 2)); segp = (struct blogic_sg_seg *)(currSCCB->DataPointer) +
(sg_index * 2);
data_count += segp->segbytes;
} }
if (data_count == currSCCB->Sccb_ATC) { if (data_count == currSCCB->Sccb_ATC) {
...@@ -5504,7 +5455,7 @@ static void FPT_scini(unsigned char p_card, unsigned char p_our_id, ...@@ -5504,7 +5455,7 @@ static void FPT_scini(unsigned char p_card, unsigned char p_our_id,
{ {
unsigned char loser, assigned_id; unsigned char loser, assigned_id;
unsigned long p_port; u32 p_port;
unsigned char i, k, ScamFlg; unsigned char i, k, ScamFlg;
struct sccb_card *currCard; struct sccb_card *currCard;
...@@ -5709,7 +5660,7 @@ static void FPT_scini(unsigned char p_card, unsigned char p_our_id, ...@@ -5709,7 +5660,7 @@ static void FPT_scini(unsigned char p_card, unsigned char p_our_id,
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static int FPT_scarb(unsigned long p_port, unsigned char p_sel_type) static int FPT_scarb(u32 p_port, unsigned char p_sel_type)
{ {
if (p_sel_type == INIT_SELTD) { if (p_sel_type == INIT_SELTD) {
...@@ -5771,7 +5722,7 @@ static int FPT_scarb(unsigned long p_port, unsigned char p_sel_type) ...@@ -5771,7 +5722,7 @@ static int FPT_scarb(unsigned long p_port, unsigned char p_sel_type)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_scbusf(unsigned long p_port) static void FPT_scbusf(u32 p_port)
{ {
WR_HARPOON(p_port + hp_page_ctrl, WR_HARPOON(p_port + hp_page_ctrl,
(RD_HARPOON(p_port + hp_page_ctrl) | G_INT_DISABLE)); (RD_HARPOON(p_port + hp_page_ctrl) | G_INT_DISABLE));
...@@ -5803,7 +5754,7 @@ static void FPT_scbusf(unsigned long p_port) ...@@ -5803,7 +5754,7 @@ static void FPT_scbusf(unsigned long p_port)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_scasid(unsigned char p_card, unsigned long p_port) static void FPT_scasid(unsigned char p_card, u32 p_port)
{ {
unsigned char temp_id_string[ID_STRING_LENGTH]; unsigned char temp_id_string[ID_STRING_LENGTH];
...@@ -5880,7 +5831,7 @@ static void FPT_scasid(unsigned char p_card, unsigned long p_port) ...@@ -5880,7 +5831,7 @@ static void FPT_scasid(unsigned char p_card, unsigned long p_port)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_scsel(unsigned long p_port) static void FPT_scsel(u32 p_port)
{ {
WR_HARPOON(p_port + hp_scsisig, SCSI_SEL); WR_HARPOON(p_port + hp_scsisig, SCSI_SEL);
...@@ -5914,7 +5865,7 @@ static void FPT_scsel(unsigned long p_port) ...@@ -5914,7 +5865,7 @@ static void FPT_scsel(unsigned long p_port)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned char FPT_scxferc(unsigned long p_port, unsigned char p_data) static unsigned char FPT_scxferc(u32 p_port, unsigned char p_data)
{ {
unsigned char curr_data, ret_data; unsigned char curr_data, ret_data;
...@@ -5964,8 +5915,7 @@ static unsigned char FPT_scxferc(unsigned long p_port, unsigned char p_data) ...@@ -5964,8 +5915,7 @@ static unsigned char FPT_scxferc(unsigned long p_port, unsigned char p_data)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned char FPT_scsendi(unsigned long p_port, static unsigned char FPT_scsendi(u32 p_port, unsigned char p_id_string[])
unsigned char p_id_string[])
{ {
unsigned char ret_data, byte_cnt, bit_cnt, defer; unsigned char ret_data, byte_cnt, bit_cnt, defer;
...@@ -6016,8 +5966,7 @@ static unsigned char FPT_scsendi(unsigned long p_port, ...@@ -6016,8 +5966,7 @@ static unsigned char FPT_scsendi(unsigned long p_port,
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned char FPT_sciso(unsigned long p_port, static unsigned char FPT_sciso(u32 p_port, unsigned char p_id_string[])
unsigned char p_id_string[])
{ {
unsigned char ret_data, the_data, byte_cnt, bit_cnt; unsigned char ret_data, the_data, byte_cnt, bit_cnt;
...@@ -6075,7 +6024,7 @@ static unsigned char FPT_sciso(unsigned long p_port, ...@@ -6075,7 +6024,7 @@ static unsigned char FPT_sciso(unsigned long p_port,
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_scwirod(unsigned long p_port, unsigned char p_data_bit) static void FPT_scwirod(u32 p_port, unsigned char p_data_bit)
{ {
unsigned char i; unsigned char i;
...@@ -6102,7 +6051,7 @@ static void FPT_scwirod(unsigned long p_port, unsigned char p_data_bit) ...@@ -6102,7 +6051,7 @@ static void FPT_scwirod(unsigned long p_port, unsigned char p_data_bit)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_scwiros(unsigned long p_port, unsigned char p_data_bit) static void FPT_scwiros(u32 p_port, unsigned char p_data_bit)
{ {
unsigned char i; unsigned char i;
...@@ -6154,7 +6103,7 @@ static unsigned char FPT_scvalq(unsigned char p_quintet) ...@@ -6154,7 +6103,7 @@ static unsigned char FPT_scvalq(unsigned char p_quintet)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned char FPT_scsell(unsigned long p_port, unsigned char targ_id) static unsigned char FPT_scsell(u32 p_port, unsigned char targ_id)
{ {
unsigned long i; unsigned long i;
...@@ -6236,7 +6185,7 @@ static unsigned char FPT_scsell(unsigned long p_port, unsigned char targ_id) ...@@ -6236,7 +6185,7 @@ static unsigned char FPT_scsell(unsigned long p_port, unsigned char targ_id)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_scwtsel(unsigned long p_port) static void FPT_scwtsel(u32 p_port)
{ {
while (!(RDW_HARPOON((p_port + hp_intstat)) & SCAM_SEL)) { while (!(RDW_HARPOON((p_port + hp_intstat)) & SCAM_SEL)) {
} }
...@@ -6250,8 +6199,7 @@ static void FPT_scwtsel(unsigned long p_port) ...@@ -6250,8 +6199,7 @@ static void FPT_scwtsel(unsigned long p_port)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_inisci(unsigned char p_card, unsigned long p_port, static void FPT_inisci(unsigned char p_card, u32 p_port, unsigned char p_our_id)
unsigned char p_our_id)
{ {
unsigned char i, k, max_id; unsigned char i, k, max_id;
unsigned short ee_data; unsigned short ee_data;
...@@ -6437,7 +6385,7 @@ static unsigned char FPT_scmachid(unsigned char p_card, ...@@ -6437,7 +6385,7 @@ static unsigned char FPT_scmachid(unsigned char p_card,
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_scsavdi(unsigned char p_card, unsigned long p_port) static void FPT_scsavdi(unsigned char p_card, u32 p_port)
{ {
unsigned char i, k, max_id; unsigned char i, k, max_id;
unsigned short ee_data, sum_data; unsigned short ee_data, sum_data;
...@@ -6482,7 +6430,7 @@ static void FPT_scsavdi(unsigned char p_card, unsigned long p_port) ...@@ -6482,7 +6430,7 @@ static void FPT_scsavdi(unsigned char p_card, unsigned long p_port)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_XbowInit(unsigned long port, unsigned char ScamFlg) static void FPT_XbowInit(u32 port, unsigned char ScamFlg)
{ {
unsigned char i; unsigned char i;
...@@ -6531,7 +6479,7 @@ static void FPT_XbowInit(unsigned long port, unsigned char ScamFlg) ...@@ -6531,7 +6479,7 @@ static void FPT_XbowInit(unsigned long port, unsigned char ScamFlg)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_BusMasterInit(unsigned long p_port) static void FPT_BusMasterInit(u32 p_port)
{ {
WR_HARPOON(p_port + hp_sys_ctrl, DRVR_RST); WR_HARPOON(p_port + hp_sys_ctrl, DRVR_RST);
...@@ -6558,7 +6506,7 @@ static void FPT_BusMasterInit(unsigned long p_port) ...@@ -6558,7 +6506,7 @@ static void FPT_BusMasterInit(unsigned long p_port)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_DiagEEPROM(unsigned long p_port) static void FPT_DiagEEPROM(u32 p_port)
{ {
unsigned short index, temp, max_wd_cnt; unsigned short index, temp, max_wd_cnt;
...@@ -7206,7 +7154,7 @@ static void FPT_utilUpdateResidual(struct sccb *p_SCCB) ...@@ -7206,7 +7154,7 @@ static void FPT_utilUpdateResidual(struct sccb *p_SCCB)
{ {
unsigned long partial_cnt; unsigned long partial_cnt;
unsigned int sg_index; unsigned int sg_index;
unsigned long *sg_ptr; struct blogic_sg_seg *segp;
if (p_SCCB->Sccb_XferState & F_ALL_XFERRED) { if (p_SCCB->Sccb_XferState & F_ALL_XFERRED) {
...@@ -7219,7 +7167,6 @@ static void FPT_utilUpdateResidual(struct sccb *p_SCCB) ...@@ -7219,7 +7167,6 @@ static void FPT_utilUpdateResidual(struct sccb *p_SCCB)
sg_index = p_SCCB->Sccb_sgseg; sg_index = p_SCCB->Sccb_sgseg;
sg_ptr = (unsigned long *)p_SCCB->DataPointer;
if (p_SCCB->Sccb_SGoffset) { if (p_SCCB->Sccb_SGoffset) {
...@@ -7229,8 +7176,9 @@ static void FPT_utilUpdateResidual(struct sccb *p_SCCB) ...@@ -7229,8 +7176,9 @@ static void FPT_utilUpdateResidual(struct sccb *p_SCCB)
while (((unsigned long)sg_index * while (((unsigned long)sg_index *
(unsigned long)SG_ELEMENT_SIZE) < p_SCCB->DataLength) { (unsigned long)SG_ELEMENT_SIZE) < p_SCCB->DataLength) {
segp = (struct blogic_sg_seg *)(p_SCCB->DataPointer) +
partial_cnt += *(sg_ptr + (sg_index * 2)); (sg_index * 2);
partial_cnt += segp->segbytes;
sg_index++; sg_index++;
} }
...@@ -7251,7 +7199,7 @@ static void FPT_utilUpdateResidual(struct sccb *p_SCCB) ...@@ -7251,7 +7199,7 @@ static void FPT_utilUpdateResidual(struct sccb *p_SCCB)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_Wait1Second(unsigned long p_port) static void FPT_Wait1Second(u32 p_port)
{ {
unsigned char i; unsigned char i;
...@@ -7275,7 +7223,7 @@ static void FPT_Wait1Second(unsigned long p_port) ...@@ -7275,7 +7223,7 @@ static void FPT_Wait1Second(unsigned long p_port)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_Wait(unsigned long p_port, unsigned char p_delay) static void FPT_Wait(u32 p_port, unsigned char p_delay)
{ {
unsigned char old_timer; unsigned char old_timer;
unsigned char green_flag; unsigned char green_flag;
...@@ -7321,7 +7269,7 @@ static void FPT_Wait(unsigned long p_port, unsigned char p_delay) ...@@ -7321,7 +7269,7 @@ static void FPT_Wait(unsigned long p_port, unsigned char p_delay)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_utilEEWriteOnOff(unsigned long p_port, unsigned char p_mode) static void FPT_utilEEWriteOnOff(u32 p_port, unsigned char p_mode)
{ {
unsigned char ee_value; unsigned char ee_value;
...@@ -7350,7 +7298,7 @@ static void FPT_utilEEWriteOnOff(unsigned long p_port, unsigned char p_mode) ...@@ -7350,7 +7298,7 @@ static void FPT_utilEEWriteOnOff(unsigned long p_port, unsigned char p_mode)
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_utilEEWrite(unsigned long p_port, unsigned short ee_data, static void FPT_utilEEWrite(u32 p_port, unsigned short ee_data,
unsigned short ee_addr) unsigned short ee_addr)
{ {
...@@ -7401,7 +7349,7 @@ static void FPT_utilEEWrite(unsigned long p_port, unsigned short ee_data, ...@@ -7401,7 +7349,7 @@ static void FPT_utilEEWrite(unsigned long p_port, unsigned short ee_data,
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned short FPT_utilEERead(unsigned long p_port, static unsigned short FPT_utilEERead(u32 p_port,
unsigned short ee_addr) unsigned short ee_addr)
{ {
unsigned short i, ee_data1, ee_data2; unsigned short i, ee_data1, ee_data2;
...@@ -7431,8 +7379,7 @@ static unsigned short FPT_utilEERead(unsigned long p_port, ...@@ -7431,8 +7379,7 @@ static unsigned short FPT_utilEERead(unsigned long p_port,
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static unsigned short FPT_utilEEReadOrg(unsigned long p_port, static unsigned short FPT_utilEEReadOrg(u32 p_port, unsigned short ee_addr)
unsigned short ee_addr)
{ {
unsigned char ee_value; unsigned char ee_value;
...@@ -7479,7 +7426,7 @@ static unsigned short FPT_utilEEReadOrg(unsigned long p_port, ...@@ -7479,7 +7426,7 @@ static unsigned short FPT_utilEEReadOrg(unsigned long p_port,
* *
*---------------------------------------------------------------------*/ *---------------------------------------------------------------------*/
static void FPT_utilEESendCmdAddr(unsigned long p_port, unsigned char ee_cmd, static void FPT_utilEESendCmdAddr(u32 p_port, unsigned char ee_cmd,
unsigned short ee_addr) unsigned short ee_addr)
{ {
unsigned char ee_value; unsigned char ee_value;
...@@ -7579,7 +7526,7 @@ FlashPoint__ProbeHostAdapter(struct fpoint_info *FlashPointInfo) ...@@ -7579,7 +7526,7 @@ FlashPoint__ProbeHostAdapter(struct fpoint_info *FlashPointInfo)
FlashPointInfo); FlashPointInfo);
} }
static inline unsigned int static inline void *
FlashPoint__HardwareResetHostAdapter(struct fpoint_info *FlashPointInfo) FlashPoint__HardwareResetHostAdapter(struct fpoint_info *FlashPointInfo)
{ {
return FlashPoint_HardwareResetHostAdapter((struct sccb_mgr_info *) return FlashPoint_HardwareResetHostAdapter((struct sccb_mgr_info *)
...@@ -7587,33 +7534,31 @@ FlashPoint__HardwareResetHostAdapter(struct fpoint_info *FlashPointInfo) ...@@ -7587,33 +7534,31 @@ FlashPoint__HardwareResetHostAdapter(struct fpoint_info *FlashPointInfo)
} }
static inline void static inline void
FlashPoint__ReleaseHostAdapter(unsigned int CardHandle) FlashPoint__ReleaseHostAdapter(void *CardHandle)
{ {
FlashPoint_ReleaseHostAdapter(CardHandle); FlashPoint_ReleaseHostAdapter(CardHandle);
} }
static inline void static inline void
FlashPoint__StartCCB(unsigned int CardHandle, FlashPoint__StartCCB(void *CardHandle, struct blogic_ccb *CCB)
struct blogic_ccb *CCB)
{ {
FlashPoint_StartCCB(CardHandle, (struct sccb *)CCB); FlashPoint_StartCCB(CardHandle, (struct sccb *)CCB);
} }
static inline void static inline void
FlashPoint__AbortCCB(unsigned int CardHandle, FlashPoint__AbortCCB(void *CardHandle, struct blogic_ccb *CCB)
struct blogic_ccb *CCB)
{ {
FlashPoint_AbortCCB(CardHandle, (struct sccb *)CCB); FlashPoint_AbortCCB(CardHandle, (struct sccb *)CCB);
} }
static inline bool static inline bool
FlashPoint__InterruptPending(unsigned int CardHandle) FlashPoint__InterruptPending(void *CardHandle)
{ {
return FlashPoint_InterruptPending(CardHandle); return FlashPoint_InterruptPending(CardHandle);
} }
static inline int static inline int
FlashPoint__HandleInterrupt(unsigned int CardHandle) FlashPoint__HandleInterrupt(void *CardHandle)
{ {
return FlashPoint_HandleInterrupt(CardHandle); return FlashPoint_HandleInterrupt(CardHandle);
} }
...@@ -7633,11 +7578,11 @@ FlashPoint__HandleInterrupt(unsigned int CardHandle) ...@@ -7633,11 +7578,11 @@ FlashPoint__HandleInterrupt(unsigned int CardHandle)
*/ */
extern unsigned char FlashPoint_ProbeHostAdapter(struct fpoint_info *); extern unsigned char FlashPoint_ProbeHostAdapter(struct fpoint_info *);
extern unsigned int FlashPoint_HardwareResetHostAdapter(struct fpoint_info *); extern void *FlashPoint_HardwareResetHostAdapter(struct fpoint_info *);
extern void FlashPoint_StartCCB(unsigned int, struct blogic_ccb *); extern void FlashPoint_StartCCB(void *, struct blogic_ccb *);
extern int FlashPoint_AbortCCB(unsigned int, struct blogic_ccb *); extern int FlashPoint_AbortCCB(void *, struct blogic_ccb *);
extern bool FlashPoint_InterruptPending(unsigned int); extern bool FlashPoint_InterruptPending(void *);
extern int FlashPoint_HandleInterrupt(unsigned int); extern int FlashPoint_HandleInterrupt(void *);
extern void FlashPoint_ReleaseHostAdapter(unsigned int); extern void FlashPoint_ReleaseHostAdapter(void *);
#endif /* CONFIG_SCSI_FLASHPOINT */ #endif /* CONFIG_SCSI_FLASHPOINT */
...@@ -633,7 +633,7 @@ config SCSI_BUSLOGIC ...@@ -633,7 +633,7 @@ config SCSI_BUSLOGIC
config SCSI_FLASHPOINT config SCSI_FLASHPOINT
bool "FlashPoint support" bool "FlashPoint support"
depends on SCSI_BUSLOGIC && PCI && X86_32 depends on SCSI_BUSLOGIC && PCI
help help
This option allows you to add FlashPoint support to the This option allows you to add FlashPoint support to the
BusLogic SCSI driver. The FlashPoint SCCB Manager code is BusLogic SCSI driver. The FlashPoint SCCB Manager code is
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment