Commit 022c1baf authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

[PATCH] new eh for inia wrapper too

parent 92fc7f3f
...@@ -126,7 +126,7 @@ extern void orc_exec_scb(ORC_HCS * hcsp, ORC_SCB * scbp); ...@@ -126,7 +126,7 @@ extern void orc_exec_scb(ORC_HCS * hcsp, ORC_SCB * scbp);
extern void orc_release_scb(ORC_HCS * hcsp, ORC_SCB * scbp); extern void orc_release_scb(ORC_HCS * hcsp, ORC_SCB * scbp);
extern void orc_release_dma(ORC_HCS * hcsp, Scsi_Cmnd * cmnd); extern void orc_release_dma(ORC_HCS * hcsp, Scsi_Cmnd * cmnd);
extern void orc_interrupt(ORC_HCS * hcsp); extern void orc_interrupt(ORC_HCS * hcsp);
extern int orc_device_reset(ORC_HCS * pHCB, Scsi_Cmnd *SCpnt, unsigned int target, unsigned int ResetFlags); extern int orc_device_reset(ORC_HCS * pHCB, Scsi_Cmnd *SCpnt, unsigned int target);
extern int orc_reset_scsi_bus(ORC_HCS * pHCB); extern int orc_reset_scsi_bus(ORC_HCS * pHCB);
extern int abort_SCB(ORC_HCS * hcsp, ORC_SCB * pScb); extern int abort_SCB(ORC_HCS * hcsp, ORC_SCB * pScb);
extern int orc_abort_srb(ORC_HCS * hcsp, Scsi_Cmnd *SCpnt); extern int orc_abort_srb(ORC_HCS * hcsp, Scsi_Cmnd *SCpnt);
...@@ -514,7 +514,7 @@ static void inia100BuildSCB(ORC_HCS * pHCB, ORC_SCB * pSCB, Scsi_Cmnd * SCpnt) ...@@ -514,7 +514,7 @@ static void inia100BuildSCB(ORC_HCS * pHCB, ORC_SCB * pSCB, Scsi_Cmnd * SCpnt)
Output : None. Output : None.
Return : pSRB - Pointer to SCSI request block. Return : pSRB - Pointer to SCSI request block.
*****************************************************************************/ *****************************************************************************/
int inia100_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *)) static int inia100_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
{ {
register ORC_SCB *pSCB; register ORC_SCB *pSCB;
ORC_HCS *pHCB; /* Point to Host adapter control block */ ORC_HCS *pHCB; /* Point to Host adapter control block */
...@@ -541,7 +541,7 @@ int inia100_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *)) ...@@ -541,7 +541,7 @@ int inia100_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
Output : None. Output : None.
Return : pSRB - Pointer to SCSI request block. Return : pSRB - Pointer to SCSI request block.
*****************************************************************************/ *****************************************************************************/
int inia100_abort(Scsi_Cmnd * SCpnt) static int inia100_abort(Scsi_Cmnd * SCpnt)
{ {
ORC_HCS *hcsp; ORC_HCS *hcsp;
...@@ -557,15 +557,25 @@ int inia100_abort(Scsi_Cmnd * SCpnt) ...@@ -557,15 +557,25 @@ int inia100_abort(Scsi_Cmnd * SCpnt)
Output : None. Output : None.
Return : pSRB - Pointer to SCSI request block. Return : pSRB - Pointer to SCSI request block.
*****************************************************************************/ *****************************************************************************/
int inia100_reset(Scsi_Cmnd * SCpnt, unsigned int reset_flags) static int inia100_bus_reset(Scsi_Cmnd * SCpnt)
{ /* I need Host Control Block Information */ { /* I need Host Control Block Information */
ORC_HCS *pHCB; ORC_HCS *pHCB;
pHCB = (ORC_HCS *) SCpnt->host->hostdata; pHCB = (ORC_HCS *) SCpnt->host->hostdata;
if (reset_flags & (SCSI_RESET_SUGGEST_BUS_RESET | SCSI_RESET_SUGGEST_HOST_RESET))
return orc_reset_scsi_bus(pHCB); return orc_reset_scsi_bus(pHCB);
else }
return orc_device_reset(pHCB, SCpnt, SCpnt->target, reset_flags);
/*****************************************************************************
Function name : inia100_device_reset
Description : Reset the device
Input : pHCB - Pointer to host adapter structure
Output : None.
Return : pSRB - Pointer to SCSI request block.
*****************************************************************************/
static int inia100_device_reset(Scsi_Cmnd * SCpnt)
{ /* I need Host Control Block Information */
ORC_HCS *pHCB;
pHCB = (ORC_HCS *) SCpnt->host->hostdata;
return orc_device_reset(pHCB, SCpnt, SCpnt->target);
} }
...@@ -648,41 +658,6 @@ void inia100SCBPost(BYTE * pHcb, BYTE * pScb) ...@@ -648,41 +658,6 @@ void inia100SCBPost(BYTE * pHcb, BYTE * pScb)
return; return;
} }
/*****************************************************************************
Function name : inia100_biosparam
Description : Return the "logical geometry"
Input : pHCB - Pointer to host adapter structure
Output : None.
Return : pSRB - Pointer to SCSI request block.
*****************************************************************************/
int inia100_biosparam(struct scsi_device *sdev, struct block_device *bdev,
sector_t capacity, int *info_array)
{
ORC_HCS *pHcb; /* Point to Host adapter control block */
ORC_TCS *pTcb;
pHcb = (ORC_HCS *) sdev->host->hostdata;
pTcb = &pHcb->HCS_Tcs[sdev->id];
if (pTcb->TCS_DrvHead) {
info_array[0] = pTcb->TCS_DrvHead;
info_array[1] = pTcb->TCS_DrvSector;
info_array[2] = (unsigned long)capacity / pTcb->TCS_DrvHead / pTcb->TCS_DrvSector;
} else {
if (pTcb->TCS_DrvFlags & TCF_DRV_255_63) {
info_array[0] = 255;
info_array[1] = 63;
info_array[2] = (unsigned long)capacity / 255 / 63;
} else {
info_array[0] = 64;
info_array[1] = 32;
info_array[2] = capacity >> 11;
}
}
return 0;
}
/* /*
* Interrupt handler (main routine of the driver) * Interrupt handler (main routine of the driver)
*/ */
...@@ -710,7 +685,7 @@ static void inia100_panic(char *msg) ...@@ -710,7 +685,7 @@ static void inia100_panic(char *msg)
/* /*
* Release ressources * Release ressources
*/ */
int inia100_release(struct Scsi_Host *hreg) static int inia100_release(struct Scsi_Host *hreg)
{ {
ORC_HCS *pHCB = (ORC_HCS *)hreg->hostdata; ORC_HCS *pHCB = (ORC_HCS *)hreg->hostdata;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment