Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 03cde46b authored by FUJITA Tomonori's avatar FUJITA Tomonori Committed by James Bottomley
Browse files

[SCSI] NCR53c406a: convert to use the data buffer accessors



- remove the unnecessary map_single path.

- convert to use the new accessors for the sg lists and the
parameters.

Jens Axboe <jens.axboe@oracle.com> did the for_each_sg cleanup.

Signed-off-by: default avatarFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 646158c2
Loading
Loading
Loading
Loading
+18 −27
Original line number Diff line number Diff line
@@ -698,7 +698,7 @@ static int NCR53c406a_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
	int i;

	VDEB(printk("NCR53c406a_queue called\n"));
	DEB(printk("cmd=%02x, cmd_len=%02x, target=%02x, lun=%02x, bufflen=%d\n", SCpnt->cmnd[0], SCpnt->cmd_len, SCpnt->target, SCpnt->lun, SCpnt->request_bufflen));
	DEB(printk("cmd=%02x, cmd_len=%02x, target=%02x, lun=%02x, bufflen=%d\n", SCpnt->cmnd[0], SCpnt->cmd_len, SCpnt->target, SCpnt->lun, scsi_bufflen(SCpnt)));

#if 0
	VDEB(for (i = 0; i < SCpnt->cmd_len; i++)
@@ -785,8 +785,8 @@ static void NCR53c406a_intr(void *dev_id)
	unsigned char status, int_reg;
#if USE_PIO
	unsigned char pio_status;
	struct scatterlist *sglist;
	unsigned int sgcount;
	struct scatterlist *sg;
        int i;
#endif

	VDEB(printk("NCR53c406a_intr called\n"));
@@ -866,21 +866,17 @@ static void NCR53c406a_intr(void *dev_id)
			current_SC->SCp.phase = data_out;
			VDEB(printk("NCR53c406a: Data-Out phase\n"));
			outb(FLUSH_FIFO, CMD_REG);
			LOAD_DMA_COUNT(current_SC->request_bufflen);	/* Max transfer size */
			LOAD_DMA_COUNT(scsi_bufflen(current_SC));	/* Max transfer size */
#if USE_DMA			/* No s/g support for DMA */
			NCR53c406a_dma_write(current_SC->request_buffer, current_SC->request_bufflen);
			NCR53c406a_dma_write(scsi_sglist(current_SC),
                                             scsdi_bufflen(current_SC));

#endif				/* USE_DMA */
			outb(TRANSFER_INFO | DMA_OP, CMD_REG);
#if USE_PIO
			if (!current_SC->use_sg)	/* Don't use scatter-gather */
				NCR53c406a_pio_write(current_SC->request_buffer, current_SC->request_bufflen);
			else {	/* use scatter-gather */
				sgcount = current_SC->use_sg;
				sglist = current_SC->request_buffer;
				while (sgcount--) {
					NCR53c406a_pio_write(page_address(sglist->page) + sglist->offset, sglist->length);
					sglist++;
				}
                        scsi_for_each_sg(current_SC, sg, scsi_sg_count(current_SC), i) {
                                NCR53c406a_pio_write(page_address(sg->page) + sg->offset,
                                                     sg->length);
                        }
			REG0;
#endif				/* USE_PIO */
@@ -893,21 +889,16 @@ static void NCR53c406a_intr(void *dev_id)
			current_SC->SCp.phase = data_in;
			VDEB(printk("NCR53c406a: Data-In phase\n"));
			outb(FLUSH_FIFO, CMD_REG);
			LOAD_DMA_COUNT(current_SC->request_bufflen);	/* Max transfer size */
			LOAD_DMA_COUNT(scsi_bufflen(current_SC));	/* Max transfer size */
#if USE_DMA			/* No s/g support for DMA */
			NCR53c406a_dma_read(current_SC->request_buffer, current_SC->request_bufflen);
			NCR53c406a_dma_read(scsi_sglist(current_SC),
                                            scsdi_bufflen(current_SC));
#endif				/* USE_DMA */
			outb(TRANSFER_INFO | DMA_OP, CMD_REG);
#if USE_PIO
			if (!current_SC->use_sg)	/* Don't use scatter-gather */
				NCR53c406a_pio_read(current_SC->request_buffer, current_SC->request_bufflen);
			else {	/* Use scatter-gather */
				sgcount = current_SC->use_sg;
				sglist = current_SC->request_buffer;
				while (sgcount--) {
					NCR53c406a_pio_read(page_address(sglist->page) + sglist->offset, sglist->length);
					sglist++;
				}
                        scsi_for_each_sg(current_SC, sg, scsi_sg_count(current_SC), i) {
                                NCR53c406a_pio_read(page_address(sg->page) + sg->offset,
                                                    sg->length);
                        }
			REG0;
#endif				/* USE_PIO */