[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-scsi
Subject: Re: [PATCH] kill obsolete typedefs and wrappers from tmscsim
From: Guennadi Liakhovetski <g.liakhovetski () gmx ! de>
Date: 2004-06-26 22:32:10
Message-ID: Pine.LNX.4.60.0406262215290.2268 () poirot ! grange
[Download RAW message or body]
On Sat, 26 Jun 2004, Christoph Hellwig wrote:
>>> That'll happen sooner or later :)
>>
>> So, why not now?:-)
>
> Okay, okay - you've won :)
>
>> Sure, that's easy!:-) I kept capitals initially, because all functions are
>> called like FindDCB, DoingSRB_Done, etc. But if we rename dc390_dcb into
>> dc390_lun, we would have to rename all respective functions, but that's
>> a bit too much, I think. So, is it ok to just "smallify" the types, going
>> the Middle Way?:-)
>
> Yes.
Ok, attached. You didn't sign-off for it. After half an hour searching
through my LKML archives I found that email from Linus, explaining what to
do in this case:-) And it was pretty much what I had in head, so, I put
"originally submitted" by you, and then signed-off myself. Ough. Hope, you
don't mind:-)
James, please, apply.
>> Do you want to rediff your 3rd patch yourself or should I do it?
>
> I can rediff it.
Ok, thanks.
>> Essentially, as you know, up to now the "old" EH code was used by tmscsim.
>> Switching to the "new" one seems a pretty essential change.
>
> No. Old EH is completely gone in 2.6. The tmscsim driver claims to
> implement new EH but gets it wrong currently..
Ok, I was just confused by
#define OLD_EH
in dc390.h
I looked through this your patch. Ok, I more or less can understand it,
great, thanks! One question, though. Is result = DID_ABORT << 16 no more
needed in ->eh_abort_handler()?
And one more - del_timer in bus_reset. Shouldn't we rather drop the
host_lock, call del_timer_sync and then re-accuire the lock? There might
be some other places like that...
>> Is there a way
>> I could test it a bit? I can now boot and run from IDE, loading tmscsim as
>> a module, to which I have a disk and a CD-ROM connected. How can I
>> exercise eh-paths a bit without destroying the hardware?:-)
>
> A good way to test EH is to improperly terminate the bus and wait for
> failures to happen or similar things.
Hm, on that PC I can only boot either from SCSI or from a floppy. So, to
test that I would have to make a boot-floppy... And then I would better
disconnect the disk, right?:-)
Thanks
Guennadi
---
Guennadi Liakhovetski
["tmscsim-ch_5.4.patch" (TEXT/PLAIN)]
Original version submitted on 24 June 2004 by Christoph Hellwig.
Additions and modifications by:
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
diff -u a/drivers/scsi/scsiiom.c b/drivers/scsi/scsiiom.c
--- a/drivers/scsi/scsiiom.c 23 Jun 2004 21:40:16
+++ b/drivers/scsi/scsiiom.c 24 Jun 2004 22:28:19
@@ -6,7 +6,7 @@
***********************************************************************/
/* $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 */
@@ -15,10 +15,10 @@
}
-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;
@@ -69,7 +69,7 @@
/* 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); @@ -92,7 +92,7 @@
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;
@@ -121,8 +121,8 @@
}
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++));
}
@@ -154,18 +154,17 @@
#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);
@@ -179,7 +178,7 @@
}
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
@@ -217,18 +216,18 @@
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)
{
@@ -323,7 +322,7 @@
( *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 );
@@ -345,12 +344,12 @@
}
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;
@@ -390,10 +389,10 @@
}
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;
@@ -409,13 +408,13 @@
}
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;
@@ -443,9 +442,9 @@
}
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 */
@@ -501,11 +500,11 @@
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;
@@ -515,7 +514,7 @@
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++;
@@ -534,12 +533,12 @@
}
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);
@@ -552,7 +551,7 @@
}
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;
@@ -561,7 +560,7 @@
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);
@@ -573,7 +572,7 @@
#ifdef DC390_DEBUG0
static void
-dc390_printMsg (UCHAR *MsgBuf, UCHAR len)
+dc390_printMsg (u8 *MsgBuf, u8 len)
{
int i;
printk (" %02x", MsgBuf[0]);
@@ -587,7 +586,7 @@
/* 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;
@@ -596,18 +595,18 @@
/* 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)
{
@@ -645,9 +644,9 @@
/* 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;
@@ -663,13 +662,13 @@
/* 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))
{
@@ -702,7 +701,7 @@
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 */
@@ -722,7 +721,7 @@
}
pDCB->CtrlR3 = bval;
- pDCB->SyncPeriod = (UCHAR)wval1;
+ pDCB->SyncPeriod = (u8)wval1;
if ((oldsyncperiod != wval1 || oldsyncoffset != pDCB->SyncOffset) && \
pDCB->TargetLUN == 0) {
@@ -738,20 +737,20 @@
/* 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 )
{
@@ -773,7 +772,7 @@
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"); @@ -792,8 +791,8 @@
/* 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)
{
@@ -809,9 +808,9 @@
/* 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 */
@@ -856,7 +855,7 @@
// 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;
@@ -883,11 +882,11 @@
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)
{
@@ -913,11 +912,11 @@
}
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);
@@ -956,36 +955,36 @@
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);
@@ -1000,7 +999,7 @@
}
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;
@@ -1009,11 +1008,11 @@
}
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;
@@ -1022,7 +1021,7 @@
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;
@@ -1062,7 +1061,7 @@
}
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) )
@@ -1075,21 +1074,21 @@
}
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) )
{
@@ -1117,11 +1116,11 @@
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,"));
@@ -1198,11 +1197,11 @@
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;
@@ -1283,10 +1282,10 @@
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;
@@ -1295,7 +1294,7 @@
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 )
@@ -1317,9 +1316,9 @@
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);
@@ -1327,22 +1326,24 @@
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));
@@ -1379,7 +1380,7 @@
}
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) )
@@ -1387,7 +1388,7 @@
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 */
@@ -1395,19 +1396,17 @@
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;
@@ -1437,14 +1436,14 @@
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);
@@ -1569,12 +1568,12 @@
/* 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;
@@ -1610,7 +1609,7 @@
static void
-dc390_ResetSCSIBus( PACB pACB )
+dc390_ResetSCSIBus( struct dc390_acb* pACB )
{
//DC390_write8 (ScsiCmd, RST_DEVICE_CMD);
//udelay (250);
@@ -1625,7 +1624,7 @@
}
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,"));
@@ -1658,9 +1657,9 @@
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;
@@ -1668,9 +1667,9 @@
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;
@@ -1683,8 +1682,8 @@
//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;
@@ -1698,7 +1697,7 @@
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);
diff -u a/drivers/scsi/tmscsim.c b/drivers/scsi/tmscsim.c
--- a/drivers/scsi/tmscsim.c 24 Jun 2004 21:07:14
+++ b/drivers/scsi/tmscsim.c 24 Jun 2004 22:26:35
@@ -221,11 +221,8 @@
#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>
@@ -235,44 +232,30 @@
#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,
@@ -283,62 +266,47 @@
};
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};
@@ -351,7 +319,7 @@
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,
@@ -363,7 +331,7 @@
dc390_Nop_1
};
-static PVOID dc390_phase1[]={
+static void *dc390_phase1[]={
dc390_DataOutPhase,
dc390_DataInPhase,
dc390_CommandPhase,
@@ -402,15 +370,15 @@
#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
@@ -419,46 +387,45 @@
**********************************************************************/
-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 */
}
}
@@ -527,36 +494,36 @@
__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
@@ -564,68 +531,68 @@
}
-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);
@@ -643,9 +610,9 @@
* (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;
@@ -675,26 +642,10 @@
* 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));
@@ -708,7 +659,7 @@
}
/* 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;
@@ -717,7 +668,7 @@
/* 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;
@@ -729,7 +680,7 @@
/* 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 )
@@ -743,7 +694,7 @@
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));
@@ -758,14 +709,14 @@
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)
@@ -778,7 +729,7 @@
}
/* 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 */
@@ -789,7 +740,7 @@
}
/* 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));
@@ -801,7 +752,7 @@
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);
@@ -816,10 +767,10 @@
/* 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;
@@ -854,7 +805,7 @@
/* 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);
@@ -863,15 +814,15 @@
}
/***********************************************************************
- * 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) ||
@@ -913,10 +864,10 @@
}
/* 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));
@@ -933,9 +884,9 @@
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;
@@ -945,7 +896,7 @@
} 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 */
@@ -960,9 +911,9 @@
}
/* 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)));
@@ -970,24 +921,24 @@
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;
@@ -1015,8 +966,8 @@
}
/***********************************************************************
- * 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
*
@@ -1033,11 +984,12 @@
*
***********************************************************************/
-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",\
@@ -1181,7 +1133,7 @@
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;
@@ -1221,9 +1173,11 @@
}
#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;
@@ -1257,14 +1211,16 @@
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
*
@@ -1275,14 +1231,14 @@
* 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);
@@ -1406,9 +1362,9 @@
}
-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;
@@ -1431,11 +1387,11 @@
#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;
@@ -1470,7 +1426,7 @@
#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
*
@@ -1480,10 +1436,10 @@
* 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 ... ");
@@ -1526,7 +1482,7 @@
* 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_) {
@@ -1558,15 +1514,15 @@
* 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++)
@@ -1589,10 +1545,10 @@
* 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;
@@ -1605,10 +1561,10 @@
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", \ @@ -1660,13 +1616,13 @@
* 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");
@@ -1731,13 +1687,14 @@
}
-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)); }
/**
@@ -1748,15 +1705,15 @@
*/
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;
@@ -1816,9 +1773,9 @@
*/
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;
@@ -1853,12 +1810,12 @@
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,
@@ -1883,7 +1840,7 @@
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))
@@ -1893,11 +1850,11 @@
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;
@@ -1910,13 +1867,13 @@
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);
@@ -1959,7 +1916,7 @@
{
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);
@@ -2014,19 +1971,19 @@
{
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;
@@ -2087,7 +2044,7 @@
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);
diff -u a/drivers/scsi/tmscsim.h b/drivers/scsi/tmscsim.h
--- a/drivers/scsi/tmscsim.h 23 Jun 2004 21:39:19
+++ b/drivers/scsi/tmscsim.h 24 Jun 2004 21:33:43
@@ -29,215 +29,167 @@
typedef u32 UINT; /* 32 bits */
typedef unsigned long ULONG; /* 32/64 bits */
-typedef UCHAR *PUCHAR;
-typedef USHORT *PUSHORT;
-typedef UINT *PUINT;
-typedef ULONG *PULONG;
-typedef Scsi_Host_Template *PSHT;
-typedef struct Scsi_Host *PSH;
-typedef Scsi_Device *PSCSIDEV;
-typedef Scsi_Cmnd *PSCSICMD;
-typedef void *PVOID;
-typedef struct scatterlist *PSGL, SGL;
-
-
-/*;-----------------------------------------------------------------------*/
-typedef struct _SyncMsg
-{
-UCHAR ExtendMsg;
-UCHAR ExtMsgLen;
-UCHAR SyncXferReq;
-UCHAR Period;
-UCHAR ReqOffset;
-} SyncMsg;
-/*;-----------------------------------------------------------------------*/
-typedef struct _Capacity
-{
-ULONG BlockCount;
-ULONG BlockLength;
-} Capacity;
-/*;-----------------------------------------------------------------------*/
-typedef struct _SGentry
-{
-ULONG SGXferDataPtr;
-ULONG SGXferDataLen;
-} SGentry;
-
-typedef struct _SGentry1
-{
-ULONG SGXLen;
-ULONG SGXPtr;
-} SGentry1, *PSGE;
-
/*
;-----------------------------------------------------------------------
; SCSI Request Block
;-----------------------------------------------------------------------
*/
-struct _SRB
+struct dc390_srb
{
-//UCHAR CmdBlock[12];
+//u8 CmdBlock[12];
-struct _SRB *pNextSRB;
-struct _DCB *pSRBDCB;
-PSCSICMD pcmd;
-PSGL pSegmentList;
+struct dc390_srb *pNextSRB;
+struct dc390_dcb *pSRBDCB;
+struct scsi_cmnd *pcmd;
+struct scatterlist *pSegmentList;
/* 0x10: */
-SGL Segmentx; /* make a one entry of S/G list table */
+struct scatterlist Segmentx; /* make a one entry of S/G list table */
/* 0x1c: */
-ULONG SGBusAddr; /*;a segment starting address as seen by AM53C974A*/
-ULONG SGToBeXferLen; /*; to be xfer length */
-ULONG TotalXferredLen;
-ULONG SavedTotXLen;
-UINT SRBState;
+unsigned long SGBusAddr; /*;a segment starting address as seen by AM53C974A*/
+unsigned long SGToBeXferLen; /*; to be xfer length */
+unsigned long TotalXferredLen;
+unsigned long SavedTotXLen;
+u32 SRBState;
/* 0x30: */
-UCHAR SRBStatus;
-UCHAR SRBFlag; /*; b0-AutoReqSense,b6-Read,b7-write */
+u8 SRBStatus;
+u8 SRBFlag; /*; b0-AutoReqSense,b6-Read,b7-write */
/*; b4-settimeout,b5-Residual valid */
-UCHAR AdaptStatus;
-UCHAR TargetStatus;
+u8 AdaptStatus;
+u8 TargetStatus;
-UCHAR ScsiPhase;
-UCHAR TagNumber;
-UCHAR SGIndex;
-UCHAR SGcount;
+u8 ScsiPhase;
+u8 TagNumber;
+u8 SGIndex;
+u8 SGcount;
/* 0x38: */
-UCHAR MsgCnt;
-UCHAR EndMessage;
-UCHAR RetryCnt;
-UCHAR SavedSGCount;
+u8 MsgCnt;
+u8 EndMessage;
+u8 RetryCnt;
+u8 SavedSGCount;
-ULONG Saved_Ptr;
+unsigned long Saved_Ptr;
/* 0x40: */
-UCHAR MsgInBuf[6];
-UCHAR MsgOutBuf[6];
+u8 MsgInBuf[6];
+u8 MsgOutBuf[6];
-//UCHAR IORBFlag; /*;81h-Reset, 2-retry */
+//u8 IORBFlag; /*;81h-Reset, 2-retry */
/* 0x4c: */
};
-typedef struct _SRB DC390_SRB, *PSRB;
-
/*
;-----------------------------------------------------------------------
; Device Control Block
;-----------------------------------------------------------------------
*/
-struct _DCB
+struct dc390_dcb
{
-struct _DCB *pNextDCB;
-struct _ACB *pDCBACB;
-
-/* Aborted Commands */
-//PSCSICMD AboIORBhead;
-//PSCSICMD AboIORBtail;
-//ULONG AboIORBcnt;
+struct dc390_dcb *pNextDCB;
+struct dc390_acb *pDCBACB;
/* 0x08: */
/* Queued SRBs */
-PSRB pWaitingSRB;
-PSRB pWaitLast;
-PSRB pGoingSRB;
-PSRB pGoingLast;
-PSRB pActiveSRB;
-UCHAR WaitSRBCnt; /* Not used */
-UCHAR GoingSRBCnt;
+struct dc390_srb *pWaitingSRB;
+struct dc390_srb *pWaitLast;
+struct dc390_srb *pGoingSRB;
+struct dc390_srb *pGoingLast;
+struct dc390_srb *pActiveSRB;
+u8 WaitSRBCnt; /* Not used */
+u8 GoingSRBCnt;
-UCHAR DevType;
-UCHAR MaxCommand;
+u8 DevType;
+u8 MaxCommand;
/* 0x20: */
-UINT TagMask;
+u32 TagMask;
-UCHAR TargetID; /*; SCSI Target ID (SCSI Only) */
-UCHAR TargetLUN; /*; SCSI Log. Unit (SCSI Only) */
-UCHAR DevMode;
-UCHAR DCBFlag;
-
-UCHAR CtrlR1;
-UCHAR CtrlR3;
-UCHAR CtrlR4;
-UCHAR Inquiry7;
+u8 TargetID; /*; SCSI Target ID (SCSI Only) */
+u8 TargetLUN; /*; SCSI Log. Unit (SCSI Only) */
+u8 DevMode;
+u8 DCBFlag;
+
+u8 CtrlR1;
+u8 CtrlR3;
+u8 CtrlR4;
+u8 Inquiry7;
/* 0x2c: */
-UCHAR SyncMode; /*; 0:async mode */
-UCHAR NegoPeriod; /*;for nego. */
-UCHAR SyncPeriod; /*;for reg. */
-UCHAR SyncOffset; /*;for reg. and nego.(low nibble) */
+u8 SyncMode; /*; 0:async mode */
+u8 NegoPeriod; /*;for nego. */
+u8 SyncPeriod; /*;for reg. */
+u8 SyncOffset; /*;for reg. and nego.(low nibble) */
/* 0x30:*/
-//UCHAR InqDataBuf[8];
-//UCHAR CapacityBuf[8];
+//u8 InqDataBuf[8];
+//u8 CapacityBuf[8];
///* 0x40: */
};
-typedef struct _DCB DC390_DCB, *PDCB;
+
/*
;-----------------------------------------------------------------------
; Adapter Control Block
;-----------------------------------------------------------------------
*/
-struct _ACB
+struct dc390_acb
{
-PSH pScsiHost;
-struct _ACB *pNextACB;
-USHORT IOPortBase;
-UCHAR IRQLevel;
-UCHAR status;
-
-UCHAR SRBCount;
-UCHAR AdapterIndex; /*; nth Adapter this driver */
-UCHAR DCBCnt;
-
-UCHAR TagMaxNum;
-UCHAR ACBFlag;
-UCHAR Gmode2;
-UCHAR scan_devices;
-
-PDCB pLinkDCB;
-PDCB pLastDCB;
-PDCB pDCBRunRobin;
-
-PDCB pActiveDCB;
-PSRB pFreeSRB;
-PSRB pTmpSRB;
-
-UCHAR msgin123[4];
-UCHAR DCBmap[MAX_SCSI_ID];
-UCHAR Connected;
-UCHAR pad;
+struct Scsi_Host *pScsiHost;
+struct dc390_acb *pNextACB;
+u16 IOPortBase;
+u8 IRQLevel;
+u8 status;
+
+u8 SRBCount;
+u8 AdapterIndex; /*; nth Adapter this driver */
+u8 DCBCnt;
+
+u8 TagMaxNum;
+u8 ACBFlag;
+u8 Gmode2;
+u8 scan_devices;
+
+struct dc390_dcb *pLinkDCB;
+struct dc390_dcb *pLastDCB;
+struct dc390_dcb *pDCBRunRobin;
+
+struct dc390_dcb *pActiveDCB;
+struct dc390_srb *pFreeSRB;
+struct dc390_srb *pTmpSRB;
+
+u8 msgin123[4];
+u8 DCBmap[MAX_SCSI_ID];
+u8 Connected;
+u8 pad;
#if defined(USE_SPINLOCKS) && USE_SPINLOCKS > 1 && (defined(CONFIG_SMP) || \
DEBUG_SPINLOCKS > 0) spinlock_t lock;
#endif
-UCHAR sel_timeout;
-UCHAR glitch_cfg;
+u8 sel_timeout;
+u8 glitch_cfg;
-UCHAR MsgLen;
-UCHAR Ignore_IRQ; /* Not used */
+u8 MsgLen;
+u8 Ignore_IRQ; /* Not used */
-PDEVDECL1; /* Pointer to PCI cfg. space */
+struct pci_dev *pdev;
-ULONG Cmds;
-UINT SelLost;
-UINT SelConn;
-UINT CmdInQ;
-UINT CmdOutOfSRB;
+unsigned long Cmds;
+u32 SelLost;
+u32 SelConn;
+u32 CmdInQ;
+u32 CmdOutOfSRB;
struct timer_list Waiting_Timer;
-DC390_SRB TmpSRB;
-DC390_SRB SRB_array[MAX_SRB_CNT]; /* 50 SRBs */
+struct dc390_srb TmpSRB;
+struct dc390_srb SRB_array[MAX_SRB_CNT]; /* 50 SRBs */
};
-typedef struct _ACB DC390_ACB, *PACB;
/*;-----------------------------------------------------------------------*/
@@ -402,17 +354,17 @@
typedef struct _SCSIInqData { /* INQUIRY */
- UCHAR DevType; /* Periph Qualifier & Periph Dev Type*/
- UCHAR RMB_TypeMod; /* rem media bit & Dev Type Modifier */
- UCHAR Vers; /* ISO, ECMA, & ANSI versions */
- UCHAR RDF; /* AEN, TRMIOP, & response data format*/
- UCHAR AddLen; /* length of additional data */
- UCHAR Res1; /* reserved */
- UCHAR Res2; /* reserved */
- UCHAR Flags; /* RelADr,Wbus32,Wbus16,Sync,etc. */
- UCHAR VendorID[8]; /* Vendor Identification */
- UCHAR ProductID[16]; /* Product Identification */
- UCHAR ProductRev[4]; /* Product Revision */
+ u8 DevType; /* Periph Qualifier & Periph Dev Type*/
+ u8 RMB_TypeMod; /* rem media bit & Dev Type Modifier */
+ u8 Vers; /* ISO, ECMA, & ANSI versions */
+ u8 RDF; /* AEN, TRMIOP, & response data format*/
+ u8 AddLen; /* length of additional data */
+ u8 Res1; /* reserved */
+ u8 Res2; /* reserved */
+ u8 Flags; /* RelADr,Wbus32,Wbus16,Sync,etc. */
+ u8 VendorID[8]; /* Vendor Identification */
+ u8 ProductID[16]; /* Product Identification */
+ u8 ProductRev[4]; /* Product Revision */
} SCSI_INQDATA, *PSCSI_INQDATA;
@@ -461,10 +413,10 @@
*/
typedef struct _EEprom
{
-UCHAR EE_MODE1;
-UCHAR EE_SPEED;
-UCHAR xx1;
-UCHAR xx2;
+u8 EE_MODE1;
+u8 EE_SPEED;
+u8 xx1;
+u8 xx2;
} EEprom, *PEEprom;
#define REAL_EE_ADAPT_SCSI_ID 64
@@ -676,7 +628,7 @@
(inb (pACB->IOPortBase + (address)))
#define DC390_read8_(address, base) \
- (inb ((USHORT)(base) + (address)))
+ (inb ((u16)(base) + (address)))
#define DC390_read16(address) \
(inw (pACB->IOPortBase + (address)))
@@ -688,7 +640,7 @@
outb ((value), pACB->IOPortBase + (address))
#define DC390_write8_(address,value,base) \
- outb ((value), (USHORT)(base) + (address))
+ outb ((value), (u16)(base) + (address))
#define DC390_write16(address,value) \
outw ((value), pACB->IOPortBase + (address))
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic