diff options
-rw-r--r-- | Documentation/DMA-mapping.txt | 12 | ||||
-rw-r--r-- | Documentation/scsi/scsi_mid_low_api.txt | 44 | ||||
-rw-r--r-- | drivers/scsi/aic7xxx/aic79xx_osm.c | 18 | ||||
-rw-r--r-- | drivers/scsi/aic7xxx/aic7xxx_osm.c | 20 | ||||
-rw-r--r-- | drivers/scsi/aic7xxx/cam.h | 6 | ||||
-rw-r--r-- | drivers/scsi/aic7xxx_old.c | 8 | ||||
-rw-r--r-- | drivers/scsi/arm/fas216.c | 2 | ||||
-rw-r--r-- | drivers/scsi/cpqfcTSinit.c | 6 | ||||
-rw-r--r-- | drivers/scsi/cpqfcTSworker.c | 16 | ||||
-rw-r--r-- | drivers/scsi/ips.c | 10 | ||||
-rw-r--r-- | drivers/scsi/libata-scsi.c | 12 | ||||
-rw-r--r-- | drivers/scsi/pci2000.c | 16 | ||||
-rw-r--r-- | drivers/scsi/qlogicfc.c | 18 | ||||
-rw-r--r-- | drivers/scsi/qlogicisp.c | 8 | ||||
-rw-r--r-- | drivers/scsi/scsi.h | 15 | ||||
-rw-r--r-- | drivers/scsi/sg.c | 8 |
16 files changed, 77 insertions, 142 deletions
diff --git a/Documentation/DMA-mapping.txt b/Documentation/DMA-mapping.txt index f4ac37f157ea..684557474c15 100644 --- a/Documentation/DMA-mapping.txt +++ b/Documentation/DMA-mapping.txt | |||
@@ -443,15 +443,9 @@ Only streaming mappings specify a direction, consistent mappings | |||
443 | implicitly have a direction attribute setting of | 443 | implicitly have a direction attribute setting of |
444 | PCI_DMA_BIDIRECTIONAL. | 444 | PCI_DMA_BIDIRECTIONAL. |
445 | 445 | ||
446 | The SCSI subsystem provides mechanisms for you to easily obtain | 446 | The SCSI subsystem tells you the direction to use in the |
447 | the direction to use, in the SCSI command: | 447 | 'sc_data_direction' member of the SCSI command your driver is |
448 | 448 | working on. | |
449 | scsi_to_pci_dma_dir(SCSI_DIRECTION) | ||
450 | |||
451 | Where SCSI_DIRECTION is obtained from the 'sc_data_direction' | ||
452 | member of the SCSI command your driver is working on. The | ||
453 | mentioned interface above returns a value suitable for passing | ||
454 | into the streaming DMA mapping interfaces below. | ||
455 | 449 | ||
456 | For Networking drivers, it's a rather simple affair. For transmit | 450 | For Networking drivers, it's a rather simple affair. For transmit |
457 | packets, map/unmap them with the PCI_DMA_TODEVICE direction | 451 | packets, map/unmap them with the PCI_DMA_TODEVICE direction |
diff --git a/Documentation/scsi/scsi_mid_low_api.txt b/Documentation/scsi/scsi_mid_low_api.txt index 1f24129a3099..e41703d7d24d 100644 --- a/Documentation/scsi/scsi_mid_low_api.txt +++ b/Documentation/scsi/scsi_mid_low_api.txt | |||
@@ -389,8 +389,6 @@ Summary: | |||
389 | scsi_remove_host - detach and remove all SCSI devices owned by host | 389 | scsi_remove_host - detach and remove all SCSI devices owned by host |
390 | scsi_report_bus_reset - report scsi _bus_ reset observed | 390 | scsi_report_bus_reset - report scsi _bus_ reset observed |
391 | scsi_set_device - place device reference in host structure | 391 | scsi_set_device - place device reference in host structure |
392 | scsi_to_pci_dma_dir - convert SCSI subsystem direction flag to PCI | ||
393 | scsi_to_sbus_dma_dir - convert SCSI subsystem direction flag to SBUS | ||
394 | scsi_track_queue_full - track successive QUEUE_FULL events | 392 | scsi_track_queue_full - track successive QUEUE_FULL events |
395 | scsi_unblock_requests - allow further commands to be queued to given host | 393 | scsi_unblock_requests - allow further commands to be queued to given host |
396 | scsi_unregister - [calls scsi_host_put()] | 394 | scsi_unregister - [calls scsi_host_put()] |
@@ -757,48 +755,6 @@ void scsi_set_device(struct Scsi_Host * shost, struct device * dev) | |||
757 | 755 | ||
758 | 756 | ||
759 | /** | 757 | /** |
760 | * scsi_to_pci_dma_dir - convert SCSI subsystem direction flag to PCI | ||
761 | * @scsi_data_direction: SCSI subsystem direction flag | ||
762 | * | ||
763 | * Returns DMA_TO_DEVICE given SCSI_DATA_WRITE, | ||
764 | * DMA_FROM_DEVICE given SCSI_DATA_READ | ||
765 | * DMA_BIDIRECTIONAL given SCSI_DATA_UNKNOWN | ||
766 | * else returns DMA_NONE | ||
767 | * | ||
768 | * Might block: no | ||
769 | * | ||
770 | * Notes: The SCSI subsystem now uses the same values for these | ||
771 | * constants as the PCI subsystem so this function is a nop. | ||
772 | * The recommendation is not to use this conversion function anymore | ||
773 | * (in the 2.6 kernel series) as it is not needed. | ||
774 | * | ||
775 | * Defined in: drivers/scsi/scsi.h . | ||
776 | **/ | ||
777 | int scsi_to_pci_dma_dir(unsigned char scsi_data_direction) | ||
778 | |||
779 | |||
780 | /** | ||
781 | * scsi_to_sbus_dma_dir - convert SCSI subsystem direction flag to SBUS | ||
782 | * @scsi_data_direction: SCSI subsystem direction flag | ||
783 | * | ||
784 | * Returns DMA_TO_DEVICE given SCSI_DATA_WRITE, | ||
785 | * FROM_DEVICE given SCSI_DATA_READ | ||
786 | * DMA_BIDIRECTIONAL given SCSI_DATA_UNKNOWN | ||
787 | * else returns DMA_NONE | ||
788 | * | ||
789 | * Notes: The SCSI subsystem now uses the same values for these | ||
790 | * constants as the SBUS subsystem so this function is a nop. | ||
791 | * The recommendation is not to use this conversion function anymore | ||
792 | * (in the 2.6 kernel series) as it is not needed. | ||
793 | * | ||
794 | * Might block: no | ||
795 | * | ||
796 | * Defined in: drivers/scsi/scsi.h . | ||
797 | **/ | ||
798 | int scsi_to_sbus_dma_dir(unsigned char scsi_data_direction) | ||
799 | |||
800 | |||
801 | /** | ||
802 | * scsi_track_queue_full - track successive QUEUE_FULL events on given | 758 | * scsi_track_queue_full - track successive QUEUE_FULL events on given |
803 | * device to determine if and when there is a need | 759 | * device to determine if and when there is a need |
804 | * to adjust the queue depth on the device. | 760 | * to adjust the queue depth on the device. |
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c index fb2877c303f0..550c9921691a 100644 --- a/drivers/scsi/aic7xxx/aic79xx_osm.c +++ b/drivers/scsi/aic7xxx/aic79xx_osm.c | |||
@@ -687,7 +687,7 @@ ahd_linux_unmap_scb(struct ahd_softc *ahd, struct scb *scb) | |||
687 | int direction; | 687 | int direction; |
688 | 688 | ||
689 | cmd = scb->io_ctx; | 689 | cmd = scb->io_ctx; |
690 | direction = scsi_to_pci_dma_dir(cmd->sc_data_direction); | 690 | direction = cmd->sc_data_direction; |
691 | ahd_sync_sglist(ahd, scb, BUS_DMASYNC_POSTWRITE); | 691 | ahd_sync_sglist(ahd, scb, BUS_DMASYNC_POSTWRITE); |
692 | if (cmd->use_sg != 0) { | 692 | if (cmd->use_sg != 0) { |
693 | struct scatterlist *sg; | 693 | struct scatterlist *sg; |
@@ -3338,7 +3338,7 @@ ahd_linux_dv_inq(struct ahd_softc *ahd, struct scsi_cmnd *cmd, | |||
3338 | } | 3338 | } |
3339 | 3339 | ||
3340 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); | 3340 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); |
3341 | cmd->sc_data_direction = SCSI_DATA_READ; | 3341 | cmd->sc_data_direction = DMA_FROM_DEVICE; |
3342 | cmd->cmd_len = 6; | 3342 | cmd->cmd_len = 6; |
3343 | cmd->cmnd[0] = INQUIRY; | 3343 | cmd->cmnd[0] = INQUIRY; |
3344 | cmd->cmnd[4] = request_length; | 3344 | cmd->cmnd[4] = request_length; |
@@ -3363,7 +3363,7 @@ ahd_linux_dv_tur(struct ahd_softc *ahd, struct scsi_cmnd *cmd, | |||
3363 | #endif | 3363 | #endif |
3364 | /* Do a TUR to clear out any non-fatal transitional state */ | 3364 | /* Do a TUR to clear out any non-fatal transitional state */ |
3365 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); | 3365 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); |
3366 | cmd->sc_data_direction = SCSI_DATA_NONE; | 3366 | cmd->sc_data_direction = DMA_NONE; |
3367 | cmd->cmd_len = 6; | 3367 | cmd->cmd_len = 6; |
3368 | cmd->cmnd[0] = TEST_UNIT_READY; | 3368 | cmd->cmnd[0] = TEST_UNIT_READY; |
3369 | } | 3369 | } |
@@ -3385,7 +3385,7 @@ ahd_linux_dv_rebd(struct ahd_softc *ahd, struct scsi_cmnd *cmd, | |||
3385 | free(targ->dv_buffer, M_DEVBUF); | 3385 | free(targ->dv_buffer, M_DEVBUF); |
3386 | targ->dv_buffer = malloc(AHD_REBD_LEN, M_DEVBUF, M_WAITOK); | 3386 | targ->dv_buffer = malloc(AHD_REBD_LEN, M_DEVBUF, M_WAITOK); |
3387 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); | 3387 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); |
3388 | cmd->sc_data_direction = SCSI_DATA_READ; | 3388 | cmd->sc_data_direction = DMA_FROM_DEVICE; |
3389 | cmd->cmd_len = 10; | 3389 | cmd->cmd_len = 10; |
3390 | cmd->cmnd[0] = READ_BUFFER; | 3390 | cmd->cmnd[0] = READ_BUFFER; |
3391 | cmd->cmnd[1] = 0x0b; | 3391 | cmd->cmnd[1] = 0x0b; |
@@ -3407,7 +3407,7 @@ ahd_linux_dv_web(struct ahd_softc *ahd, struct scsi_cmnd *cmd, | |||
3407 | } | 3407 | } |
3408 | #endif | 3408 | #endif |
3409 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); | 3409 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); |
3410 | cmd->sc_data_direction = SCSI_DATA_WRITE; | 3410 | cmd->sc_data_direction = DMA_TO_DEVICE; |
3411 | cmd->cmd_len = 10; | 3411 | cmd->cmd_len = 10; |
3412 | cmd->cmnd[0] = WRITE_BUFFER; | 3412 | cmd->cmnd[0] = WRITE_BUFFER; |
3413 | cmd->cmnd[1] = 0x0a; | 3413 | cmd->cmnd[1] = 0x0a; |
@@ -3429,7 +3429,7 @@ ahd_linux_dv_reb(struct ahd_softc *ahd, struct scsi_cmnd *cmd, | |||
3429 | } | 3429 | } |
3430 | #endif | 3430 | #endif |
3431 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); | 3431 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); |
3432 | cmd->sc_data_direction = SCSI_DATA_READ; | 3432 | cmd->sc_data_direction = DMA_FROM_DEVICE; |
3433 | cmd->cmd_len = 10; | 3433 | cmd->cmd_len = 10; |
3434 | cmd->cmnd[0] = READ_BUFFER; | 3434 | cmd->cmnd[0] = READ_BUFFER; |
3435 | cmd->cmnd[1] = 0x0a; | 3435 | cmd->cmnd[1] = 0x0a; |
@@ -3455,7 +3455,7 @@ ahd_linux_dv_su(struct ahd_softc *ahd, struct scsi_cmnd *cmd, | |||
3455 | } | 3455 | } |
3456 | #endif | 3456 | #endif |
3457 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); | 3457 | ahd_linux_dv_fill_cmd(ahd, cmd, devinfo); |
3458 | cmd->sc_data_direction = SCSI_DATA_NONE; | 3458 | cmd->sc_data_direction = DMA_NONE; |
3459 | cmd->cmd_len = 6; | 3459 | cmd->cmd_len = 6; |
3460 | cmd->cmnd[0] = START_STOP_UNIT; | 3460 | cmd->cmnd[0] = START_STOP_UNIT; |
3461 | cmd->cmnd[4] = le | SSS_START; | 3461 | cmd->cmnd[4] = le | SSS_START; |
@@ -4018,7 +4018,7 @@ ahd_linux_run_device_queue(struct ahd_softc *ahd, struct ahd_linux_device *dev) | |||
4018 | int dir; | 4018 | int dir; |
4019 | 4019 | ||
4020 | cur_seg = (struct scatterlist *)cmd->request_buffer; | 4020 | cur_seg = (struct scatterlist *)cmd->request_buffer; |
4021 | dir = scsi_to_pci_dma_dir(cmd->sc_data_direction); | 4021 | dir = cmd->sc_data_direction; |
4022 | nseg = pci_map_sg(ahd->dev_softc, cur_seg, | 4022 | nseg = pci_map_sg(ahd->dev_softc, cur_seg, |
4023 | cmd->use_sg, dir); | 4023 | cmd->use_sg, dir); |
4024 | scb->platform_data->xfer_len = 0; | 4024 | scb->platform_data->xfer_len = 0; |
@@ -4038,7 +4038,7 @@ ahd_linux_run_device_queue(struct ahd_softc *ahd, struct ahd_linux_device *dev) | |||
4038 | int dir; | 4038 | int dir; |
4039 | 4039 | ||
4040 | sg = scb->sg_list; | 4040 | sg = scb->sg_list; |
4041 | dir = scsi_to_pci_dma_dir(cmd->sc_data_direction); | 4041 | dir = cmd->sc_data_direction; |
4042 | addr = pci_map_single(ahd->dev_softc, | 4042 | addr = pci_map_single(ahd->dev_softc, |
4043 | cmd->request_buffer, | 4043 | cmd->request_buffer, |
4044 | cmd->request_bufflen, dir); | 4044 | cmd->request_bufflen, dir); |
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c index 031c6aaa5ca5..35d6de5a4c9d 100644 --- a/drivers/scsi/aic7xxx/aic7xxx_osm.c +++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c | |||
@@ -693,12 +693,12 @@ ahc_linux_unmap_scb(struct ahc_softc *ahc, struct scb *scb) | |||
693 | 693 | ||
694 | sg = (struct scatterlist *)cmd->request_buffer; | 694 | sg = (struct scatterlist *)cmd->request_buffer; |
695 | pci_unmap_sg(ahc->dev_softc, sg, cmd->use_sg, | 695 | pci_unmap_sg(ahc->dev_softc, sg, cmd->use_sg, |
696 | scsi_to_pci_dma_dir(cmd->sc_data_direction)); | 696 | cmd->sc_data_direction); |
697 | } else if (cmd->request_bufflen != 0) { | 697 | } else if (cmd->request_bufflen != 0) { |
698 | pci_unmap_single(ahc->dev_softc, | 698 | pci_unmap_single(ahc->dev_softc, |
699 | scb->platform_data->buf_busaddr, | 699 | scb->platform_data->buf_busaddr, |
700 | cmd->request_bufflen, | 700 | cmd->request_bufflen, |
701 | scsi_to_pci_dma_dir(cmd->sc_data_direction)); | 701 | cmd->sc_data_direction); |
702 | } | 702 | } |
703 | } | 703 | } |
704 | 704 | ||
@@ -3007,7 +3007,7 @@ ahc_linux_dv_inq(struct ahc_softc *ahc, struct scsi_cmnd *cmd, | |||
3007 | } | 3007 | } |
3008 | 3008 | ||
3009 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); | 3009 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); |
3010 | cmd->sc_data_direction = SCSI_DATA_READ; | 3010 | cmd->sc_data_direction = DMA_FROM_DEVICE; |
3011 | cmd->cmd_len = 6; | 3011 | cmd->cmd_len = 6; |
3012 | cmd->cmnd[0] = INQUIRY; | 3012 | cmd->cmnd[0] = INQUIRY; |
3013 | cmd->cmnd[4] = request_length; | 3013 | cmd->cmnd[4] = request_length; |
@@ -3032,7 +3032,7 @@ ahc_linux_dv_tur(struct ahc_softc *ahc, struct scsi_cmnd *cmd, | |||
3032 | #endif | 3032 | #endif |
3033 | /* Do a TUR to clear out any non-fatal transitional state */ | 3033 | /* Do a TUR to clear out any non-fatal transitional state */ |
3034 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); | 3034 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); |
3035 | cmd->sc_data_direction = SCSI_DATA_NONE; | 3035 | cmd->sc_data_direction = DMA_NONE; |
3036 | cmd->cmd_len = 6; | 3036 | cmd->cmd_len = 6; |
3037 | cmd->cmnd[0] = TEST_UNIT_READY; | 3037 | cmd->cmnd[0] = TEST_UNIT_READY; |
3038 | } | 3038 | } |
@@ -3054,7 +3054,7 @@ ahc_linux_dv_rebd(struct ahc_softc *ahc, struct scsi_cmnd *cmd, | |||
3054 | free(targ->dv_buffer, M_DEVBUF); | 3054 | free(targ->dv_buffer, M_DEVBUF); |
3055 | targ->dv_buffer = malloc(AHC_REBD_LEN, M_DEVBUF, M_WAITOK); | 3055 | targ->dv_buffer = malloc(AHC_REBD_LEN, M_DEVBUF, M_WAITOK); |
3056 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); | 3056 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); |
3057 | cmd->sc_data_direction = SCSI_DATA_READ; | 3057 | cmd->sc_data_direction = DMA_FROM_DEVICE; |
3058 | cmd->cmd_len = 10; | 3058 | cmd->cmd_len = 10; |
3059 | cmd->cmnd[0] = READ_BUFFER; | 3059 | cmd->cmnd[0] = READ_BUFFER; |
3060 | cmd->cmnd[1] = 0x0b; | 3060 | cmd->cmnd[1] = 0x0b; |
@@ -3076,7 +3076,7 @@ ahc_linux_dv_web(struct ahc_softc *ahc, struct scsi_cmnd *cmd, | |||
3076 | } | 3076 | } |
3077 | #endif | 3077 | #endif |
3078 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); | 3078 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); |
3079 | cmd->sc_data_direction = SCSI_DATA_WRITE; | 3079 | cmd->sc_data_direction = DMA_TO_DEVICE; |
3080 | cmd->cmd_len = 10; | 3080 | cmd->cmd_len = 10; |
3081 | cmd->cmnd[0] = WRITE_BUFFER; | 3081 | cmd->cmnd[0] = WRITE_BUFFER; |
3082 | cmd->cmnd[1] = 0x0a; | 3082 | cmd->cmnd[1] = 0x0a; |
@@ -3098,7 +3098,7 @@ ahc_linux_dv_reb(struct ahc_softc *ahc, struct scsi_cmnd *cmd, | |||
3098 | } | 3098 | } |
3099 | #endif | 3099 | #endif |
3100 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); | 3100 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); |
3101 | cmd->sc_data_direction = SCSI_DATA_READ; | 3101 | cmd->sc_data_direction = DMA_FROM_DEVICE; |
3102 | cmd->cmd_len = 10; | 3102 | cmd->cmd_len = 10; |
3103 | cmd->cmnd[0] = READ_BUFFER; | 3103 | cmd->cmnd[0] = READ_BUFFER; |
3104 | cmd->cmnd[1] = 0x0a; | 3104 | cmd->cmnd[1] = 0x0a; |
@@ -3124,7 +3124,7 @@ ahc_linux_dv_su(struct ahc_softc *ahc, struct scsi_cmnd *cmd, | |||
3124 | } | 3124 | } |
3125 | #endif | 3125 | #endif |
3126 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); | 3126 | ahc_linux_dv_fill_cmd(ahc, cmd, devinfo); |
3127 | cmd->sc_data_direction = SCSI_DATA_NONE; | 3127 | cmd->sc_data_direction = DMA_NONE; |
3128 | cmd->cmd_len = 6; | 3128 | cmd->cmd_len = 6; |
3129 | cmd->cmnd[0] = START_STOP_UNIT; | 3129 | cmd->cmnd[0] = START_STOP_UNIT; |
3130 | cmd->cmnd[4] = le | SSS_START; | 3130 | cmd->cmnd[4] = le | SSS_START; |
@@ -3659,7 +3659,7 @@ ahc_linux_run_device_queue(struct ahc_softc *ahc, struct ahc_linux_device *dev) | |||
3659 | 3659 | ||
3660 | cur_seg = (struct scatterlist *)cmd->request_buffer; | 3660 | cur_seg = (struct scatterlist *)cmd->request_buffer; |
3661 | nseg = pci_map_sg(ahc->dev_softc, cur_seg, cmd->use_sg, | 3661 | nseg = pci_map_sg(ahc->dev_softc, cur_seg, cmd->use_sg, |
3662 | scsi_to_pci_dma_dir(cmd->sc_data_direction)); | 3662 | cmd->sc_data_direction); |
3663 | end_seg = cur_seg + nseg; | 3663 | end_seg = cur_seg + nseg; |
3664 | /* Copy the segments into the SG list. */ | 3664 | /* Copy the segments into the SG list. */ |
3665 | sg = scb->sg_list; | 3665 | sg = scb->sg_list; |
@@ -3703,7 +3703,7 @@ ahc_linux_run_device_queue(struct ahc_softc *ahc, struct ahc_linux_device *dev) | |||
3703 | addr = pci_map_single(ahc->dev_softc, | 3703 | addr = pci_map_single(ahc->dev_softc, |
3704 | cmd->request_buffer, | 3704 | cmd->request_buffer, |
3705 | cmd->request_bufflen, | 3705 | cmd->request_bufflen, |
3706 | scsi_to_pci_dma_dir(cmd->sc_data_direction)); | 3706 | cmd->sc_data_direction); |
3707 | scb->platform_data->buf_busaddr = addr; | 3707 | scb->platform_data->buf_busaddr = addr; |
3708 | scb->sg_count = ahc_linux_map_seg(ahc, scb, | 3708 | scb->sg_count = ahc_linux_map_seg(ahc, scb, |
3709 | sg, addr, | 3709 | sg, addr, |
diff --git a/drivers/scsi/aic7xxx/cam.h b/drivers/scsi/aic7xxx/cam.h index d40ba0760c76..26f17e3fc45c 100644 --- a/drivers/scsi/aic7xxx/cam.h +++ b/drivers/scsi/aic7xxx/cam.h | |||
@@ -103,9 +103,9 @@ typedef enum { | |||
103 | } ac_code; | 103 | } ac_code; |
104 | 104 | ||
105 | typedef enum { | 105 | typedef enum { |
106 | CAM_DIR_IN = SCSI_DATA_READ, | 106 | CAM_DIR_IN = DMA_FROM_DEVICE, |
107 | CAM_DIR_OUT = SCSI_DATA_WRITE, | 107 | CAM_DIR_OUT = DMA_TO_DEVICE, |
108 | CAM_DIR_NONE = SCSI_DATA_NONE | 108 | CAM_DIR_NONE = DMA_NONE, |
109 | } ccb_flags; | 109 | } ccb_flags; |
110 | 110 | ||
111 | #endif /* _AIC7XXX_CAM_H */ | 111 | #endif /* _AIC7XXX_CAM_H */ |
diff --git a/drivers/scsi/aic7xxx_old.c b/drivers/scsi/aic7xxx_old.c index a6e7bb0d53f4..9e9d0c40187e 100644 --- a/drivers/scsi/aic7xxx_old.c +++ b/drivers/scsi/aic7xxx_old.c | |||
@@ -2700,12 +2700,12 @@ aic7xxx_done(struct aic7xxx_host *p, struct aic7xxx_scb *scb) | |||
2700 | struct scatterlist *sg; | 2700 | struct scatterlist *sg; |
2701 | 2701 | ||
2702 | sg = (struct scatterlist *)cmd->request_buffer; | 2702 | sg = (struct scatterlist *)cmd->request_buffer; |
2703 | pci_unmap_sg(p->pdev, sg, cmd->use_sg, scsi_to_pci_dma_dir(cmd->sc_data_direction)); | 2703 | pci_unmap_sg(p->pdev, sg, cmd->use_sg, cmd->sc_data_direction); |
2704 | } | 2704 | } |
2705 | else if (cmd->request_bufflen) | 2705 | else if (cmd->request_bufflen) |
2706 | pci_unmap_single(p->pdev, aic7xxx_mapping(cmd), | 2706 | pci_unmap_single(p->pdev, aic7xxx_mapping(cmd), |
2707 | cmd->request_bufflen, | 2707 | cmd->request_bufflen, |
2708 | scsi_to_pci_dma_dir(cmd->sc_data_direction)); | 2708 | cmd->sc_data_direction); |
2709 | if (scb->flags & SCB_SENSE) | 2709 | if (scb->flags & SCB_SENSE) |
2710 | { | 2710 | { |
2711 | pci_unmap_single(p->pdev, | 2711 | pci_unmap_single(p->pdev, |
@@ -10228,7 +10228,7 @@ aic7xxx_buildscb(struct aic7xxx_host *p, Scsi_Cmnd *cmd, | |||
10228 | 10228 | ||
10229 | sg = (struct scatterlist *)cmd->request_buffer; | 10229 | sg = (struct scatterlist *)cmd->request_buffer; |
10230 | scb->sg_length = 0; | 10230 | scb->sg_length = 0; |
10231 | use_sg = pci_map_sg(p->pdev, sg, cmd->use_sg, scsi_to_pci_dma_dir(cmd->sc_data_direction)); | 10231 | use_sg = pci_map_sg(p->pdev, sg, cmd->use_sg, cmd->sc_data_direction); |
10232 | /* | 10232 | /* |
10233 | * Copy the segments into the SG array. NOTE!!! - We used to | 10233 | * Copy the segments into the SG array. NOTE!!! - We used to |
10234 | * have the first entry both in the data_pointer area and the first | 10234 | * have the first entry both in the data_pointer area and the first |
@@ -10256,7 +10256,7 @@ aic7xxx_buildscb(struct aic7xxx_host *p, Scsi_Cmnd *cmd, | |||
10256 | { | 10256 | { |
10257 | unsigned int address = pci_map_single(p->pdev, cmd->request_buffer, | 10257 | unsigned int address = pci_map_single(p->pdev, cmd->request_buffer, |
10258 | cmd->request_bufflen, | 10258 | cmd->request_bufflen, |
10259 | scsi_to_pci_dma_dir(cmd->sc_data_direction)); | 10259 | cmd->sc_data_direction); |
10260 | aic7xxx_mapping(cmd) = address; | 10260 | aic7xxx_mapping(cmd) = address; |
10261 | scb->sg_list[0].address = cpu_to_le32(address); | 10261 | scb->sg_list[0].address = cpu_to_le32(address); |
10262 | scb->sg_list[0].length = cpu_to_le32(cmd->request_bufflen); | 10262 | scb->sg_list[0].length = cpu_to_le32(cmd->request_bufflen); |
diff --git a/drivers/scsi/arm/fas216.c b/drivers/scsi/arm/fas216.c index 0a172c1e9f7e..3838f88e1fe0 100644 --- a/drivers/scsi/arm/fas216.c +++ b/drivers/scsi/arm/fas216.c | |||
@@ -2117,7 +2117,7 @@ request_sense: | |||
2117 | SCpnt->SCp.Message = 0; | 2117 | SCpnt->SCp.Message = 0; |
2118 | SCpnt->SCp.Status = 0; | 2118 | SCpnt->SCp.Status = 0; |
2119 | SCpnt->request_bufflen = sizeof(SCpnt->sense_buffer); | 2119 | SCpnt->request_bufflen = sizeof(SCpnt->sense_buffer); |
2120 | SCpnt->sc_data_direction = SCSI_DATA_READ; | 2120 | SCpnt->sc_data_direction = DMA_FROM_DEVICE; |
2121 | SCpnt->use_sg = 0; | 2121 | SCpnt->use_sg = 0; |
2122 | SCpnt->tag = 0; | 2122 | SCpnt->tag = 0; |
2123 | SCpnt->host_scribble = (void *)fas216_rq_sns_done; | 2123 | SCpnt->host_scribble = (void *)fas216_rq_sns_done; |
diff --git a/drivers/scsi/cpqfcTSinit.c b/drivers/scsi/cpqfcTSinit.c index 2eeb493f5a2b..5674ada6d5c2 100644 --- a/drivers/scsi/cpqfcTSinit.c +++ b/drivers/scsi/cpqfcTSinit.c | |||
@@ -642,12 +642,12 @@ int cpqfcTS_ioctl( struct scsi_device *ScsiDev, int Cmnd, void *arg) | |||
642 | return( -EFAULT); | 642 | return( -EFAULT); |
643 | } | 643 | } |
644 | } | 644 | } |
645 | ScsiPassThruReq->sr_data_direction = SCSI_DATA_WRITE; | 645 | ScsiPassThruReq->sr_data_direction = DMA_TO_DEVICE; |
646 | } else if (vendor_cmd->rw_flag == VENDOR_READ_OPCODE) { | 646 | } else if (vendor_cmd->rw_flag == VENDOR_READ_OPCODE) { |
647 | ScsiPassThruReq->sr_data_direction = SCSI_DATA_READ; | 647 | ScsiPassThruReq->sr_data_direction = DMA_FROM_DEVICE; |
648 | } else | 648 | } else |
649 | // maybe this means a bug in the user app | 649 | // maybe this means a bug in the user app |
650 | ScsiPassThruReq->sr_data_direction = SCSI_DATA_NONE; | 650 | ScsiPassThruReq->sr_data_direction = DMA_BIDIRECTIONAL; |
651 | 651 | ||
652 | ScsiPassThruReq->sr_cmd_len = 0; // set correctly by scsi_do_req() | 652 | ScsiPassThruReq->sr_cmd_len = 0; // set correctly by scsi_do_req() |
653 | ScsiPassThruReq->sr_sense_buffer[0] = 0; | 653 | ScsiPassThruReq->sr_sense_buffer[0] = 0; |
diff --git a/drivers/scsi/cpqfcTSworker.c b/drivers/scsi/cpqfcTSworker.c index a5fd7427e9da..d822ddcc52b2 100644 --- a/drivers/scsi/cpqfcTSworker.c +++ b/drivers/scsi/cpqfcTSworker.c | |||
@@ -5129,7 +5129,7 @@ cpqfc_undo_SEST_mappings(struct pci_dev *pcidev, | |||
5129 | for (i=*sgPages_head; i != NULL ;i = next) | 5129 | for (i=*sgPages_head; i != NULL ;i = next) |
5130 | { | 5130 | { |
5131 | pci_unmap_single(pcidev, i->busaddr, i->maplen, | 5131 | pci_unmap_single(pcidev, i->busaddr, i->maplen, |
5132 | scsi_to_pci_dma_dir(PCI_DMA_TODEVICE)); | 5132 | PCI_DMA_TODEVICE); |
5133 | i->busaddr = (dma_addr_t) NULL; | 5133 | i->busaddr = (dma_addr_t) NULL; |
5134 | i->maplen = 0L; | 5134 | i->maplen = 0L; |
5135 | next = i->next; | 5135 | next = i->next; |
@@ -5195,7 +5195,7 @@ static ULONG build_SEST_sgList( | |||
5195 | contigaddr = ulBuff = pci_map_single(pcidev, | 5195 | contigaddr = ulBuff = pci_map_single(pcidev, |
5196 | Cmnd->request_buffer, | 5196 | Cmnd->request_buffer, |
5197 | Cmnd->request_bufflen, | 5197 | Cmnd->request_bufflen, |
5198 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 5198 | Cmnd->sc_data_direction); |
5199 | // printk("ms %p ", ulBuff); | 5199 | // printk("ms %p ", ulBuff); |
5200 | } | 5200 | } |
5201 | else { | 5201 | else { |
@@ -5224,7 +5224,7 @@ static ULONG build_SEST_sgList( | |||
5224 | unsigned long btg; | 5224 | unsigned long btg; |
5225 | contigaddr = pci_map_single(pcidev, Cmnd->request_buffer, | 5225 | contigaddr = pci_map_single(pcidev, Cmnd->request_buffer, |
5226 | Cmnd->request_bufflen, | 5226 | Cmnd->request_bufflen, |
5227 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 5227 | Cmnd->sc_data_direction); |
5228 | 5228 | ||
5229 | // printk("contigaddr = %p, len = %d\n", | 5229 | // printk("contigaddr = %p, len = %d\n", |
5230 | // (void *) contigaddr, bytes_to_go); | 5230 | // (void *) contigaddr, bytes_to_go); |
@@ -5247,7 +5247,7 @@ static ULONG build_SEST_sgList( | |||
5247 | 5247 | ||
5248 | sgl = (struct scatterlist*)Cmnd->request_buffer; | 5248 | sgl = (struct scatterlist*)Cmnd->request_buffer; |
5249 | sg_count = pci_map_sg(pcidev, sgl, Cmnd->use_sg, | 5249 | sg_count = pci_map_sg(pcidev, sgl, Cmnd->use_sg, |
5250 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 5250 | Cmnd->sc_data_direction); |
5251 | if( sg_count <= 3 ) { | 5251 | if( sg_count <= 3 ) { |
5252 | 5252 | ||
5253 | // we need to be careful here that no individual mapping | 5253 | // we need to be careful here that no individual mapping |
@@ -5400,7 +5400,7 @@ static ULONG build_SEST_sgList( | |||
5400 | 5400 | ||
5401 | cpqfc_undo_SEST_mappings(pcidev, contigaddr, | 5401 | cpqfc_undo_SEST_mappings(pcidev, contigaddr, |
5402 | Cmnd->request_bufflen, | 5402 | Cmnd->request_bufflen, |
5403 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction), | 5403 | Cmnd->sc_data_direction, |
5404 | sgl, Cmnd->use_sg, sgPages_head, AllocatedPages+1); | 5404 | sgl, Cmnd->use_sg, sgPages_head, AllocatedPages+1); |
5405 | 5405 | ||
5406 | // FIXME: testing shows that if we get here, | 5406 | // FIXME: testing shows that if we get here, |
@@ -5946,7 +5946,7 @@ cpqfc_pci_unmap_extended_sg(struct pci_dev *pcidev, | |||
5946 | // for each extended scatter gather region needing unmapping... | 5946 | // for each extended scatter gather region needing unmapping... |
5947 | for (i=fcChip->SEST->sgPages[x_ID] ; i != NULL ; i = i->next) | 5947 | for (i=fcChip->SEST->sgPages[x_ID] ; i != NULL ; i = i->next) |
5948 | pci_unmap_single(pcidev, i->busaddr, i->maplen, | 5948 | pci_unmap_single(pcidev, i->busaddr, i->maplen, |
5949 | scsi_to_pci_dma_dir(PCI_DMA_TODEVICE)); | 5949 | PCI_DMA_TODEVICE); |
5950 | } | 5950 | } |
5951 | 5951 | ||
5952 | // Called also from cpqfcTScontrol.o, so can't be static | 5952 | // Called also from cpqfcTScontrol.o, so can't be static |
@@ -5960,14 +5960,14 @@ cpqfc_pci_unmap(struct pci_dev *pcidev, | |||
5960 | if (cmd->use_sg) { // Used scatter gather list for data buffer? | 5960 | if (cmd->use_sg) { // Used scatter gather list for data buffer? |
5961 | cpqfc_pci_unmap_extended_sg(pcidev, fcChip, x_ID); | 5961 | cpqfc_pci_unmap_extended_sg(pcidev, fcChip, x_ID); |
5962 | pci_unmap_sg(pcidev, cmd->buffer, cmd->use_sg, | 5962 | pci_unmap_sg(pcidev, cmd->buffer, cmd->use_sg, |
5963 | scsi_to_pci_dma_dir(cmd->sc_data_direction)); | 5963 | cmd->sc_data_direction); |
5964 | // printk("umsg %d\n", cmd->use_sg); | 5964 | // printk("umsg %d\n", cmd->use_sg); |
5965 | } | 5965 | } |
5966 | else if (cmd->request_bufflen) { | 5966 | else if (cmd->request_bufflen) { |
5967 | // printk("ums %p ", fcChip->SEST->u[ x_ID ].IWE.GAddr1); | 5967 | // printk("ums %p ", fcChip->SEST->u[ x_ID ].IWE.GAddr1); |
5968 | pci_unmap_single(pcidev, fcChip->SEST->u[ x_ID ].IWE.GAddr1, | 5968 | pci_unmap_single(pcidev, fcChip->SEST->u[ x_ID ].IWE.GAddr1, |
5969 | cmd->request_bufflen, | 5969 | cmd->request_bufflen, |
5970 | scsi_to_pci_dma_dir(cmd->sc_data_direction)); | 5970 | cmd->sc_data_direction); |
5971 | } | 5971 | } |
5972 | } | 5972 | } |
5973 | 5973 | ||
diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c index 47c263e5cd39..fbc2cb6667a1 100644 --- a/drivers/scsi/ips.c +++ b/drivers/scsi/ips.c | |||
@@ -231,9 +231,9 @@ module_param(ips, charp, 0); | |||
231 | #endif | 231 | #endif |
232 | 232 | ||
233 | #define IPS_DMA_DIR(scb) ((!scb->scsi_cmd || ips_is_passthru(scb->scsi_cmd) || \ | 233 | #define IPS_DMA_DIR(scb) ((!scb->scsi_cmd || ips_is_passthru(scb->scsi_cmd) || \ |
234 | SCSI_DATA_NONE == scb->scsi_cmd->sc_data_direction) ? \ | 234 | DMA_NONE == scb->scsi_cmd->sc_data_direction) ? \ |
235 | PCI_DMA_BIDIRECTIONAL : \ | 235 | PCI_DMA_BIDIRECTIONAL : \ |
236 | scsi_to_pci_dma_dir(scb->scsi_cmd->sc_data_direction)) | 236 | scb->scsi_cmd->sc_data_direction) |
237 | 237 | ||
238 | #ifdef IPS_DEBUG | 238 | #ifdef IPS_DEBUG |
239 | #define METHOD_TRACE(s, i) if (ips_debug >= (i+10)) printk(KERN_NOTICE s "\n"); | 239 | #define METHOD_TRACE(s, i) if (ips_debug >= (i+10)) printk(KERN_NOTICE s "\n"); |
@@ -2849,8 +2849,7 @@ ips_next(ips_ha_t * ha, int intr) | |||
2849 | 2849 | ||
2850 | sg = SC->request_buffer; | 2850 | sg = SC->request_buffer; |
2851 | scb->sg_count = pci_map_sg(ha->pcidev, sg, SC->use_sg, | 2851 | scb->sg_count = pci_map_sg(ha->pcidev, sg, SC->use_sg, |
2852 | scsi_to_pci_dma_dir(SC-> | 2852 | SC->sc_data_direction); |
2853 | sc_data_direction)); | ||
2854 | scb->flags |= IPS_SCB_MAP_SG; | 2853 | scb->flags |= IPS_SCB_MAP_SG; |
2855 | for (i = 0; i < scb->sg_count; i++) { | 2854 | for (i = 0; i < scb->sg_count; i++) { |
2856 | if (ips_fill_scb_sg_single | 2855 | if (ips_fill_scb_sg_single |
@@ -2865,8 +2864,7 @@ ips_next(ips_ha_t * ha, int intr) | |||
2865 | pci_map_single(ha->pcidev, | 2864 | pci_map_single(ha->pcidev, |
2866 | SC->request_buffer, | 2865 | SC->request_buffer, |
2867 | SC->request_bufflen, | 2866 | SC->request_bufflen, |
2868 | scsi_to_pci_dma_dir(SC-> | 2867 | SC->sc_data_direction); |
2869 | sc_data_direction)); | ||
2870 | scb->flags |= IPS_SCB_MAP_SINGLE; | 2868 | scb->flags |= IPS_SCB_MAP_SINGLE; |
2871 | ips_fill_scb_sg_single(ha, scb->data_busaddr, | 2869 | ips_fill_scb_sg_single(ha, scb->data_busaddr, |
2872 | scb, 0, | 2870 | scb, 0, |
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c index 4e5e54a1564b..4c96df060c3b 100644 --- a/drivers/scsi/libata-scsi.c +++ b/drivers/scsi/libata-scsi.c | |||
@@ -305,7 +305,7 @@ void ata_to_sense_error(struct ata_queued_cmd *qc, u8 drv_stat) | |||
305 | sb[0] = 0x70; | 305 | sb[0] = 0x70; |
306 | sb[2] = MEDIUM_ERROR; | 306 | sb[2] = MEDIUM_ERROR; |
307 | sb[7] = 0x0A; | 307 | sb[7] = 0x0A; |
308 | if (cmd->sc_data_direction == SCSI_DATA_READ) { | 308 | if (cmd->sc_data_direction == DMA_FROM_DEVICE) { |
309 | sb[12] = 0x11; /* "unrecovered read error" */ | 309 | sb[12] = 0x11; /* "unrecovered read error" */ |
310 | sb[13] = 0x04; | 310 | sb[13] = 0x04; |
311 | } else { | 311 | } else { |
@@ -671,8 +671,8 @@ static void ata_scsi_translate(struct ata_port *ap, struct ata_device *dev, | |||
671 | return; | 671 | return; |
672 | 672 | ||
673 | /* data is present; dma-map it */ | 673 | /* data is present; dma-map it */ |
674 | if (cmd->sc_data_direction == SCSI_DATA_READ || | 674 | if (cmd->sc_data_direction == DMA_FROM_DEVICE || |
675 | cmd->sc_data_direction == SCSI_DATA_WRITE) { | 675 | cmd->sc_data_direction == DMA_TO_DEVICE) { |
676 | if (unlikely(cmd->request_bufflen < 1)) { | 676 | if (unlikely(cmd->request_bufflen < 1)) { |
677 | printk(KERN_WARNING "ata%u(%u): WARNING: zero len r/w req\n", | 677 | printk(KERN_WARNING "ata%u(%u): WARNING: zero len r/w req\n", |
678 | ap->id, dev->devno); | 678 | ap->id, dev->devno); |
@@ -1304,7 +1304,7 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc, u8 *scsicmd) | |||
1304 | struct scsi_cmnd *cmd = qc->scsicmd; | 1304 | struct scsi_cmnd *cmd = qc->scsicmd; |
1305 | struct ata_device *dev = qc->dev; | 1305 | struct ata_device *dev = qc->dev; |
1306 | int using_pio = (dev->flags & ATA_DFLAG_PIO); | 1306 | int using_pio = (dev->flags & ATA_DFLAG_PIO); |
1307 | int nodata = (cmd->sc_data_direction == SCSI_DATA_NONE); | 1307 | int nodata = (cmd->sc_data_direction == DMA_NONE); |
1308 | 1308 | ||
1309 | if (!using_pio) | 1309 | if (!using_pio) |
1310 | /* Check whether ATAPI DMA is safe */ | 1310 | /* Check whether ATAPI DMA is safe */ |
@@ -1316,7 +1316,7 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc, u8 *scsicmd) | |||
1316 | qc->complete_fn = atapi_qc_complete; | 1316 | qc->complete_fn = atapi_qc_complete; |
1317 | 1317 | ||
1318 | qc->tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; | 1318 | qc->tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; |
1319 | if (cmd->sc_data_direction == SCSI_DATA_WRITE) { | 1319 | if (cmd->sc_data_direction == DMA_TO_DEVICE) { |
1320 | qc->tf.flags |= ATA_TFLAG_WRITE; | 1320 | qc->tf.flags |= ATA_TFLAG_WRITE; |
1321 | DPRINTK("direction: write\n"); | 1321 | DPRINTK("direction: write\n"); |
1322 | } | 1322 | } |
@@ -1340,7 +1340,7 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc, u8 *scsicmd) | |||
1340 | 1340 | ||
1341 | #ifdef ATAPI_ENABLE_DMADIR | 1341 | #ifdef ATAPI_ENABLE_DMADIR |
1342 | /* some SATA bridges need us to indicate data xfer direction */ | 1342 | /* some SATA bridges need us to indicate data xfer direction */ |
1343 | if (cmd->sc_data_direction != SCSI_DATA_WRITE) | 1343 | if (cmd->sc_data_direction != DMA_TO_DEVICE) |
1344 | qc->tf.feature |= ATAPI_DMADIR; | 1344 | qc->tf.feature |= ATAPI_DMADIR; |
1345 | #endif | 1345 | #endif |
1346 | } | 1346 | } |
diff --git a/drivers/scsi/pci2000.c b/drivers/scsi/pci2000.c index d58f303127f5..377a4666b568 100644 --- a/drivers/scsi/pci2000.c +++ b/drivers/scsi/pci2000.c | |||
@@ -209,7 +209,7 @@ static int BuildSgList (Scsi_Cmnd *SCpnt, PADAPTER2000 padapter, PDEV2000 pdev) | |||
209 | if ( SCpnt->use_sg ) | 209 | if ( SCpnt->use_sg ) |
210 | { | 210 | { |
211 | sg = (struct scatterlist *)SCpnt->request_buffer; | 211 | sg = (struct scatterlist *)SCpnt->request_buffer; |
212 | zc = pci_map_sg (padapter->pdev, sg, SCpnt->use_sg, scsi_to_pci_dma_dir (SCpnt->sc_data_direction)); | 212 | zc = pci_map_sg (padapter->pdev, sg, SCpnt->use_sg, SCpnt->sc_data_direction); |
213 | for ( z = 0; z < zc; z++ ) | 213 | for ( z = 0; z < zc; z++ ) |
214 | { | 214 | { |
215 | pdev->scatGath[z].address = cpu_to_le32 (sg_dma_address (sg)); | 215 | pdev->scatGath[z].address = cpu_to_le32 (sg_dma_address (sg)); |
@@ -225,7 +225,9 @@ static int BuildSgList (Scsi_Cmnd *SCpnt, PADAPTER2000 padapter, PDEV2000 pdev) | |||
225 | outl (0, padapter->mb3); | 225 | outl (0, padapter->mb3); |
226 | return TRUE; | 226 | return TRUE; |
227 | } | 227 | } |
228 | SCpnt->SCp.have_data_in = pci_map_single (padapter->pdev, SCpnt->request_buffer, SCpnt->request_bufflen, scsi_to_pci_dma_dir (SCpnt->sc_data_direction)); | 228 | SCpnt->SCp.have_data_in = pci_map_single (padapter->pdev, |
229 | SCpnt->request_buffer, SCpnt->request_bufflen, | ||
230 | SCpnt->sc_data_direction); | ||
229 | outl (SCpnt->SCp.have_data_in, padapter->mb2); | 231 | outl (SCpnt->SCp.have_data_in, padapter->mb2); |
230 | outl (SCpnt->request_bufflen, padapter->mb3); | 232 | outl (SCpnt->request_bufflen, padapter->mb3); |
231 | return TRUE; | 233 | return TRUE; |
@@ -340,11 +342,11 @@ unmapProceed:; | |||
340 | } | 342 | } |
341 | } | 343 | } |
342 | if ( SCpnt->SCp.have_data_in ) | 344 | if ( SCpnt->SCp.have_data_in ) |
343 | pci_unmap_single (padapter->pdev, SCpnt->SCp.have_data_in, SCpnt->request_bufflen, scsi_to_pci_dma_dir(SCpnt->sc_data_direction)); | 345 | pci_unmap_single (padapter->pdev, SCpnt->SCp.have_data_in, SCpnt->request_bufflen, SCpnt->sc_data_direction); |
344 | else | 346 | else |
345 | { | 347 | { |
346 | if ( SCpnt->use_sg ) | 348 | if ( SCpnt->use_sg ) |
347 | pci_unmap_sg (padapter->pdev, (struct scatterlist *)SCpnt->request_buffer, SCpnt->use_sg, scsi_to_pci_dma_dir(SCpnt->sc_data_direction)); | 349 | pci_unmap_sg (padapter->pdev, (struct scatterlist *)SCpnt->request_buffer, SCpnt->use_sg, SCpnt->sc_data_direction); |
348 | } | 350 | } |
349 | 351 | ||
350 | irqProceed:; | 352 | irqProceed:; |
@@ -495,7 +497,7 @@ int Pci2000_QueueCommand (Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) | |||
495 | else | 497 | else |
496 | { | 498 | { |
497 | SCpnt->SCp.have_data_in = pci_map_single (padapter->pdev, SCpnt->request_buffer, SCpnt->request_bufflen, | 499 | SCpnt->SCp.have_data_in = pci_map_single (padapter->pdev, SCpnt->request_buffer, SCpnt->request_bufflen, |
498 | scsi_to_pci_dma_dir(SCpnt->sc_data_direction)); | 500 | SCpnt->sc_data_direction); |
499 | outl (SCpnt->SCp.have_data_in, padapter->mb2); | 501 | outl (SCpnt->SCp.have_data_in, padapter->mb2); |
500 | } | 502 | } |
501 | outl (cdb[5], padapter->mb0); | 503 | outl (cdb[5], padapter->mb0); |
@@ -511,13 +513,13 @@ int Pci2000_QueueCommand (Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) | |||
511 | SCpnt->SCp.have_data_in = pci_map_single (padapter->pdev, | 513 | SCpnt->SCp.have_data_in = pci_map_single (padapter->pdev, |
512 | ((struct scatterlist *)SCpnt->request_buffer)->address, | 514 | ((struct scatterlist *)SCpnt->request_buffer)->address, |
513 | SCpnt->request_bufflen, | 515 | SCpnt->request_bufflen, |
514 | scsi_to_pci_dma_dir (SCpnt->sc_data_direction)); | 516 | SCpnt->sc_data_direction); |
515 | } | 517 | } |
516 | else | 518 | else |
517 | { | 519 | { |
518 | SCpnt->SCp.have_data_in = pci_map_single (padapter->pdev, SCpnt->request_buffer, | 520 | SCpnt->SCp.have_data_in = pci_map_single (padapter->pdev, SCpnt->request_buffer, |
519 | SCpnt->request_bufflen, | 521 | SCpnt->request_bufflen, |
520 | scsi_to_pci_dma_dir (SCpnt->sc_data_direction)); | 522 | SCpnt->sc_data_direction); |
521 | } | 523 | } |
522 | outl (SCpnt->SCp.have_data_in, padapter->mb2); | 524 | outl (SCpnt->SCp.have_data_in, padapter->mb2); |
523 | outl (SCpnt->request_bufflen, padapter->mb3); | 525 | outl (SCpnt->request_bufflen, padapter->mb3); |
diff --git a/drivers/scsi/qlogicfc.c b/drivers/scsi/qlogicfc.c index 24c1174b0c2f..ddf0f4277ee8 100644 --- a/drivers/scsi/qlogicfc.c +++ b/drivers/scsi/qlogicfc.c | |||
@@ -1261,7 +1261,7 @@ static int isp2x00_queuecommand(Scsi_Cmnd * Cmnd, void (*done) (Scsi_Cmnd *)) | |||
1261 | 1261 | ||
1262 | if (Cmnd->use_sg) { | 1262 | if (Cmnd->use_sg) { |
1263 | sg = (struct scatterlist *) Cmnd->request_buffer; | 1263 | sg = (struct scatterlist *) Cmnd->request_buffer; |
1264 | sg_count = pci_map_sg(hostdata->pci_dev, sg, Cmnd->use_sg, scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 1264 | sg_count = pci_map_sg(hostdata->pci_dev, sg, Cmnd->use_sg, Cmnd->sc_data_direction); |
1265 | cmd->segment_cnt = cpu_to_le16(sg_count); | 1265 | cmd->segment_cnt = cpu_to_le16(sg_count); |
1266 | ds = cmd->dataseg; | 1266 | ds = cmd->dataseg; |
1267 | /* fill in first two sg entries: */ | 1267 | /* fill in first two sg entries: */ |
@@ -1307,7 +1307,7 @@ static int isp2x00_queuecommand(Scsi_Cmnd * Cmnd, void (*done) (Scsi_Cmnd *)) | |||
1307 | dma_addr_t busaddr = pci_map_page(hostdata->pci_dev, | 1307 | dma_addr_t busaddr = pci_map_page(hostdata->pci_dev, |
1308 | page, offset, | 1308 | page, offset, |
1309 | Cmnd->request_bufflen, | 1309 | Cmnd->request_bufflen, |
1310 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 1310 | Cmnd->sc_data_direction); |
1311 | Cmnd->SCp.dma_handle = busaddr; | 1311 | Cmnd->SCp.dma_handle = busaddr; |
1312 | 1312 | ||
1313 | cmd->dataseg[0].d_base = cpu_to_le32(pci64_dma_lo32(busaddr)); | 1313 | cmd->dataseg[0].d_base = cpu_to_le32(pci64_dma_lo32(busaddr)); |
@@ -1320,7 +1320,7 @@ static int isp2x00_queuecommand(Scsi_Cmnd * Cmnd, void (*done) (Scsi_Cmnd *)) | |||
1320 | cmd->segment_cnt = cpu_to_le16(1); /* Shouldn't this be 0? */ | 1320 | cmd->segment_cnt = cpu_to_le16(1); /* Shouldn't this be 0? */ |
1321 | } | 1321 | } |
1322 | 1322 | ||
1323 | if (Cmnd->sc_data_direction == SCSI_DATA_WRITE) | 1323 | if (Cmnd->sc_data_direction == DMA_TO_DEVICE) |
1324 | cmd->control_flags = cpu_to_le16(CFLAG_WRITE); | 1324 | cmd->control_flags = cpu_to_le16(CFLAG_WRITE); |
1325 | else | 1325 | else |
1326 | cmd->control_flags = cpu_to_le16(CFLAG_READ); | 1326 | cmd->control_flags = cpu_to_le16(CFLAG_READ); |
@@ -1405,13 +1405,13 @@ static void redo_port_db(unsigned long arg) | |||
1405 | pci_unmap_sg(hostdata->pci_dev, | 1405 | pci_unmap_sg(hostdata->pci_dev, |
1406 | (struct scatterlist *)Cmnd->buffer, | 1406 | (struct scatterlist *)Cmnd->buffer, |
1407 | Cmnd->use_sg, | 1407 | Cmnd->use_sg, |
1408 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 1408 | Cmnd->sc_data_direction); |
1409 | else if (Cmnd->request_bufflen && | 1409 | else if (Cmnd->request_bufflen && |
1410 | Cmnd->sc_data_direction != PCI_DMA_NONE) { | 1410 | Cmnd->sc_data_direction != PCI_DMA_NONE) { |
1411 | pci_unmap_page(hostdata->pci_dev, | 1411 | pci_unmap_page(hostdata->pci_dev, |
1412 | Cmnd->SCp.dma_handle, | 1412 | Cmnd->SCp.dma_handle, |
1413 | Cmnd->request_bufflen, | 1413 | Cmnd->request_bufflen, |
1414 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 1414 | Cmnd->sc_data_direction); |
1415 | } | 1415 | } |
1416 | 1416 | ||
1417 | hostdata->handle_ptrs[i]->result = DID_SOFT_ERROR << 16; | 1417 | hostdata->handle_ptrs[i]->result = DID_SOFT_ERROR << 16; |
@@ -1515,13 +1515,13 @@ void isp2x00_intr_handler(int irq, void *dev_id, struct pt_regs *regs) | |||
1515 | pci_unmap_sg(hostdata->pci_dev, | 1515 | pci_unmap_sg(hostdata->pci_dev, |
1516 | (struct scatterlist *)Cmnd->buffer, | 1516 | (struct scatterlist *)Cmnd->buffer, |
1517 | Cmnd->use_sg, | 1517 | Cmnd->use_sg, |
1518 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 1518 | Cmnd->sc_data_direction); |
1519 | else if (Cmnd->request_bufflen && | 1519 | else if (Cmnd->request_bufflen && |
1520 | Cmnd->sc_data_direction != PCI_DMA_NONE) | 1520 | Cmnd->sc_data_direction != PCI_DMA_NONE) |
1521 | pci_unmap_page(hostdata->pci_dev, | 1521 | pci_unmap_page(hostdata->pci_dev, |
1522 | Cmnd->SCp.dma_handle, | 1522 | Cmnd->SCp.dma_handle, |
1523 | Cmnd->request_bufflen, | 1523 | Cmnd->request_bufflen, |
1524 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 1524 | Cmnd->sc_data_direction); |
1525 | Cmnd->result = 0x0; | 1525 | Cmnd->result = 0x0; |
1526 | (*Cmnd->scsi_done) (Cmnd); | 1526 | (*Cmnd->scsi_done) (Cmnd); |
1527 | } else | 1527 | } else |
@@ -1569,12 +1569,12 @@ void isp2x00_intr_handler(int irq, void *dev_id, struct pt_regs *regs) | |||
1569 | if (Cmnd->use_sg) | 1569 | if (Cmnd->use_sg) |
1570 | pci_unmap_sg(hostdata->pci_dev, | 1570 | pci_unmap_sg(hostdata->pci_dev, |
1571 | (struct scatterlist *)Cmnd->buffer, Cmnd->use_sg, | 1571 | (struct scatterlist *)Cmnd->buffer, Cmnd->use_sg, |
1572 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 1572 | Cmnd->sc_data_direction); |
1573 | else if (Cmnd->request_bufflen && Cmnd->sc_data_direction != PCI_DMA_NONE) | 1573 | else if (Cmnd->request_bufflen && Cmnd->sc_data_direction != PCI_DMA_NONE) |
1574 | pci_unmap_page(hostdata->pci_dev, | 1574 | pci_unmap_page(hostdata->pci_dev, |
1575 | Cmnd->SCp.dma_handle, | 1575 | Cmnd->SCp.dma_handle, |
1576 | Cmnd->request_bufflen, | 1576 | Cmnd->request_bufflen, |
1577 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 1577 | Cmnd->sc_data_direction); |
1578 | 1578 | ||
1579 | /* | 1579 | /* |
1580 | * if any of the following are true we do not | 1580 | * if any of the following are true we do not |
diff --git a/drivers/scsi/qlogicisp.c b/drivers/scsi/qlogicisp.c index 71d597a9b0b0..6d29e1b864e2 100644 --- a/drivers/scsi/qlogicisp.c +++ b/drivers/scsi/qlogicisp.c | |||
@@ -877,7 +877,7 @@ static int isp1020_queuecommand(Scsi_Cmnd *Cmnd, void (*done)(Scsi_Cmnd *)) | |||
877 | ds = cmd->dataseg; | 877 | ds = cmd->dataseg; |
878 | 878 | ||
879 | sg_count = pci_map_sg(hostdata->pci_dev, sg, Cmnd->use_sg, | 879 | sg_count = pci_map_sg(hostdata->pci_dev, sg, Cmnd->use_sg, |
880 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 880 | Cmnd->sc_data_direction); |
881 | 881 | ||
882 | cmd->segment_cnt = cpu_to_le16(sg_count); | 882 | cmd->segment_cnt = cpu_to_le16(sg_count); |
883 | 883 | ||
@@ -934,7 +934,7 @@ static int isp1020_queuecommand(Scsi_Cmnd *Cmnd, void (*done)(Scsi_Cmnd *)) | |||
934 | dma_addr = pci_map_single(hostdata->pci_dev, | 934 | dma_addr = pci_map_single(hostdata->pci_dev, |
935 | Cmnd->request_buffer, | 935 | Cmnd->request_buffer, |
936 | Cmnd->request_bufflen, | 936 | Cmnd->request_bufflen, |
937 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 937 | Cmnd->sc_data_direction); |
938 | Cmnd->SCp.ptr = (char *)(unsigned long) dma_addr; | 938 | Cmnd->SCp.ptr = (char *)(unsigned long) dma_addr; |
939 | 939 | ||
940 | cmd->dataseg[0].d_base = | 940 | cmd->dataseg[0].d_base = |
@@ -1067,7 +1067,7 @@ void isp1020_intr_handler(int irq, void *dev_id, struct pt_regs *regs) | |||
1067 | pci_unmap_sg(hostdata->pci_dev, | 1067 | pci_unmap_sg(hostdata->pci_dev, |
1068 | (struct scatterlist *)Cmnd->buffer, | 1068 | (struct scatterlist *)Cmnd->buffer, |
1069 | Cmnd->use_sg, | 1069 | Cmnd->use_sg, |
1070 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 1070 | Cmnd->sc_data_direction); |
1071 | else if (Cmnd->request_bufflen) | 1071 | else if (Cmnd->request_bufflen) |
1072 | pci_unmap_single(hostdata->pci_dev, | 1072 | pci_unmap_single(hostdata->pci_dev, |
1073 | #ifdef CONFIG_QL_ISP_A64 | 1073 | #ifdef CONFIG_QL_ISP_A64 |
@@ -1076,7 +1076,7 @@ void isp1020_intr_handler(int irq, void *dev_id, struct pt_regs *regs) | |||
1076 | (u32)((long)Cmnd->SCp.ptr), | 1076 | (u32)((long)Cmnd->SCp.ptr), |
1077 | #endif | 1077 | #endif |
1078 | Cmnd->request_bufflen, | 1078 | Cmnd->request_bufflen, |
1079 | scsi_to_pci_dma_dir(Cmnd->sc_data_direction)); | 1079 | Cmnd->sc_data_direction); |
1080 | 1080 | ||
1081 | isp_outw(out_ptr, host, MBOX5); | 1081 | isp_outw(out_ptr, host, MBOX5); |
1082 | (*Cmnd->scsi_done)(Cmnd); | 1082 | (*Cmnd->scsi_done)(Cmnd); |
diff --git a/drivers/scsi/scsi.h b/drivers/scsi/scsi.h index e2360c26ef01..5ee5d80a9931 100644 --- a/drivers/scsi/scsi.h +++ b/drivers/scsi/scsi.h | |||
@@ -45,21 +45,6 @@ struct scsi_device; | |||
45 | struct scsi_target; | 45 | struct scsi_target; |
46 | struct scatterlist; | 46 | struct scatterlist; |
47 | 47 | ||
48 | /* | ||
49 | * Legacy dma direction interfaces. | ||
50 | * | ||
51 | * This assumes the pci/sbus dma mapping flags have the same numercial | ||
52 | * values as the generic dma-mapping ones. Currently they have but there's | ||
53 | * no way to check. Better don't use these interfaces! | ||
54 | */ | ||
55 | #define SCSI_DATA_UNKNOWN (DMA_BIDIRECTIONAL) | ||
56 | #define SCSI_DATA_WRITE (DMA_TO_DEVICE) | ||
57 | #define SCSI_DATA_READ (DMA_FROM_DEVICE) | ||
58 | #define SCSI_DATA_NONE (DMA_NONE) | ||
59 | |||
60 | #define scsi_to_pci_dma_dir(scsi_dir) ((int)(scsi_dir)) | ||
61 | #define scsi_to_sbus_dma_dir(scsi_dir) ((int)(scsi_dir)) | ||
62 | |||
63 | /* obsolete typedef junk. */ | 48 | /* obsolete typedef junk. */ |
64 | #include "scsi_typedefs.h" | 49 | #include "scsi_typedefs.h" |
65 | 50 | ||
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index ce8332297dfa..7936aafc3d05 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c | |||
@@ -747,16 +747,16 @@ sg_common_write(Sg_fd * sfp, Sg_request * srp, | |||
747 | switch (hp->dxfer_direction) { | 747 | switch (hp->dxfer_direction) { |
748 | case SG_DXFER_TO_FROM_DEV: | 748 | case SG_DXFER_TO_FROM_DEV: |
749 | case SG_DXFER_FROM_DEV: | 749 | case SG_DXFER_FROM_DEV: |
750 | SRpnt->sr_data_direction = SCSI_DATA_READ; | 750 | SRpnt->sr_data_direction = DMA_FROM_DEVICE; |
751 | break; | 751 | break; |
752 | case SG_DXFER_TO_DEV: | 752 | case SG_DXFER_TO_DEV: |
753 | SRpnt->sr_data_direction = SCSI_DATA_WRITE; | 753 | SRpnt->sr_data_direction = DMA_TO_DEVICE; |
754 | break; | 754 | break; |
755 | case SG_DXFER_UNKNOWN: | 755 | case SG_DXFER_UNKNOWN: |
756 | SRpnt->sr_data_direction = SCSI_DATA_UNKNOWN; | 756 | SRpnt->sr_data_direction = DMA_BIDIRECTIONAL; |
757 | break; | 757 | break; |
758 | default: | 758 | default: |
759 | SRpnt->sr_data_direction = SCSI_DATA_NONE; | 759 | SRpnt->sr_data_direction = DMA_NONE; |
760 | break; | 760 | break; |
761 | } | 761 | } |
762 | SRpnt->upper_private_data = srp; | 762 | SRpnt->upper_private_data = srp; |