***********************************************************************/
/* $Id: scsiiom.c,v 2.55.2.17 2000/12/20 00:39:37 garloff Exp $ */
static void __inline__
-dc390_freetag (PDCB pDCB, PSRB pSRB)
+dc390_freetag (struct dc390_dcb* pDCB, struct dc390_srb* pSRB)
{
if (pSRB->TagNumber < 255) {
pDCB->TagMask &= ~(1 << pSRB->TagNumber); /* free tag mask */
}
-static UCHAR
-dc390_StartSCSI( PACB pACB, PDCB pDCB, PSRB pSRB )
+static u8
+dc390_StartSCSI( struct dc390_acb* pACB, struct dc390_dcb* pDCB, struct dc390_srb* pSRB )
{
- UCHAR cmd; UCHAR disc_allowed, try_sync_nego;
+ u8 cmd; u8 disc_allowed, try_sync_nego;
pSRB->ScsiPhase = SCSI_NOP0;
/* Change 99/05/31: Don't use tags when not disconnecting (BUSY) */
if ((pDCB->SyncMode & EN_TAG_QUEUEING) && disc_allowed)
{
- UCHAR tag_no = 0;
+ u8 tag_no = 0;
while ((1 << tag_no) & pDCB->TagMask) tag_no++;
if (tag_no >= sizeof (pDCB->TagMask)*8 || tag_no >= pDCB->MaxCommand) {
printk (KERN_WARNING "DC390: Out of tags for Dev. %02x %02x\n", pDCB->TargetID, pDCB->TargetLUN);
if (try_sync_nego)
{
- UCHAR Sync_Off = pDCB->SyncOffset;
+ u8 Sync_Off = pDCB->SyncOffset;
DEBUG0(printk (KERN_INFO "DC390: NEW Sync Nego code triggered (%i %i)\n", pDCB->TargetID, pDCB->TargetLUN));
pSRB->MsgOutBuf[0] = EXTENDED_MESSAGE;
pSRB->MsgOutBuf[1] = 3;
}
else /* write cmnd to bus */
{
- PUCHAR ptr; UCHAR i;
- ptr = (PUCHAR) pSRB->pcmd->cmnd;
+ u8 *ptr; u8 i;
+ ptr = (u8 *) pSRB->pcmd->cmnd;
for (i=0; i<pSRB->pcmd->cmd_len; i++)
DC390_write8 (ScsiFifo, *(ptr++));
}
#if DMA_INT
/* This is similar to AM53C974.c ... */
-static UCHAR
-dc390_dma_intr (PACB pACB)
+static u8
+dc390_dma_intr (struct dc390_acb* pACB)
{
- PSRB pSRB;
- UCHAR dstate;
- DEBUG0(USHORT pstate;PDEVDECL1);
+ struct dc390_srb* pSRB;
+ u8 dstate;
+ DEBUG0(u16 pstate; struct pci_dev *pdev = pACB->pdev);
- DEBUG0(PDEVSET1);
- DEBUG0(PCI_READ_CONFIG_WORD (PDEV, PCI_STATUS, &pstate));
+ DEBUG0(pci_read_config_word(pdev, PCI_STATUS, &pstate));
DEBUG0(if (pstate & (PCI_STATUS_SIG_SYSTEM_ERROR | PCI_STATUS_DETECTED_PARITY))\
{ printk(KERN_WARNING "DC390: PCI state = %04x!\n", pstate); \
- PCI_WRITE_CONFIG_WORD (PDEV, PCI_STATUS, (PCI_STATUS_SIG_SYSTEM_ERROR | PCI_STATUS_DETECTED_PARITY));});
+ pci_write_config_word(pdev, PCI_STATUS, (PCI_STATUS_SIG_SYSTEM_ERROR | PCI_STATUS_DETECTED_PARITY));});
dstate = DC390_read8 (DMA_Status);
}
if (dstate & DMA_XFER_DONE)
{
- UINT residual, xferCnt; int ctr = 6000000;
+ u32 residual, xferCnt; int ctr = 6000000;
if (! (DC390_read8 (DMA_Cmd) & READ_DIRECTION))
{
do
static irqreturn_t __inline__
DC390_Interrupt( int irq, void *dev_id, struct pt_regs *regs)
{
- PACB pACB, pACB2;
- PDCB pDCB;
- PSRB pSRB;
- UCHAR sstatus=0;
- UCHAR phase;
- void (*stateV)( PACB, PSRB, PUCHAR );
- UCHAR istate, istatus;
+ struct dc390_acb *pACB, *pACB2;
+ struct dc390_dcb *pDCB;
+ struct dc390_srb *pSRB;
+ u8 sstatus=0;
+ u8 phase;
+ void (*stateV)( struct dc390_acb*, struct dc390_srb*, u8 *);
+ u8 istate, istatus;
#if DMA_INT
- UCHAR dstatus;
+ u8 dstatus;
#endif
- pACB = (PACB)dev_id;
+ pACB = (struct dc390_acb*)dev_id;
for (pACB2 = dc390_pACB_start; (pACB2 && pACB2 != pACB); pACB2 = pACB2->pNextACB);
if (!pACB2)
{
( *stateV )( pACB, pSRB, &sstatus );
pSRB->ScsiPhase = sstatus & 7;
- phase = (UCHAR) sstatus & 7;
+ phase = (u8) sstatus & 7;
DEBUG1(printk (KERN_INFO "DC390: [%i]%s(1) (%02x)\n", phase, dc390_p1_str[phase], sstatus));
stateV = (void *) dc390_phase1[phase];
( *stateV )( pACB, pSRB, &sstatus );
}
static void
-dc390_DataOut_0( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_DataOut_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
- UCHAR sstatus;
- PSGL psgl;
- UINT ResidCnt, xferCnt;
- UCHAR dstate = 0;
+ u8 sstatus;
+ struct scatterlist *psgl;
+ u32 ResidCnt, xferCnt;
+ u8 dstate = 0;
sstatus = *psstatus;
}
else
{
- ResidCnt = (UINT) DC390_read8 (Current_Fifo) & 0x1f;
- ResidCnt |= (UINT) DC390_read8 (CtcReg_High) << 16;
- ResidCnt |= (UINT) DC390_read8 (CtcReg_Mid) << 8;
- ResidCnt += (UINT) DC390_read8 (CtcReg_Low);
+ ResidCnt = (u32) DC390_read8 (Current_Fifo) & 0x1f;
+ ResidCnt |= (u32) DC390_read8 (CtcReg_High) << 16;
+ ResidCnt |= (u32) DC390_read8 (CtcReg_Mid) << 8;
+ ResidCnt += (u32) DC390_read8 (CtcReg_Low);
xferCnt = pSRB->SGToBeXferLen - ResidCnt;
pSRB->SGBusAddr += xferCnt;
}
static void
-dc390_DataIn_0( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_DataIn_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
- UCHAR sstatus, residual, bval;
- PSGL psgl;
- UINT ResidCnt, i;
- ULONG xferCnt;
- PUCHAR ptr;
+ u8 sstatus, residual, bval;
+ struct scatterlist *psgl;
+ u32 ResidCnt, i;
+ unsigned long xferCnt;
+ u8 *ptr;
sstatus = *psstatus;
}
dc390_laststatus &= ~0xff000000;
dc390_laststatus |= dstate << 24;
- DEBUG1(ResidCnt = ((ULONG) DC390_read8 (CtcReg_High) << 16) \
- + ((ULONG) DC390_read8 (CtcReg_Mid) << 8) \
- + ((ULONG) DC390_read8 (CtcReg_Low)));
+ DEBUG1(ResidCnt = ((unsigned long) DC390_read8 (CtcReg_High) << 16) \
+ + ((unsigned long) DC390_read8 (CtcReg_Mid) << 8) \
+ + ((unsigned long) DC390_read8 (CtcReg_Low)));
DEBUG1(printk (KERN_DEBUG "Count_2_Zero (ResidCnt=%i,ToBeXfer=%li),", ResidCnt, pSRB->SGToBeXferLen));
DC390_write8 (DMA_Cmd, READ_DIRECTION+DMA_IDLE_CMD); /* | DMA_INT */
dc390_laststatus &= ~0xff000000; dc390_laststatus |= bval << 24;
DEBUG1(printk (KERN_DEBUG "Blast: Read %i times DMA_Status %02x", 0xa000-i, bval));
- ResidCnt = (UINT) DC390_read8 (CtcReg_High);
+ ResidCnt = (u32) DC390_read8 (CtcReg_High);
ResidCnt <<= 8;
- ResidCnt |= (UINT) DC390_read8 (CtcReg_Mid);
+ ResidCnt |= (u32) DC390_read8 (CtcReg_Mid);
ResidCnt <<= 8;
- ResidCnt |= (UINT) DC390_read8 (CtcReg_Low);
+ ResidCnt |= (u32) DC390_read8 (CtcReg_Low);
xferCnt = pSRB->SGToBeXferLen - ResidCnt;
pSRB->SGBusAddr += xferCnt;
if( residual )
{
bval = DC390_read8 (ScsiFifo); /* get one residual byte */
- ptr = (PUCHAR) bus_to_virt( pSRB->SGBusAddr );
+ ptr = (u8 *) bus_to_virt( pSRB->SGBusAddr );
*ptr = bval;
pSRB->SGBusAddr++; xferCnt++;
pSRB->TotalXferredLen++;
}
static void
-dc390_Command_0( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_Command_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
}
static void
-dc390_Status_0( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_Status_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
pSRB->TargetStatus = DC390_read8 (ScsiFifo);
}
static void
-dc390_MsgOut_0( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_MsgOut_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
if( pSRB->SRBState & (SRB_UNEXPECT_RESEL+SRB_ABORT_SENT) )
*psstatus = SCSI_NOP0;
static void __inline__
-dc390_reprog (PACB pACB, PDCB pDCB)
+dc390_reprog (struct dc390_acb* pACB, struct dc390_dcb* pDCB)
{
DC390_write8 (Sync_Period, pDCB->SyncPeriod);
DC390_write8 (Sync_Offset, pDCB->SyncOffset);
#ifdef DC390_DEBUG0
static void
-dc390_printMsg (UCHAR *MsgBuf, UCHAR len)
+dc390_printMsg (u8 *MsgBuf, u8 len)
{
int i;
printk (" %02x", MsgBuf[0]);
/* reject_msg */
static void __inline__
-dc390_MsgIn_reject (PACB pACB, PSRB pSRB)
+dc390_MsgIn_reject (struct dc390_acb* pACB, struct dc390_srb* pSRB)
{
pSRB->MsgOutBuf[0] = MESSAGE_REJECT;
pSRB->MsgCnt = 1; DC390_ENABLE_MSGOUT;
/* abort command */
static void __inline__
-dc390_EnableMsgOut_Abort ( PACB pACB, PSRB pSRB )
+dc390_EnableMsgOut_Abort ( struct dc390_acb* pACB, struct dc390_srb* pSRB )
{
pSRB->MsgOutBuf[0] = ABORT;
pSRB->MsgCnt = 1; DC390_ENABLE_MSGOUT;
pSRB->pSRBDCB->DCBFlag &= ~ABORT_DEV_;
}
-static PSRB
-dc390_MsgIn_QTag (PACB pACB, PDCB pDCB, UCHAR tag)
+static struct dc390_srb*
+dc390_MsgIn_QTag (struct dc390_acb* pACB, struct dc390_dcb* pDCB, u8 tag)
{
- PSRB lastSRB = pDCB->pGoingLast;
- PSRB pSRB = pDCB->pGoingSRB;
+ struct dc390_srb* lastSRB = pDCB->pGoingLast;
+ struct dc390_srb* pSRB = pDCB->pGoingSRB;
if (pSRB)
{
/* set async transfer mode */
static void
-dc390_MsgIn_set_async (PACB pACB, PSRB pSRB)
+dc390_MsgIn_set_async (struct dc390_acb* pACB, struct dc390_srb* pSRB)
{
- PDCB pDCB = pSRB->pSRBDCB;
+ struct dc390_dcb* pDCB = pSRB->pSRBDCB;
if (!(pSRB->SRBState & DO_SYNC_NEGO))
printk (KERN_INFO "DC390: Target %i initiates Non-Sync?\n", pDCB->TargetID);
pSRB->SRBState &= ~DO_SYNC_NEGO;
/* set sync transfer mode */
static void
-dc390_MsgIn_set_sync (PACB pACB, PSRB pSRB)
+dc390_MsgIn_set_sync (struct dc390_acb* pACB, struct dc390_srb* pSRB)
{
- UCHAR bval;
- USHORT wval, wval1;
- PDCB pDCB = pSRB->pSRBDCB;
- UCHAR oldsyncperiod = pDCB->SyncPeriod;
- UCHAR oldsyncoffset = pDCB->SyncOffset;
+ u8 bval;
+ u16 wval, wval1;
+ struct dc390_dcb* pDCB = pSRB->pSRBDCB;
+ u8 oldsyncperiod = pDCB->SyncPeriod;
+ u8 oldsyncoffset = pDCB->SyncOffset;
if (!(pSRB->SRBState & DO_SYNC_NEGO))
{
pDCB->SyncOffset |= pSRB->MsgInBuf[4];
pDCB->NegoPeriod = pSRB->MsgInBuf[3];
- wval = (USHORT) pSRB->MsgInBuf[3];
+ wval = (u16) pSRB->MsgInBuf[3];
wval = wval << 2; wval -= 3; wval1 = wval / 25; /* compute speed */
if( (wval1 * 25) != wval) wval1++;
bval = FAST_CLK+FAST_SCSI; /* fast clock / fast scsi */
}
pDCB->CtrlR3 = bval;
- pDCB->SyncPeriod = (UCHAR)wval1;
+ pDCB->SyncPeriod = (u8)wval1;
if ((oldsyncperiod != wval1 || oldsyncoffset != pDCB->SyncOffset) && pDCB->TargetLUN == 0)
{
/* handle RESTORE_PTR */
/* I presume, this command is already mapped, so, have to remap. */
static void
-dc390_restore_ptr (PACB pACB, PSRB pSRB)
+dc390_restore_ptr (struct dc390_acb* pACB, struct dc390_srb* pSRB)
{
- Scsi_Cmnd* pcmd = pSRB->pcmd;
- PSGL psgl;
+ struct scsi_cmnd *pcmd = pSRB->pcmd;
+ struct scatterlist *psgl;
pSRB->TotalXferredLen = 0;
pSRB->SGIndex = 0;
if (pcmd->use_sg) {
- pSRB->pSegmentList = (PSGL) pcmd->request_buffer;
+ pSRB->pSegmentList = (struct scatterlist *)pcmd->request_buffer;
psgl = pSRB->pSegmentList;
//dc390_pci_sync(pSRB);
- while (pSRB->TotalXferredLen + (ULONG) sg_dma_len(psgl) < pSRB->Saved_Ptr)
+ while (pSRB->TotalXferredLen + (unsigned long) sg_dma_len(psgl) < pSRB->Saved_Ptr)
{
- pSRB->TotalXferredLen += (ULONG) sg_dma_len(psgl);
+ pSRB->TotalXferredLen += (unsigned long) sg_dma_len(psgl);
pSRB->SGIndex++;
if( pSRB->SGIndex < pSRB->SGcount )
{
sg_dma_len(&pSRB->Segmentx) = pcmd->request_bufflen - pSRB->Saved_Ptr;
pSRB->SGcount = 1;
- pSRB->pSegmentList = (PSGL) &pSRB->Segmentx;
+ pSRB->pSegmentList = (struct scatterlist *) &pSRB->Segmentx;
} else {
pSRB->SGcount = 0;
printk (KERN_INFO "DC390: RESTORE_PTR message for Transfer without Scatter-Gather ??\n");
/* The old implementation was correct. Sigh! */
/* Check if the message is complete */
-static UCHAR __inline__
-dc390_MsgIn_complete (UCHAR *msgbuf, UINT len)
+static u8 __inline__
+dc390_MsgIn_complete (u8 *msgbuf, u32 len)
{
if (*msgbuf == EXTENDED_MESSAGE)
{
/* read and eval received messages */
static void
-dc390_MsgIn_0( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_MsgIn_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
- PDCB pDCB = pACB->pActiveDCB;
+ struct dc390_dcb* pDCB = pACB->pActiveDCB;
/* Read the msg */
// nothing has to be done
case COMMAND_COMPLETE: break;
- // SAVE POINTER may be ignored as we have the PSRB associated with the
+ // SAVE POINTER may be ignored as we have the struct dc390_srb* associated with the
// scsi command. Thanks, Gerard, for pointing it out.
case SAVE_POINTERS:
pSRB->Saved_Ptr = pSRB->TotalXferredLen;
static void
-dc390_DataIO_Comm( PACB pACB, PSRB pSRB, UCHAR ioDir)
+dc390_DataIO_Comm( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 ioDir)
{
- PSGL psgl;
- ULONG lval;
- PDCB pDCB = pACB->pActiveDCB;
+ struct scatterlist *psgl;
+ unsigned long lval;
+ struct dc390_dcb* pDCB = pACB->pActiveDCB;
if (pSRB == pACB->pTmpSRB)
{
}
lval = pSRB->SGToBeXferLen;
DEBUG1(printk (KERN_DEBUG " DC390: Start transfer: %li bytes (address %08lx)\n", lval, pSRB->SGBusAddr));
- DC390_write8 (CtcReg_Low, (UCHAR) lval);
+ DC390_write8 (CtcReg_Low, (u8) lval);
lval >>= 8;
- DC390_write8 (CtcReg_Mid, (UCHAR) lval);
+ DC390_write8 (CtcReg_Mid, (u8) lval);
lval >>= 8;
- DC390_write8 (CtcReg_High, (UCHAR) lval);
+ DC390_write8 (CtcReg_High, (u8) lval);
DC390_write32 (DMA_XferCnt, pSRB->SGToBeXferLen);
DC390_write32 (DMA_XferAddr, pSRB->SGBusAddr);
static void
-dc390_DataOutPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_DataOutPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
dc390_DataIO_Comm (pACB, pSRB, WRITE_DIRECTION);
}
static void
-dc390_DataInPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_DataInPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
dc390_DataIO_Comm (pACB, pSRB, READ_DIRECTION);
}
static void
-dc390_CommandPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_CommandPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
- PDCB pDCB;
- UCHAR i, cnt;
- PUCHAR ptr;
+ struct dc390_dcb* pDCB;
+ u8 i, cnt;
+ u8 *ptr;
DC390_write8 (ScsiCmd, RESET_ATN_CMD);
DC390_write8 (ScsiCmd, CLEAR_FIFO_CMD);
if( !(pSRB->SRBFlag & AUTO_REQSENSE) )
{
- cnt = (UCHAR) pSRB->pcmd->cmd_len;
- ptr = (PUCHAR) pSRB->pcmd->cmnd;
+ cnt = (u8) pSRB->pcmd->cmd_len;
+ ptr = (u8 *) pSRB->pcmd->cmnd;
for(i=0; i < cnt; i++)
DC390_write8 (ScsiFifo, *(ptr++));
}
else
{
- UCHAR bval = 0;
+ u8 bval = 0;
DC390_write8 (ScsiFifo, REQUEST_SENSE);
pDCB = pACB->pActiveDCB;
DC390_write8 (ScsiFifo, pDCB->TargetLUN << 5);
}
static void
-dc390_StatusPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_StatusPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
DC390_write8 (ScsiCmd, CLEAR_FIFO_CMD);
pSRB->SRBState = SRB_STATUS;
}
static void
-dc390_MsgOutPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_MsgOutPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
- UCHAR bval, i, cnt;
- PUCHAR ptr;
- PDCB pDCB;
+ u8 bval, i, cnt;
+ u8 *ptr;
+ struct dc390_dcb* pDCB;
DC390_write8 (ScsiCmd, CLEAR_FIFO_CMD);
pDCB = pACB->pActiveDCB;
cnt = pSRB->MsgCnt;
if( cnt )
{
- ptr = (PUCHAR) pSRB->MsgOutBuf;
+ ptr = (u8 *) pSRB->MsgOutBuf;
for(i=0; i < cnt; i++)
DC390_write8 (ScsiFifo, *(ptr++));
pSRB->MsgCnt = 0;
}
static void
-dc390_MsgInPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_MsgInPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
DC390_write8 (ScsiCmd, CLEAR_FIFO_CMD);
if( !(pSRB->SRBState & SRB_MSGIN) )
}
static void
-dc390_Nop_0( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_Nop_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
}
static void
-dc390_Nop_1( PACB pACB, PSRB pSRB, PUCHAR psstatus)
+dc390_Nop_1( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus)
{
}
static void
-dc390_SetXferRate( PACB pACB, PDCB pDCB )
+dc390_SetXferRate( struct dc390_acb* pACB, struct dc390_dcb* pDCB )
{
- UCHAR bval, i, cnt;
- PDCB ptr;
+ u8 bval, i, cnt;
+ struct dc390_dcb* ptr;
if( !(pDCB->TargetLUN) )
{
static void
-dc390_Disconnect( PACB pACB )
+dc390_Disconnect( struct dc390_acb* pACB )
{
- PDCB pDCB;
- PSRB pSRB, psrb;
- UCHAR i, cnt;
+ struct dc390_dcb *pDCB;
+ struct dc390_srb *pSRB, *psrb;
+ u8 i, cnt;
DEBUG0(printk(KERN_INFO "DISC,"));
static void
-dc390_Reselect( PACB pACB )
+dc390_Reselect( struct dc390_acb* pACB )
{
- PDCB pDCB;
- PSRB pSRB;
- UCHAR id, lun;
+ struct dc390_dcb* pDCB;
+ struct dc390_srb* pSRB;
+ u8 id, lun;
DEBUG0(printk(KERN_INFO "RSEL,"));
pACB->Connected = 1;
DC390_write8 (ScsiCmd, MSG_ACCEPTED_CMD); /* ;to release the /ACK signal */
}
-static UCHAR __inline__
+static u8 __inline__
dc390_tagq_blacklist (char* name)
{
- UCHAR i;
+ u8 i;
for(i=0; i<BADDEVCNT; i++)
if (memcmp (name, dc390_baddevname1[i], 28) == 0)
return 1;
static void
-dc390_disc_tagq_set (PDCB pDCB, PSCSI_INQDATA ptr)
+dc390_disc_tagq_set (struct dc390_dcb* pDCB, PSCSI_INQDATA ptr)
{
/* Check for SCSI format (ANSI and Response data format) */
if ( (ptr->Vers & 0x07) >= 2 || (ptr->RDF & 0x0F) == 2 )
static void
-dc390_add_dev (PACB pACB, PDCB pDCB, PSCSI_INQDATA ptr)
+dc390_add_dev (struct dc390_acb* pACB, struct dc390_dcb* pDCB, PSCSI_INQDATA ptr)
{
- UCHAR bval1 = ptr->DevType & SCSI_DEVTYPE;
+ u8 bval1 = ptr->DevType & SCSI_DEVTYPE;
pDCB->DevType = bval1;
/* if (bval1 == TYPE_DISK || bval1 == TYPE_MOD) */
dc390_disc_tagq_set (pDCB, ptr);
static void
-dc390_SRBdone( PACB pACB, PDCB pDCB, PSRB pSRB )
+dc390_SRBdone( struct dc390_acb* pACB, struct dc390_dcb* pDCB, struct dc390_srb* pSRB )
{
- UCHAR bval, status, i;
- PSCSICMD pcmd;
+ u8 bval, status, i;
+ struct scsi_cmnd *pcmd;
PSCSI_INQDATA ptr;
- PSGL ptr2;
- ULONG swlval;
+ struct scatterlist *ptr2;
+ unsigned long swlval;
pcmd = pSRB->pcmd;
/* KG: Moved pci_unmap here */
dc390_pci_unmap(pSRB);
status = pSRB->TargetStatus;
- ptr = (PSCSI_INQDATA) (pcmd->request_buffer);
- if( pcmd->use_sg )
- ptr = (PSCSI_INQDATA) (page_address(((PSGL) ptr)->page) + ((PSGL) ptr)->offset);
+ if (pcmd->use_sg) {
+ ptr2 = (struct scatterlist *) (pcmd->request_buffer);
+ ptr = (PSCSI_INQDATA) (page_address(ptr2->page) + ptr2->offset);
+ } else
+ ptr = (PSCSI_INQDATA) (pcmd->request_buffer);
DEBUG0(printk (" SRBdone (%02x,%08x), SRB %p, pid %li\n", status, pcmd->result,\
pSRB, pcmd->pid));
}
if(pSRB->RetryCnt == 0)
{
- //(UINT)(pSRB->pcmd->cmnd[0]) = pSRB->Segment0[0];
+ //(u32)(pSRB->pcmd->cmnd[0]) = pSRB->Segment0[0];
pSRB->TotalXferredLen = pSRB->SavedTotXLen;
if( (pSRB->TotalXferredLen) &&
(pSRB->TotalXferredLen >= pcmd->underflow) )
else
pcmd->result = MK_RES_LNX(DRIVER_SENSE,DID_OK,0,CHECK_CONDITION);
REMOVABLEDEBUG(printk(KERN_INFO "Cmd=%02x,Result=%08x,XferL=%08x\n",pSRB->pcmd->cmnd[0],\
- (UINT) pcmd->result, (UINT) pSRB->TotalXferredLen));
+ (u32) pcmd->result, (u32) pSRB->TotalXferredLen));
goto ckc_e;
}
else /* Retry */
pSRB->RetryCnt--;
pSRB->AdaptStatus = 0;
pSRB->TargetStatus = 0;
- //*((PUINT) &(pSRB->CmdBlock[0])) = pSRB->Segment0[0];
- //*((PUINT) &(pSRB->CmdBlock[4])) = pSRB->Segment0[1];
/* Don't retry on TEST_UNIT_READY */
if( pSRB->pcmd->cmnd[0] == TEST_UNIT_READY /* || pSRB->pcmd->cmnd[0] == START_STOP */)
{
pcmd->result = MK_RES_LNX(DRIVER_SENSE,DID_OK,0,CHECK_CONDITION);
REMOVABLEDEBUG(printk(KERN_INFO "Cmd=%02x, Result=%08x, XferL=%08x\n",pSRB->pcmd->cmnd[0],\
- (UINT) pcmd->result, (UINT) pSRB->TotalXferredLen));
+ (u32) pcmd->result, (u32) pSRB->TotalXferredLen));
goto ckc_e;
}
SET_RES_DRV(pcmd->result,DRIVER_SENSE);
pcmd->use_sg = pSRB->SavedSGCount;
- //pSRB->ScsiCmdLen = (UCHAR) (pSRB->Segment1[0] >> 8);
+ //pSRB->ScsiCmdLen = (u8) (pSRB->Segment1[0] >> 8);
DEBUG0 (printk ("DC390: RETRY pid %li (%02x), target %02i-%02i\n", pcmd->pid, pcmd->cmnd[0], pcmd->device->id, pcmd->device->lun));
pSRB->SGIndex = 0;
pSRB->TotalXferredLen = 0;
ptr2++;
}
REMOVABLEDEBUG(printk(KERN_INFO "XferredLen=%08x,NotXferLen=%08x\n",\
- (UINT) pSRB->TotalXferredLen, (UINT) swlval));
+ (u32) pSRB->TotalXferredLen, (u32) swlval));
}
dc390_RequestSense( pACB, pDCB, pSRB );
return;
}
else if( status_byte(status) == QUEUE_FULL )
{
- bval = (UCHAR) pDCB->GoingSRBCnt;
+ bval = (u8) pDCB->GoingSRBCnt;
bval--;
pDCB->MaxCommand = bval;
dc390_freetag (pDCB, pSRB);
/* Remove all SRBs from Going list and inform midlevel */
static void
-dc390_DoingSRB_Done( PACB pACB, PSCSICMD cmd )
+dc390_DoingSRB_Done(struct dc390_acb* pACB, struct scsi_cmnd *cmd)
{
- PDCB pDCB, pdcb;
- PSRB psrb, psrb2;
- UCHAR i;
- PSCSICMD pcmd;
+ struct dc390_dcb *pDCB, *pdcb;
+ struct dc390_srb *psrb, *psrb2;
+ u8 i;
+ struct scsi_cmnd *pcmd;
pDCB = pACB->pLinkDCB;
pdcb = pDCB;
static void
-dc390_ResetSCSIBus( PACB pACB )
+dc390_ResetSCSIBus( struct dc390_acb* pACB )
{
//DC390_write8 (ScsiCmd, RST_DEVICE_CMD);
//udelay (250);
}
static void
-dc390_ScsiRstDetect( PACB pACB )
+dc390_ScsiRstDetect( struct dc390_acb* pACB )
{
printk ("DC390: Rst_Detect: laststat = %08x\n", dc390_laststatus);
//DEBUG0(printk(KERN_INFO "RST_DETECT,"));
static void __inline__
-dc390_RequestSense( PACB pACB, PDCB pDCB, PSRB pSRB )
+dc390_RequestSense( struct dc390_acb* pACB, struct dc390_dcb* pDCB, struct dc390_srb* pSRB )
{
- PSCSICMD pcmd;
+ struct scsi_cmnd *pcmd;
pcmd = pSRB->pcmd;
pcmd->cmnd[0], pDCB->TargetID, pDCB->TargetLUN));
pSRB->SRBFlag |= AUTO_REQSENSE;
- //pSRB->Segment0[0] = (UINT) pSRB->CmdBlock[0];
- //pSRB->Segment0[1] = (UINT) pSRB->CmdBlock[4];
- //pSRB->Segment1[0] = ((UINT)(pcmd->cmd_len) << 8) + pSRB->SGcount;
+ //pSRB->Segment0[0] = (u32) pSRB->CmdBlock[0];
+ //pSRB->Segment0[1] = (u32) pSRB->CmdBlock[4];
+ //pSRB->Segment1[0] = ((u32)(pcmd->cmd_len) << 8) + pSRB->SGcount;
//pSRB->Segment1[1] = pSRB->TotalXferredLen;
pSRB->SavedSGCount = pcmd->use_sg;
pSRB->SavedTotXLen = pSRB->TotalXferredLen;
//pSRB->CmdBlock[0] = REQUEST_SENSE;
//pSRB->CmdBlock[1] = pDCB->TargetLUN << 5;
- //(USHORT) pSRB->CmdBlock[2] = 0;
- //(USHORT) pSRB->CmdBlock[4] = sizeof(pcmd->sense_buffer);
+ //(u16) pSRB->CmdBlock[2] = 0;
+ //(u16) pSRB->CmdBlock[4] = sizeof(pcmd->sense_buffer);
//pSRB->ScsiCmdLen = 6;
pSRB->TotalXferredLen = 0;
static void __inline__
-dc390_InvalidCmd( PACB pACB )
+dc390_InvalidCmd( struct dc390_acb* pACB )
{
if( pACB->pActiveDCB->pActiveSRB->SRBState & (SRB_START_+SRB_MSGOUT) )
DC390_write8 (ScsiCmd, CLEAR_FIFO_CMD);
#endif
#define DCBDEBUG1(x) C_NOP
-/* Includes */
+#include <linux/config.h>
#include <linux/module.h>
-#include <asm/dma.h>
-#include <asm/io.h>
-#include <asm/system.h>
#include <linux/delay.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/pci.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
-#include <linux/ctype.h>
#include <linux/mm.h>
-#include <linux/config.h>
-#include <linux/version.h>
#include <linux/blkdev.h>
#include <linux/timer.h>
#include <linux/interrupt.h>
+#include <linux/init.h>
+#include <linux/spinlock.h>
+#include <asm/io.h>
+#if 0
+#include <scsi/scsi.h>
+#include <scsi/scsi_cmnd.h>
+#include <scsi/scsi_device.h>
+#else
#include "scsi.h"
+#endif
#include <scsi/scsi_host.h>
-#include <linux/stat.h>
#include <scsi/scsicam.h>
#include "dc390.h"
#define PCI_DEVICE_ID_AMD53C974 PCI_DEVICE_ID_AMD_SCSI
-/* Locking */
-
-/* Note: Starting from 2.1.9x, the mid-level scsi code issues a
- * spinlock_irqsave (&io_request_lock) before calling the driver's
- * routines, so we don't need to lock, except in the IRQ handler.
- * The policy 3, let the midlevel scsi code do the io_request_locks
- * and us locking on a driver specific lock, shouldn't hurt anybody; it
- * just causes a minor performance degradation for setting the locks.
- */
-
-/* spinlock things
- * level 3: lock on both adapter specific locks and (global) io_request_lock
- * level 2: lock on adapter specific locks only
- * level 1: rely on the locking of the mid level code (io_request_lock)
- * undef : traditional save_flags; cli; restore_flags;
- */
-
-#include <linux/init.h>
-#include <linux/spinlock.h>
-static struct pci_device_id tmscsim_pci_tbl[] = {
+ static struct pci_device_id tmscsim_pci_tbl[] = {
{
.vendor = PCI_VENDOR_ID_AMD,
.device = PCI_DEVICE_ID_AMD53C974,
};
MODULE_DEVICE_TABLE(pci, tmscsim_pci_tbl);
-/* These macros are used for uniform access to 2.0.x and 2.1.x PCI config space*/
-
-#define PDEV pdev
-#define PDEVDECL struct pci_dev *pdev
-#define PDEVDECL0 struct pci_dev *pdev = NULL
-#define PDEVDECL1 struct pci_dev *pdev
-#define PDEVSET pACB->pdev=pdev
-#define PDEVSET1 pdev=pACB->pdev
-#define PCI_WRITE_CONFIG_BYTE(pd, rv, bv) pci_write_config_byte (pd, rv, bv)
-#define PCI_READ_CONFIG_BYTE(pd, rv, bv) pci_read_config_byte (pd, rv, bv)
-#define PCI_WRITE_CONFIG_WORD(pd, rv, bv) pci_write_config_word (pd, rv, bv)
-#define PCI_READ_CONFIG_WORD(pd, rv, bv) pci_read_config_word (pd, rv, bv)
-#define PCI_PRESENT (1)
-#define PCI_GET_IO_AND_IRQ do{io_port = pci_resource_start (pdev, 0); irq = pdev->irq;} while(0)
-
#include "tmscsim.h"
-static UCHAR dc390_StartSCSI( PACB pACB, PDCB pDCB, PSRB pSRB );
-static void dc390_DataOut_0( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_DataIn_0( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_Command_0( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_Status_0( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_MsgOut_0( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_MsgIn_0( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_DataOutPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_DataInPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_CommandPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_StatusPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_MsgOutPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_MsgInPhase( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_Nop_0( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-static void dc390_Nop_1( PACB pACB, PSRB pSRB, PUCHAR psstatus);
-
-static void dc390_SetXferRate( PACB pACB, PDCB pDCB );
-static void dc390_Disconnect( PACB pACB );
-static void dc390_Reselect( PACB pACB );
-static void dc390_SRBdone( PACB pACB, PDCB pDCB, PSRB pSRB );
-static void dc390_DoingSRB_Done( PACB pACB, PSCSICMD cmd );
-static void dc390_ScsiRstDetect( PACB pACB );
-static void dc390_ResetSCSIBus( PACB pACB );
-static void __inline__ dc390_RequestSense( PACB pACB, PDCB pDCB, PSRB pSRB );
-static void __inline__ dc390_InvalidCmd( PACB pACB );
-static void __inline__ dc390_EnableMsgOut_Abort (PACB, PSRB);
+static u8 dc390_StartSCSI( struct dc390_acb* pACB, struct dc390_dcb* pDCB, struct dc390_srb* pSRB );
+static void dc390_DataOut_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_DataIn_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_Command_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_Status_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_MsgOut_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_MsgIn_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_DataOutPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_DataInPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_CommandPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_StatusPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_MsgOutPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_MsgInPhase( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_Nop_0( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+static void dc390_Nop_1( struct dc390_acb* pACB, struct dc390_srb* pSRB, u8 *psstatus);
+
+static void dc390_SetXferRate( struct dc390_acb* pACB, struct dc390_dcb* pDCB );
+static void dc390_Disconnect( struct dc390_acb* pACB );
+static void dc390_Reselect( struct dc390_acb* pACB );
+static void dc390_SRBdone( struct dc390_acb* pACB, struct dc390_dcb* pDCB, struct dc390_srb* pSRB );
+static void dc390_DoingSRB_Done( struct dc390_acb* pACB, struct scsi_cmnd * cmd);
+static void dc390_ScsiRstDetect( struct dc390_acb* pACB );
+static void dc390_ResetSCSIBus( struct dc390_acb* pACB );
+static void __inline__ dc390_RequestSense( struct dc390_acb* pACB, struct dc390_dcb* pDCB, struct dc390_srb* pSRB );
+static void __inline__ dc390_InvalidCmd( struct dc390_acb* pACB );
+static void __inline__ dc390_EnableMsgOut_Abort (struct dc390_acb*, struct dc390_srb*);
static irqreturn_t do_DC390_Interrupt( int, void *, struct pt_regs *);
-static int dc390_initAdapter( PSH psh, ULONG io_port, UCHAR Irq, UCHAR index );
-static void dc390_updateDCB (PACB pACB, PDCB pDCB);
+static int dc390_initAdapter(struct Scsi_Host *psh, unsigned long io_port, u8 Irq, u8 index );
+static void dc390_updateDCB (struct dc390_acb* pACB, struct dc390_dcb* pDCB);
static int DC390_proc_info (struct Scsi_Host *shpnt, char *buffer, char **start,
off_t offset, int length, int inout);
-static PACB dc390_pACB_start= NULL;
-static PACB dc390_pACB_current = NULL;
-static ULONG dc390_lastabortedpid = 0;
-static UINT dc390_laststatus = 0;
-static UCHAR dc390_adapterCnt = 0;
+static struct dc390_acb* dc390_pACB_start= NULL;
+static struct dc390_acb* dc390_pACB_current = NULL;
+static unsigned long dc390_lastabortedpid = 0;
+static u32 dc390_laststatus = 0;
+static u8 dc390_adapterCnt = 0;
/* Startup values, to be overriden on the commandline */
static int tmscsim[] = {-2, -2, -2, -2, -2, -2};
MODULE_LICENSE("GPL");
MODULE_SUPPORTED_DEVICE("sd,sr,sg,st");
-static PVOID dc390_phase0[]={
+static void *dc390_phase0[]={
dc390_DataOut_0,
dc390_DataIn_0,
dc390_Command_0,
dc390_Nop_1
};
-static PVOID dc390_phase1[]={
+static void *dc390_phase1[]={
dc390_DataOutPhase,
dc390_DataInPhase,
dc390_CommandPhase,
#endif
/* Devices erroneously pretending to be able to do TagQ */
-static UCHAR dc390_baddevname1[2][28] ={
+static u8 dc390_baddevname1[2][28] ={
"SEAGATE ST3390N 9546",
"HP C3323-300 4269"};
#define BADDEVCNT 2
static char* dc390_adapname = "DC390";
-static UCHAR dc390_eepromBuf[MAX_ADAPTER_NUM][EE_LEN];
-static UCHAR dc390_clock_period1[] = {4, 5, 6, 7, 8, 10, 13, 20};
-static UCHAR dc390_clock_speed[] = {100,80,67,57,50, 40, 31, 20};
+static u8 dc390_eepromBuf[MAX_ADAPTER_NUM][EE_LEN];
+static u8 dc390_clock_period1[] = {4, 5, 6, 7, 8, 10, 13, 20};
+static u8 dc390_clock_speed[] = {100,80,67,57,50, 40, 31, 20};
/***********************************************************************
* Functions for access to DC390 EEPROM
**********************************************************************/
-static void __devinit dc390_EnDisableCE( UCHAR mode, PDEVDECL, PUCHAR regval )
+static void __devinit dc390_EnDisableCE(u8 mode, struct pci_dev *pdev, u8 *regval)
{
- UCHAR bval;
+ u8 bval;
bval = 0;
if(mode == ENABLE_CE)
*regval = 0xc0;
else
*regval = 0x80;
- PCI_WRITE_CONFIG_BYTE(PDEV, *regval, bval);
+ pci_write_config_byte(pdev, *regval, bval);
if(mode == DISABLE_CE)
- PCI_WRITE_CONFIG_BYTE(PDEV, *regval, bval);
+ pci_write_config_byte(pdev, *regval, bval);
udelay(160);
}
/* Override EEprom values with explicitly set values */
-static void __devinit dc390_EEprom_Override (UCHAR index)
+static void __devinit dc390_EEprom_Override (u8 index)
{
- PUCHAR ptr;
- UCHAR id;
- ptr = (PUCHAR) dc390_eepromBuf[index];
+ u8 *ptr = (u8 *) dc390_eepromBuf[index];
+ u8 id;
/* Adapter Settings */
if (tmscsim[0] != -2)
- ptr[EE_ADAPT_SCSI_ID] = (UCHAR)tmscsim[0]; /* Adapter ID */
+ ptr[EE_ADAPT_SCSI_ID] = (u8)tmscsim[0]; /* Adapter ID */
if (tmscsim[3] != -2)
- ptr[EE_MODE2] = (UCHAR)tmscsim[3];
+ ptr[EE_MODE2] = (u8)tmscsim[3];
if (tmscsim[5] != -2)
ptr[EE_DELAY] = tmscsim[5]; /* Reset delay */
if (tmscsim[4] != -2)
- ptr[EE_TAG_CMD_NUM] = (UCHAR)tmscsim[4]; /* Tagged Cmds */
+ ptr[EE_TAG_CMD_NUM] = (u8)tmscsim[4]; /* Tagged Cmds */
/* Device Settings */
for (id = 0; id < MAX_SCSI_ID; id++)
{
if (tmscsim[2] != -2)
- ptr[id<<2] = (UCHAR)tmscsim[2]; /* EE_MODE1 */
+ ptr[id<<2] = (u8)tmscsim[2]; /* EE_MODE1 */
if (tmscsim[1] != -2)
- ptr[(id<<2) + 1] = (UCHAR)tmscsim[1]; /* EE_Speed */
+ ptr[(id<<2) + 1] = (u8)tmscsim[1]; /* EE_Speed */
}
}
__setup("tmscsim=", dc390_setup);
#endif
-static void __devinit dc390_EEpromOutDI( PDEVDECL, PUCHAR regval, UCHAR Carry )
+static void __devinit dc390_EEpromOutDI(struct pci_dev *pdev, u8 *regval, u8 Carry)
{
- UCHAR bval;
+ u8 bval;
bval = 0;
if(Carry)
{
bval = 0x40;
*regval = 0x80;
- PCI_WRITE_CONFIG_BYTE(PDEV, *regval, bval);
+ pci_write_config_byte(pdev, *regval, bval);
}
udelay(160);
bval |= 0x80;
- PCI_WRITE_CONFIG_BYTE(PDEV, *regval, bval);
+ pci_write_config_byte(pdev, *regval, bval);
udelay(160);
bval = 0;
- PCI_WRITE_CONFIG_BYTE(PDEV, *regval, bval);
+ pci_write_config_byte(pdev, *regval, bval);
udelay(160);
}
-static UCHAR __devinit dc390_EEpromInDO( PDEVDECL )
+static u8 __devinit dc390_EEpromInDO(struct pci_dev *pdev)
{
- UCHAR bval;
+ u8 bval;
- PCI_WRITE_CONFIG_BYTE(PDEV, 0x80, 0x80);
+ pci_write_config_byte(pdev, 0x80, 0x80);
udelay(160);
- PCI_WRITE_CONFIG_BYTE(PDEV, 0x80, 0x40);
+ pci_write_config_byte(pdev, 0x80, 0x40);
udelay(160);
- PCI_READ_CONFIG_BYTE(PDEV, 0x00, &bval);
+ pci_read_config_byte(pdev, 0x00, &bval);
if(bval == 0x22)
return(1);
else
}
-static USHORT __devinit dc390_EEpromGetData1( PDEVDECL )
+static u16 __devinit dc390_EEpromGetData1(struct pci_dev *pdev)
{
- UCHAR i;
- UCHAR carryFlag;
- USHORT wval;
+ u8 i;
+ u8 carryFlag;
+ u16 wval;
wval = 0;
for(i=0; i<16; i++)
{
wval <<= 1;
- carryFlag = dc390_EEpromInDO(PDEV);
+ carryFlag = dc390_EEpromInDO(pdev);
wval |= carryFlag;
}
return(wval);
}
-static void __devinit dc390_Prepare( PDEVDECL, PUCHAR regval, UCHAR EEpromCmd )
+static void __devinit dc390_Prepare(struct pci_dev *pdev, u8 *regval, u8 EEpromCmd)
{
- UCHAR i,j;
- UCHAR carryFlag;
+ u8 i,j;
+ u8 carryFlag;
carryFlag = 1;
j = 0x80;
for(i=0; i<9; i++)
{
- dc390_EEpromOutDI(PDEV,regval,carryFlag);
+ dc390_EEpromOutDI(pdev, regval, carryFlag);
carryFlag = (EEpromCmd & j) ? 1 : 0;
j >>= 1;
}
}
-static void __devinit dc390_ReadEEprom( PDEVDECL, PUSHORT ptr)
+static void __devinit dc390_ReadEEprom(struct pci_dev *pdev, u16 *ptr)
{
- UCHAR regval,cmd;
- UCHAR i;
+ u8 regval,cmd;
+ u8 i;
cmd = EEPROM_READ;
for(i=0; i<0x40; i++)
{
- dc390_EnDisableCE(ENABLE_CE, PDEV, ®val);
- dc390_Prepare(PDEV, ®val, cmd++);
- *ptr++ = dc390_EEpromGetData1(PDEV);
- dc390_EnDisableCE(DISABLE_CE, PDEV, ®val);
+ dc390_EnDisableCE(ENABLE_CE, pdev, ®val);
+ dc390_Prepare(pdev, ®val, cmd++);
+ *ptr++ = dc390_EEpromGetData1(pdev);
+ dc390_EnDisableCE(DISABLE_CE, pdev, ®val);
}
}
-static void __devinit dc390_interpret_delay (UCHAR index)
+static void __devinit dc390_interpret_delay (u8 index)
{
char interpd [] = {1,3,5,10,16,30,60,120};
dc390_eepromBuf[index][EE_DELAY] = interpd [dc390_eepromBuf[index][EE_DELAY]];
}
-static UCHAR __devinit dc390_CheckEEpromCheckSum( PDEVDECL, UCHAR index )
+static u8 __devinit dc390_CheckEEpromCheckSum(struct pci_dev *pdev, u8 index)
{
- UCHAR i;
+ u8 i;
char EEbuf[128];
- USHORT wval, *ptr = (PUSHORT)EEbuf;
+ u16 wval, *ptr = (u16 *)EEbuf;
- dc390_ReadEEprom( PDEV, ptr );
+ dc390_ReadEEprom(pdev, ptr);
memcpy (dc390_eepromBuf[index], EEbuf, EE_ADAPT_SCSI_ID);
memcpy (&dc390_eepromBuf[index][EE_ADAPT_SCSI_ID],
&EEbuf[REAL_EE_ADAPT_SCSI_ID], EE_LEN - EE_ADAPT_SCSI_ID);
* (DCBs, SRBs, Queueing)
*
**********************************************************************/
-static PDCB __inline__ dc390_findDCB ( PACB pACB, UCHAR id, UCHAR lun)
+static struct dc390_dcb __inline__ *dc390_findDCB ( struct dc390_acb* pACB, u8 id, u8 lun)
{
- PDCB pDCB = pACB->pLinkDCB; if (!pDCB) return 0;
+ struct dc390_dcb* pDCB = pACB->pLinkDCB; if (!pDCB) return 0;
while (pDCB->TargetID != id || pDCB->TargetLUN != lun)
{
pDCB = pDCB->pNextDCB;
* Lists are managed using two pointers and eventually a counter
*/
-
-#if 0
-/* Look for a SCSI cmd in a SRB queue */
-static PSRB dc390_find_cmd_in_SRBq (PSCSICMD cmd, PSRB queue)
-{
- PSRB q = queue;
- while (q)
- {
- if (q->pcmd == cmd) return q;
- q = q->pNextSRB;
- if (q == queue) return 0;
- }
- return q;
-}
-#endif
-
/* Return next free SRB */
-static __inline__ PSRB dc390_Free_get ( PACB pACB )
+static __inline__ struct dc390_srb* dc390_Free_get ( struct dc390_acb* pACB )
{
- PSRB pSRB;
+ struct dc390_srb* pSRB;
pSRB = pACB->pFreeSRB;
DEBUG0(printk ("DC390: Get Free SRB %p\n", pSRB));
}
/* Insert SRB oin top of free list */
-static __inline__ void dc390_Free_insert (PACB pACB, PSRB pSRB)
+static __inline__ void dc390_Free_insert (struct dc390_acb* pACB, struct dc390_srb* pSRB)
{
DEBUG0(printk ("DC390: Free SRB %p\n", pSRB));
pSRB->pNextSRB = pACB->pFreeSRB;
/* Inserts a SRB to the top of the Waiting list */
-static __inline__ void dc390_Waiting_insert ( PDCB pDCB, PSRB pSRB )
+static __inline__ void dc390_Waiting_insert ( struct dc390_dcb* pDCB, struct dc390_srb* pSRB )
{
DEBUG0(printk ("DC390: Insert pSRB %p cmd %li to Waiting\n", pSRB, pSRB->pcmd->pid));
pSRB->pNextSRB = pDCB->pWaitingSRB;
/* Queue SRB to waiting list */
-static __inline__ void dc390_Waiting_append ( PDCB pDCB, PSRB pSRB)
+static __inline__ void dc390_Waiting_append ( struct dc390_dcb* pDCB, struct dc390_srb* pSRB)
{
DEBUG0(printk ("DC390: Append pSRB %p cmd %li to Waiting\n", pSRB, pSRB->pcmd->pid));
if( pDCB->pWaitingSRB )
pDCB->pDCBACB->CmdInQ++;
}
-static __inline__ void dc390_Going_append (PDCB pDCB, PSRB pSRB)
+static __inline__ void dc390_Going_append (struct dc390_dcb* pDCB, struct dc390_srb* pSRB)
{
pDCB->GoingSRBCnt++;
DEBUG0(printk("DC390: Append SRB %p to Going\n", pSRB));
pSRB->pNextSRB = NULL;
}
-static __inline__ void dc390_Going_remove (PDCB pDCB, PSRB pSRB)
+static __inline__ void dc390_Going_remove (struct dc390_dcb* pDCB, struct dc390_srb* pSRB)
{
DEBUG0(printk("DC390: Remove SRB %p from Going\n", pSRB));
if (pSRB == pDCB->pGoingSRB)
pDCB->pGoingSRB = pSRB->pNextSRB;
else
{
- PSRB psrb = pDCB->pGoingSRB;
+ struct dc390_srb* psrb = pDCB->pGoingSRB;
while (psrb && psrb->pNextSRB != pSRB)
psrb = psrb->pNextSRB;
if (!psrb)
}
/* Moves SRB from Going list to the top of Waiting list */
-static void dc390_Going_to_Waiting ( PDCB pDCB, PSRB pSRB )
+static void dc390_Going_to_Waiting ( struct dc390_dcb* pDCB, struct dc390_srb* pSRB )
{
DEBUG0(printk(KERN_INFO "DC390: Going_to_Waiting (SRB %p) pid = %li\n", pSRB, pSRB->pcmd->pid));
/* Remove SRB from Going */
}
/* Moves first SRB from Waiting list to Going list */
-static __inline__ void dc390_Waiting_to_Going ( PDCB pDCB, PSRB pSRB )
+static __inline__ void dc390_Waiting_to_Going ( struct dc390_dcb* pDCB, struct dc390_srb* pSRB )
{
/* Remove from waiting list */
DEBUG0(printk("DC390: Remove SRB %p from head of Waiting\n", pSRB));
static void DC390_waiting_timed_out (unsigned long ptr);
/* Sets the timer to wake us up */
-static void dc390_waiting_timer (PACB pACB, unsigned long to)
+static void dc390_waiting_timer (struct dc390_acb* pACB, unsigned long to)
{
if (timer_pending (&pACB->Waiting_Timer)) return;
init_timer (&pACB->Waiting_Timer);
/* Send the next command from the waiting list to the bus */
-static void dc390_Waiting_process ( PACB pACB )
+static void dc390_Waiting_process ( struct dc390_acb* pACB )
{
- PDCB ptr, ptr1;
- PSRB pSRB;
+ struct dc390_dcb *ptr, *ptr1;
+ struct dc390_srb *pSRB;
if( (pACB->pActiveDCB) || (pACB->ACBFlag & (RESET_DETECT+RESET_DONE+RESET_DEV) ) )
return;
/* Wake up waiting queue */
static void DC390_waiting_timed_out (unsigned long ptr)
{
- PACB pACB = (PACB)ptr;
+ struct dc390_acb* pACB = (struct dc390_acb*)ptr;
unsigned long iflags;
DEBUG0(printk ("DC390: Debug: Waiting queue woken up by timer!\n"));
spin_lock_irqsave(pACB->pScsiHost->host_lock, iflags);
}
/***********************************************************************
- * Function: static void dc390_SendSRB (PACB pACB, PSRB pSRB)
+ * Function: static void dc390_SendSRB (struct dc390_acb* pACB, struct dc390_srb* pSRB)
*
* Purpose: Send SCSI Request Block (pSRB) to adapter (pACB)
*
***********************************************************************/
-static void dc390_SendSRB( PACB pACB, PSRB pSRB )
+static void dc390_SendSRB( struct dc390_acb* pACB, struct dc390_srb* pSRB )
{
- PDCB pDCB;
+ struct dc390_dcb* pDCB;
pDCB = pSRB->pSRBDCB;
if( (pDCB->MaxCommand <= pDCB->GoingSRBCnt) || (pACB->pActiveDCB) ||
}
/* Create pci mapping */
-static int dc390_pci_map (PSRB pSRB)
+static int dc390_pci_map (struct dc390_srb* pSRB)
{
int error = 0;
- Scsi_Cmnd *pcmd = pSRB->pcmd;
+ struct scsi_cmnd *pcmd = pSRB->pcmd;
struct pci_dev *pdev = pSRB->pSRBDCB->pDCBACB->pdev;
dc390_cmd_scp_t* cmdp = ((dc390_cmd_scp_t*)(&pcmd->SCp));
DEBUG1(printk("%s(): Mapped sense buffer %p at %x\n", __FUNCTION__, pcmd->sense_buffer, cmdp->saved_dma_handle));
/* Map SG list */
} else if (pcmd->use_sg) {
- pSRB->pSegmentList = (PSGL) pcmd->request_buffer;
+ pSRB->pSegmentList = (struct scatterlist *) pcmd->request_buffer;
pSRB->SGcount = pci_map_sg(pdev, pSRB->pSegmentList, pcmd->use_sg,
- scsi_to_pci_dma_dir(pcmd->sc_data_direction));
+ pcmd->sc_data_direction);
/* TODO: error handling */
if (!pSRB->SGcount)
error = 1;
} else if (pcmd->request_buffer && pcmd->request_bufflen) {
pSRB->pSegmentList = dc390_sg_build_single(&pSRB->Segmentx, pcmd->request_buffer, pcmd->request_bufflen);
pSRB->SGcount = pci_map_sg(pdev, pSRB->pSegmentList, 1,
- scsi_to_pci_dma_dir(pcmd->sc_data_direction));
+ pcmd->sc_data_direction);
cmdp->saved_dma_handle = sg_dma_address(pSRB->pSegmentList);
/* TODO: error handling */
}
/* Remove pci mapping */
-static void dc390_pci_unmap (PSRB pSRB)
+static void dc390_pci_unmap (struct dc390_srb* pSRB)
{
- Scsi_Cmnd* pcmd = pSRB->pcmd;
+ struct scsi_cmnd *pcmd = pSRB->pcmd;
struct pci_dev *pdev = pSRB->pSRBDCB->pDCBACB->pdev;
DEBUG1(dc390_cmd_scp_t* cmdp = ((dc390_cmd_scp_t*)(&pcmd->SCp)));
pci_unmap_sg(pdev, &pSRB->Segmentx, 1, DMA_FROM_DEVICE);
DEBUG1(printk("%s(): Unmapped sense buffer at %x\n", __FUNCTION__, cmdp->saved_dma_handle));
} else if (pcmd->use_sg) {
- pci_unmap_sg(pdev, pcmd->request_buffer, pcmd->use_sg, scsi_to_pci_dma_dir(pcmd->sc_data_direction));
+ pci_unmap_sg(pdev, pcmd->request_buffer, pcmd->use_sg, pcmd->sc_data_direction);
DEBUG1(printk("%s(): Unmapped SG at %p with %d elements\n", __FUNCTION__, pcmd->request_buffer, pcmd->use_sg));
} else if (pcmd->request_buffer && pcmd->request_bufflen) {
- pci_unmap_sg(pdev, &pSRB->Segmentx, 1, scsi_to_pci_dma_dir(pcmd->sc_data_direction));
+ pci_unmap_sg(pdev, &pSRB->Segmentx, 1, pcmd->sc_data_direction);
DEBUG1(printk("%s(): Unmapped request buffer at %x\n", __FUNCTION__, cmdp->saved_dma_handle));
}
}
/***********************************************************************
- * Function: static void dc390_BuildSRB (Scsi_Cmd *pcmd, PDCB pDCB,
- * PSRB pSRB)
+ * Function: static void dc390_BuildSRB (Scsi_Cmd *pcmd, struct dc390_dcb* pDCB,
+ * struct dc390_srb* pSRB)
*
* Purpose: Prepare SRB for being sent to Device DCB w/ command *pcmd
*
***********************************************************************/
-static void dc390_BuildSRB (Scsi_Cmnd* pcmd, PDCB pDCB, PSRB pSRB)
+static void dc390_BuildSRB (struct scsi_cmnd *pcmd, struct dc390_dcb* pDCB, struct dc390_srb* pSRB)
{
pSRB->pSRBDCB = pDCB;
pSRB->pcmd = pcmd;
}
/***********************************************************************
- * Function : static int DC390_queue_command (Scsi_Cmnd *cmd,
- * void (*done)(Scsi_Cmnd *))
+ * Function : static int DC390_queue_command (struct scsi_cmnd *cmd,
+ * void (*done)(struct scsi_cmnd *))
*
* Purpose : enqueues a SCSI command
*
*
***********************************************************************/
-static int DC390_queue_command (Scsi_Cmnd *cmd, void (* done)(Scsi_Cmnd *))
+static int DC390_queue_command(struct scsi_cmnd *cmd,
+ void (* done)(struct scsi_cmnd *))
{
- PDCB pDCB = (PDCB) cmd->device->hostdata;
- PSRB pSRB;
- PACB pACB = (PACB) cmd->device->host->hostdata;
+ struct dc390_dcb* pDCB = (struct dc390_dcb*) cmd->device->hostdata;
+ struct dc390_srb* pSRB;
+ struct dc390_acb* pACB = (struct dc390_acb*) cmd->device->host->hostdata;
DEBUG0(/* if(pACB->scan_devices) */ \
printk(KERN_INFO "DC390: Queue Cmd=%02x,Tgt=%d,LUN=%d (pid=%li), buffer=%p\n",\
sector_t capacity, int geom[])
{
int heads, sectors, cylinders;
- PACB pACB = (PACB) sdev->host->hostdata;
+ struct dc390_acb* pACB = (struct dc390_acb*) sdev->host->hostdata;
int ret_code = -1;
int size = capacity;
unsigned char *buf;
}
#endif
-static void dc390_dumpinfo (PACB pACB, PDCB pDCB, PSRB pSRB)
+static void dc390_dumpinfo (struct dc390_acb* pACB, struct dc390_dcb* pDCB, struct dc390_srb* pSRB)
{
- USHORT pstat; PDEVDECL1;
+ struct pci_dev *pdev;
+ u16 pstat;
+
if (!pDCB) pDCB = pACB->pActiveDCB;
if (!pSRB && pDCB) pSRB = pDCB->pActiveSRB;
DC390_read32(DMA_Wk_ByteCntr), DC390_read32(DMA_Wk_AddrCntr),
DC390_read8(DMA_Status), DC390_read32(DMA_ScsiBusCtrl));
DC390_write32 (DMA_ScsiBusCtrl, EN_INT_ON_PCI_ABORT);
- PDEVSET1; PCI_READ_CONFIG_WORD(PDEV, PCI_STATUS, &pstat);
+
+ pdev = pACB->pdev;
+ pci_read_config_word(pdev, PCI_STATUS, &pstat);
printk ("DC390: Register dump: PCI Status: %04x\n", pstat);
printk ("DC390: In case of driver trouble read linux/Documentation/scsi/tmscsim.txt\n");
}
/***********************************************************************
- * Function : int DC390_abort (Scsi_Cmnd *cmd)
+ * Function : int DC390_abort (struct scsi_cmnd *cmd)
*
* Purpose : Abort an errant SCSI command
*
* Status: Buggy !
***********************************************************************/
-static int DC390_abort (Scsi_Cmnd *cmd)
+static int DC390_abort (struct scsi_cmnd *cmd)
{
- PDCB pDCB = (PDCB) cmd->device->hostdata;
- PSRB pSRB, psrb;
- UINT count, i;
+ struct dc390_dcb *pDCB = (struct dc390_dcb*) cmd->device->hostdata;
+ struct dc390_srb *pSRB, *psrb;
+ u32 count, i;
int status;
- //ULONG sbac;
- PACB pACB = (PACB) cmd->device->host->hostdata;
+ //unsigned long sbac;
+ struct dc390_acb *pACB = (struct dc390_acb*) cmd->device->host->hostdata;
printk ("DC390: Abort command (pid %li, Device %02i-%02i)\n",
cmd->pid, cmd->device->id, cmd->device->lun);
}
-static void dc390_ResetDevParam( PACB pACB )
+static void dc390_ResetDevParam( struct dc390_acb* pACB )
{
- PDCB pDCB, pdcb;
+ struct dc390_dcb *pDCB, *pdcb;
pDCB = pACB->pLinkDCB;
if (! pDCB) return;
#if 0
/* Moves all SRBs from Going to Waiting for all DCBs */
-static void dc390_RecoverSRB( PACB pACB )
+static void dc390_RecoverSRB( struct dc390_acb* pACB )
{
- PDCB pDCB, pdcb;
- PSRB psrb, psrb2;
- UINT cnt, i;
+ struct dc390_dcb *pDCB, *pdcb;
+ struct dc390_srb *psrb, *psrb2;
+ u32 cnt, i;
pDCB = pACB->pLinkDCB;
if( !pDCB ) return;
#endif
/***********************************************************************
- * Function : int DC390_reset (Scsi_Cmnd *cmd, ...)
+ * Function : int DC390_reset (struct scsi_cmnd *cmd, ...)
*
* Purpose : perform a hard reset on the SCSI bus
*
* Returns : 0 on success.
***********************************************************************/
-static int DC390_reset (Scsi_Cmnd *cmd)
+static int DC390_reset (struct scsi_cmnd *cmd)
{
- UCHAR bval;
- PACB pACB = (PACB) cmd->device->host->hostdata;
+ u8 bval;
+ struct dc390_acb* pACB = (struct dc390_acb*) cmd->device->host->hostdata;
printk(KERN_INFO "DC390: RESET ... ");
* Purpose : Set the configuration dependent DCB parameters
***********************************************************************/
-static void dc390_updateDCB (PACB pACB, PDCB pDCB)
+static void dc390_updateDCB (struct dc390_acb* pACB, struct dc390_dcb* pDCB)
{
pDCB->SyncMode &= EN_TAG_QUEUEING | SYNC_NEGO_DONE /*| EN_ATN_STOP*/;
if (pDCB->DevMode & TAG_QUEUEING_) {
* Inputs : psrb - pointer to this scsi request block structure
***********************************************************************/
-static void __inline__ dc390_initSRB( PSRB psrb )
+static void __inline__ dc390_initSRB( struct dc390_srb* psrb )
{
/* psrb->PhysSRB = virt_to_phys( psrb ); */
}
-static void dc390_linkSRB( PACB pACB )
+static void dc390_linkSRB( struct dc390_acb* pACB )
{
- UINT count, i;
+ u32 count, i;
count = pACB->SRBCount;
for( i=0; i<count; i++)
* io_port, Irq, index: Resources and adapter index
***********************************************************************/
-static void __devinit dc390_initACB (PSH psh, ULONG io_port, UCHAR Irq, UCHAR index)
+static void __devinit dc390_initACB (struct Scsi_Host *psh, unsigned long io_port, u8 Irq, u8 index)
{
- PACB pACB;
- UCHAR i;
+ struct dc390_acb* pACB;
+ u8 i;
psh->can_queue = MAX_CMD_QUEUE;
psh->cmd_per_lun = MAX_CMD_PER_LUN;
psh->dma_channel = -1;
psh->last_reset = jiffies;
- pACB = (PACB) psh->hostdata;
+ pACB = (struct dc390_acb*) psh->hostdata;
pACB->pScsiHost = psh;
- pACB->IOPortBase = (USHORT) io_port;
+ pACB->IOPortBase = (u16) io_port;
pACB->IRQLevel = Irq;
DEBUG0(printk (KERN_INFO "DC390: Adapter index %i, ID %i, IO 0x%08x, IRQ 0x%02x\n", \
* Outputs: 0 on success, -1 on error
***********************************************************************/
-static int __devinit dc390_initAdapter (PSH psh, ULONG io_port, UCHAR Irq, UCHAR index)
+static int __devinit dc390_initAdapter (struct Scsi_Host *psh, unsigned long io_port, u8 Irq, u8 index)
{
- PACB pACB, pACB2;
- UCHAR dstate;
+ struct dc390_acb *pACB, *pACB2;
+ u8 dstate;
int i;
- pACB = (PACB) psh->hostdata;
+ pACB = (struct dc390_acb*) psh->hostdata;
if (request_region (io_port, psh->n_io_port, "tmscsim") == NULL) {
printk(KERN_ERR "DC390: register IO ports error!\n");
}
-static void __devinit dc390_set_pci_cfg (PDEVDECL)
+static void __devinit dc390_set_pci_cfg (struct pci_dev *pdev)
{
- USHORT cmd;
- PCI_READ_CONFIG_WORD (PDEV, PCI_COMMAND, &cmd);
+ u16 cmd;
+
+ pci_read_config_word(pdev, PCI_COMMAND, &cmd);
cmd |= PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_IO;
- PCI_WRITE_CONFIG_WORD (PDEV, PCI_COMMAND, cmd);
- PCI_WRITE_CONFIG_WORD (PDEV, PCI_STATUS, (PCI_STATUS_SIG_SYSTEM_ERROR | PCI_STATUS_DETECTED_PARITY));
+ pci_write_config_word(pdev, PCI_COMMAND, cmd);
+ pci_write_config_word(pdev, PCI_STATUS, (PCI_STATUS_SIG_SYSTEM_ERROR | PCI_STATUS_DETECTED_PARITY));
}
/**
*/
static int dc390_slave_alloc(struct scsi_device *scsi_device)
{
- PACB pACB = (PACB) scsi_device->host->hostdata;
- PDCB pDCB, pDCB2 = 0;
+ struct dc390_acb *pACB = (struct dc390_acb*) scsi_device->host->hostdata;
+ struct dc390_dcb *pDCB, *pDCB2 = 0;
uint id = scsi_device->id;
uint lun = scsi_device->lun;
- pDCB = kmalloc(sizeof(DC390_DCB), GFP_KERNEL);
+ pDCB = kmalloc(sizeof(struct dc390_dcb), GFP_KERNEL);
if (!pDCB)
return -ENOMEM;
- memset(pDCB, 0, sizeof(DC390_DCB));
+ memset(pDCB, 0, sizeof(struct dc390_dcb));
if (!pACB->DCBCnt++) {
pACB->pLinkDCB = pDCB;
*/
static void dc390_slave_destroy(struct scsi_device *scsi_device)
{
- PACB pACB = (PACB) scsi_device->host->hostdata;
- PDCB pDCB = (PDCB) scsi_device->hostdata;
- PDCB pPrevDCB = pACB->pLinkDCB;
+ struct dc390_acb* pACB = (struct dc390_acb*) scsi_device->host->hostdata;
+ struct dc390_dcb* pDCB = (struct dc390_dcb*) scsi_device->hostdata;
+ struct dc390_dcb* pPrevDCB = pACB->pLinkDCB;
pACB->scan_devices = 0;
static int dc390_slave_configure(struct scsi_device *scsi_device)
{
- PACB pACB = (PACB) scsi_device->host->hostdata;
+ struct dc390_acb* pACB = (struct dc390_acb*) scsi_device->host->hostdata;
pACB->scan_devices = 0;
return 0;
}
-static Scsi_Host_Template driver_template = {
+static struct scsi_host_template driver_template = {
.module = THIS_MODULE,
.proc_name = "tmscsim",
.proc_info = DC390_proc_info,
struct Scsi_Host *scsi_host;
unsigned long io_port;
u8 irq;
- PACB pACB;
+ struct dc390_acb* pACB;
int ret = -ENOMEM;
if (pci_enable_device(dev))
irq = dev->irq;
/* allocate scsi host information (includes out adapter) */
- scsi_host = scsi_host_alloc(&driver_template, sizeof(struct _ACB));
+ scsi_host = scsi_host_alloc(&driver_template, sizeof(struct dc390_acb));
if (!scsi_host)
goto nomem;
- pACB = (PACB) scsi_host->hostdata;
+ pACB = (struct dc390_acb*) scsi_host->hostdata;
if (dc390_CheckEEpromCheckSum (dev, dc390_adapterCnt)) {
int speed;
printk(KERN_INFO "DC390: Used defaults: AdaptID=%i, SpeedIdx=%i (%i.%i MHz),"
" DevMode=0x%02x, AdaptMode=0x%02x, TaggedCmnds=%i (%i), DelayReset=%is\n",
tmscsim[0], tmscsim[1], speed/10, speed%10,
- (UCHAR)tmscsim[2], (UCHAR)tmscsim[3], tmscsim[4], 2 << (tmscsim[4]), tmscsim[5]);
+ (u8)tmscsim[2], (u8)tmscsim[3], tmscsim[4], 2 << (tmscsim[4]), tmscsim[5]);
} else {
dc390_check_for_safe_settings();
dc390_EEprom_Override(dc390_adapterCnt);
}
- DEBUG0(printk(KERN_INFO "DC390: pSH = %8x, Index %02i\n", (UINT) scsi_host, dc390_adapterCnt));
+ DEBUG0(printk(KERN_INFO "DC390: pSH = %8x, Index %02i\n", (u32) scsi_host, dc390_adapterCnt));
dc390_initACB(scsi_host, io_port, irq, dc390_adapterCnt);
{
struct Scsi_Host *scsi_host = pci_get_drvdata(dev);
unsigned long iflags;
- PACB pACB = (PACB) scsi_host->hostdata;
+ struct dc390_acb* pACB = (struct dc390_acb*) scsi_host->hostdata;
u8 bval;
scsi_remove_host(scsi_host);
{
int dev, spd, spd1;
char *pos = buffer;
- PACB pACB;
- PDCB pDCB;
+ struct dc390_acb* pACB;
+ struct dc390_dcb* pDCB;
pACB = dc390_pACB_start;
- while(pACB != (PACB)-1)
+ while(pACB != (struct dc390_acb*)-1)
{
if (shpnt == pACB->pScsiHost)
break;
pACB = pACB->pNextACB;
}
- if (pACB == (PACB)-1) return(-ESRCH);
+ if (pACB == (struct dc390_acb*)-1) return(-ESRCH);
if(inout) /* Has data been written to the file ? */
return -ENOSYS;
for (dev = 0; dev < pACB->DCBCnt; dev++)
{
- PSRB pSRB;
+ struct dc390_srb* pSRB;
if (pDCB->WaitSRBCnt)
SPRINTF ("DCB (%02i-%i): Waiting: %i:", pDCB->TargetID, pDCB->TargetLUN,
pDCB->WaitSRBCnt);