diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/scsi/ini9100u.c linux-2.5/drivers/scsi/ini9100u.c --- bk-linus/drivers/scsi/ini9100u.c 2002-11-21 02:18:04.000000000 +0000 +++ linux-2.5/drivers/scsi/ini9100u.c 2002-11-21 18:00:42.000000000 +0000 @@ -108,7 +108,7 @@ #define CVT_LINUX_VERSION(V,P,S) (V * 65536 + P * 256 + S) -#error Please convert me to Documentation/DMA-mapping.txt +/* #error Please convert me to Documentation/DMA-mapping.txt */ #ifndef LINUX_VERSION_CODE #include @@ -490,7 +490,9 @@ static void i91uBuildSCB(HCS * pHCB, SCB if (SCpnt->use_sg) { pSrbSG = (struct scatterlist *) SCpnt->request_buffer; if (SCpnt->use_sg == 1) { /* If only one entry in the list *//* treat it as regular I/O */ - pSCB->SCB_BufPtr = (U32) VIRT_TO_BUS(pSrbSG->address); + pSCB->SCB_BufPtr = (U32) VIRT_TO_BUS( + (unsigned char *)page_address(pSrbSG->page) + + pSrbSG->offset); TotalLen = pSrbSG->length; pSCB->SCB_SGLen = 0; } else { /* Assign SG physical address */ @@ -499,7 +501,9 @@ static void i91uBuildSCB(HCS * pHCB, SCB for (i = 0, TotalLen = 0, pSG = &pSCB->SCB_SGList[0]; /* 1.01g */ i < SCpnt->use_sg; i++, pSG++, pSrbSG++) { - pSG->SG_Ptr = (U32) VIRT_TO_BUS(pSrbSG->address); + pSG->SG_Ptr = (U32) VIRT_TO_BUS( + (unsigned char *)page_address(pSrbSG->page) + + pSrbSG->offset); TotalLen += pSG->SG_Len = pSrbSG->length; } pSCB->SCB_SGLen = i; @@ -551,6 +555,7 @@ int i91u_command(Scsi_Cmnd * SCpnt) return -1; } +#if 0 /* * Abort a queued command * (commands that are on the bus can't be aborted easily) @@ -578,6 +583,16 @@ int i91u_reset(Scsi_Cmnd * SCpnt, unsign else return tul_device_reset(pHCB, (ULONG) SCpnt, SCpnt->target, reset_flags); } +#endif + +static int i91u_eh_bus_reset(Scsi_Cmnd * SCpnt) +{ + HCS *pHCB; + + pHCB = (HCS *) SCpnt->host->base; + tul_reset_scsi_bus(pHCB); + return SUCCESS; +} /* * Return the "logical geometry" diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/scsi/ini9100u.h linux-2.5/drivers/scsi/ini9100u.h --- bk-linus/drivers/scsi/ini9100u.h 2002-11-21 02:18:04.000000000 +0000 +++ linux-2.5/drivers/scsi/ini9100u.h 2002-11-21 18:00:42.000000000 +0000 @@ -101,10 +101,8 @@ extern int i91u_biosparam(struct scsi_de eh_strategy_handler: NULL, \ eh_abort_handler: NULL, \ eh_device_reset_handler: NULL, \ - eh_bus_reset_handler: NULL, \ + eh_bus_reset_handler: i91u_eh_bus_reset, \ eh_host_reset_handler: NULL, \ - abort: i91u_abort, \ - reset: i91u_reset, \ slave_attach: NULL, \ bios_param: i91u_biosparam, \ can_queue: 1, \