diff options
author | Boaz Harrosh <bharrosh@panasas.com> | 2007-09-09 13:40:56 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-01-11 19:22:37 -0500 |
commit | 4776e99ebb171d61c7e242db437358183f27b471 (patch) | |
tree | 7e0a9516551f7d16686abb19cf1b87866b0d8377 /drivers/usb/storage | |
parent | 41c2497b188a641c542328d08a45cf3214d453bd (diff) |
[SCSI] usb: shuttle_usbat - convert to accessors and !use_sg code path removal
- functions that received char* but where passed scatterlist* mostly
were changed to receive void*
- Use scsi data accessors and remove of !use_sg code path
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Acked-by: Matthew Dharm <mdharm-scsi@one-eyed-alien.net>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/usb/storage')
-rw-r--r-- | drivers/usb/storage/shuttle_usbat.c | 68 |
1 files changed, 26 insertions, 42 deletions
diff --git a/drivers/usb/storage/shuttle_usbat.c b/drivers/usb/storage/shuttle_usbat.c index cb22a9ad1694..570c1250f6f3 100644 --- a/drivers/usb/storage/shuttle_usbat.c +++ b/drivers/usb/storage/shuttle_usbat.c | |||
@@ -130,7 +130,7 @@ static int usbat_write(struct us_data *us, | |||
130 | * Convenience function to perform a bulk read | 130 | * Convenience function to perform a bulk read |
131 | */ | 131 | */ |
132 | static int usbat_bulk_read(struct us_data *us, | 132 | static int usbat_bulk_read(struct us_data *us, |
133 | unsigned char *data, | 133 | void* buf, |
134 | unsigned int len, | 134 | unsigned int len, |
135 | int use_sg) | 135 | int use_sg) |
136 | { | 136 | { |
@@ -138,14 +138,14 @@ static int usbat_bulk_read(struct us_data *us, | |||
138 | return USB_STOR_XFER_GOOD; | 138 | return USB_STOR_XFER_GOOD; |
139 | 139 | ||
140 | US_DEBUGP("usbat_bulk_read: len = %d\n", len); | 140 | US_DEBUGP("usbat_bulk_read: len = %d\n", len); |
141 | return usb_stor_bulk_transfer_sg(us, us->recv_bulk_pipe, data, len, use_sg, NULL); | 141 | return usb_stor_bulk_transfer_sg(us, us->recv_bulk_pipe, buf, len, use_sg, NULL); |
142 | } | 142 | } |
143 | 143 | ||
144 | /* | 144 | /* |
145 | * Convenience function to perform a bulk write | 145 | * Convenience function to perform a bulk write |
146 | */ | 146 | */ |
147 | static int usbat_bulk_write(struct us_data *us, | 147 | static int usbat_bulk_write(struct us_data *us, |
148 | unsigned char *data, | 148 | void* buf, |
149 | unsigned int len, | 149 | unsigned int len, |
150 | int use_sg) | 150 | int use_sg) |
151 | { | 151 | { |
@@ -153,7 +153,7 @@ static int usbat_bulk_write(struct us_data *us, | |||
153 | return USB_STOR_XFER_GOOD; | 153 | return USB_STOR_XFER_GOOD; |
154 | 154 | ||
155 | US_DEBUGP("usbat_bulk_write: len = %d\n", len); | 155 | US_DEBUGP("usbat_bulk_write: len = %d\n", len); |
156 | return usb_stor_bulk_transfer_sg(us, us->send_bulk_pipe, data, len, use_sg, NULL); | 156 | return usb_stor_bulk_transfer_sg(us, us->send_bulk_pipe, buf, len, use_sg, NULL); |
157 | } | 157 | } |
158 | 158 | ||
159 | /* | 159 | /* |
@@ -314,7 +314,7 @@ static int usbat_wait_not_busy(struct us_data *us, int minutes) | |||
314 | * Read block data from the data register | 314 | * Read block data from the data register |
315 | */ | 315 | */ |
316 | static int usbat_read_block(struct us_data *us, | 316 | static int usbat_read_block(struct us_data *us, |
317 | unsigned char *content, | 317 | void* buf, |
318 | unsigned short len, | 318 | unsigned short len, |
319 | int use_sg) | 319 | int use_sg) |
320 | { | 320 | { |
@@ -337,7 +337,7 @@ static int usbat_read_block(struct us_data *us, | |||
337 | if (result != USB_STOR_XFER_GOOD) | 337 | if (result != USB_STOR_XFER_GOOD) |
338 | return USB_STOR_TRANSPORT_ERROR; | 338 | return USB_STOR_TRANSPORT_ERROR; |
339 | 339 | ||
340 | result = usbat_bulk_read(us, content, len, use_sg); | 340 | result = usbat_bulk_read(us, buf, len, use_sg); |
341 | return (result == USB_STOR_XFER_GOOD ? | 341 | return (result == USB_STOR_XFER_GOOD ? |
342 | USB_STOR_TRANSPORT_GOOD : USB_STOR_TRANSPORT_ERROR); | 342 | USB_STOR_TRANSPORT_GOOD : USB_STOR_TRANSPORT_ERROR); |
343 | } | 343 | } |
@@ -347,7 +347,7 @@ static int usbat_read_block(struct us_data *us, | |||
347 | */ | 347 | */ |
348 | static int usbat_write_block(struct us_data *us, | 348 | static int usbat_write_block(struct us_data *us, |
349 | unsigned char access, | 349 | unsigned char access, |
350 | unsigned char *content, | 350 | void* buf, |
351 | unsigned short len, | 351 | unsigned short len, |
352 | int minutes, | 352 | int minutes, |
353 | int use_sg) | 353 | int use_sg) |
@@ -372,7 +372,7 @@ static int usbat_write_block(struct us_data *us, | |||
372 | if (result != USB_STOR_XFER_GOOD) | 372 | if (result != USB_STOR_XFER_GOOD) |
373 | return USB_STOR_TRANSPORT_ERROR; | 373 | return USB_STOR_TRANSPORT_ERROR; |
374 | 374 | ||
375 | result = usbat_bulk_write(us, content, len, use_sg); | 375 | result = usbat_bulk_write(us, buf, len, use_sg); |
376 | if (result != USB_STOR_XFER_GOOD) | 376 | if (result != USB_STOR_XFER_GOOD) |
377 | return USB_STOR_TRANSPORT_ERROR; | 377 | return USB_STOR_TRANSPORT_ERROR; |
378 | 378 | ||
@@ -392,7 +392,7 @@ static int usbat_hp8200e_rw_block_test(struct us_data *us, | |||
392 | unsigned char timeout, | 392 | unsigned char timeout, |
393 | unsigned char qualifier, | 393 | unsigned char qualifier, |
394 | int direction, | 394 | int direction, |
395 | unsigned char *content, | 395 | void *buf, |
396 | unsigned short len, | 396 | unsigned short len, |
397 | int use_sg, | 397 | int use_sg, |
398 | int minutes) | 398 | int minutes) |
@@ -472,7 +472,7 @@ static int usbat_hp8200e_rw_block_test(struct us_data *us, | |||
472 | } | 472 | } |
473 | 473 | ||
474 | result = usb_stor_bulk_transfer_sg(us, | 474 | result = usb_stor_bulk_transfer_sg(us, |
475 | pipe, content, len, use_sg, NULL); | 475 | pipe, buf, len, use_sg, NULL); |
476 | 476 | ||
477 | /* | 477 | /* |
478 | * If we get a stall on the bulk download, we'll retry | 478 | * If we get a stall on the bulk download, we'll retry |
@@ -606,7 +606,7 @@ static int usbat_multiple_write(struct us_data *us, | |||
606 | * other related details) are defined beforehand with _set_shuttle_features(). | 606 | * other related details) are defined beforehand with _set_shuttle_features(). |
607 | */ | 607 | */ |
608 | static int usbat_read_blocks(struct us_data *us, | 608 | static int usbat_read_blocks(struct us_data *us, |
609 | unsigned char *buffer, | 609 | void* buffer, |
610 | int len, | 610 | int len, |
611 | int use_sg) | 611 | int use_sg) |
612 | { | 612 | { |
@@ -648,7 +648,7 @@ static int usbat_read_blocks(struct us_data *us, | |||
648 | * other related details) are defined beforehand with _set_shuttle_features(). | 648 | * other related details) are defined beforehand with _set_shuttle_features(). |
649 | */ | 649 | */ |
650 | static int usbat_write_blocks(struct us_data *us, | 650 | static int usbat_write_blocks(struct us_data *us, |
651 | unsigned char *buffer, | 651 | void* buffer, |
652 | int len, | 652 | int len, |
653 | int use_sg) | 653 | int use_sg) |
654 | { | 654 | { |
@@ -1170,15 +1170,15 @@ static int usbat_hp8200e_handle_read10(struct us_data *us, | |||
1170 | US_DEBUGP("handle_read10: transfersize %d\n", | 1170 | US_DEBUGP("handle_read10: transfersize %d\n", |
1171 | srb->transfersize); | 1171 | srb->transfersize); |
1172 | 1172 | ||
1173 | if (srb->request_bufflen < 0x10000) { | 1173 | if (scsi_bufflen(srb) < 0x10000) { |
1174 | 1174 | ||
1175 | result = usbat_hp8200e_rw_block_test(us, USBAT_ATA, | 1175 | result = usbat_hp8200e_rw_block_test(us, USBAT_ATA, |
1176 | registers, data, 19, | 1176 | registers, data, 19, |
1177 | USBAT_ATA_DATA, USBAT_ATA_STATUS, 0xFD, | 1177 | USBAT_ATA_DATA, USBAT_ATA_STATUS, 0xFD, |
1178 | (USBAT_QUAL_FCQ | USBAT_QUAL_ALQ), | 1178 | (USBAT_QUAL_FCQ | USBAT_QUAL_ALQ), |
1179 | DMA_FROM_DEVICE, | 1179 | DMA_FROM_DEVICE, |
1180 | srb->request_buffer, | 1180 | scsi_sglist(srb), |
1181 | srb->request_bufflen, srb->use_sg, 1); | 1181 | scsi_bufflen(srb), scsi_sg_count(srb), 1); |
1182 | 1182 | ||
1183 | return result; | 1183 | return result; |
1184 | } | 1184 | } |
@@ -1196,7 +1196,7 @@ static int usbat_hp8200e_handle_read10(struct us_data *us, | |||
1196 | len <<= 16; | 1196 | len <<= 16; |
1197 | len |= data[7+7]; | 1197 | len |= data[7+7]; |
1198 | US_DEBUGP("handle_read10: GPCMD_READ_CD: len %d\n", len); | 1198 | US_DEBUGP("handle_read10: GPCMD_READ_CD: len %d\n", len); |
1199 | srb->transfersize = srb->request_bufflen/len; | 1199 | srb->transfersize = scsi_bufflen(srb)/len; |
1200 | } | 1200 | } |
1201 | 1201 | ||
1202 | if (!srb->transfersize) { | 1202 | if (!srb->transfersize) { |
@@ -1213,7 +1213,7 @@ static int usbat_hp8200e_handle_read10(struct us_data *us, | |||
1213 | 1213 | ||
1214 | len = (65535/srb->transfersize) * srb->transfersize; | 1214 | len = (65535/srb->transfersize) * srb->transfersize; |
1215 | US_DEBUGP("Max read is %d bytes\n", len); | 1215 | US_DEBUGP("Max read is %d bytes\n", len); |
1216 | len = min(len, srb->request_bufflen); | 1216 | len = min(len, scsi_bufflen(srb)); |
1217 | buffer = kmalloc(len, GFP_NOIO); | 1217 | buffer = kmalloc(len, GFP_NOIO); |
1218 | if (buffer == NULL) /* bloody hell! */ | 1218 | if (buffer == NULL) /* bloody hell! */ |
1219 | return USB_STOR_TRANSPORT_FAILED; | 1219 | return USB_STOR_TRANSPORT_FAILED; |
@@ -1222,10 +1222,10 @@ static int usbat_hp8200e_handle_read10(struct us_data *us, | |||
1222 | sector |= short_pack(data[7+5], data[7+4]); | 1222 | sector |= short_pack(data[7+5], data[7+4]); |
1223 | transferred = 0; | 1223 | transferred = 0; |
1224 | 1224 | ||
1225 | while (transferred != srb->request_bufflen) { | 1225 | while (transferred != scsi_bufflen(srb)) { |
1226 | 1226 | ||
1227 | if (len > srb->request_bufflen - transferred) | 1227 | if (len > scsi_bufflen(srb) - transferred) |
1228 | len = srb->request_bufflen - transferred; | 1228 | len = scsi_bufflen(srb) - transferred; |
1229 | 1229 | ||
1230 | data[3] = len&0xFF; /* (cylL) = expected length (L) */ | 1230 | data[3] = len&0xFF; /* (cylL) = expected length (L) */ |
1231 | data[4] = (len>>8)&0xFF; /* (cylH) = expected length (H) */ | 1231 | data[4] = (len>>8)&0xFF; /* (cylH) = expected length (H) */ |
@@ -1261,7 +1261,7 @@ static int usbat_hp8200e_handle_read10(struct us_data *us, | |||
1261 | transferred += len; | 1261 | transferred += len; |
1262 | sector += len / srb->transfersize; | 1262 | sector += len / srb->transfersize; |
1263 | 1263 | ||
1264 | } /* while transferred != srb->request_bufflen */ | 1264 | } /* while transferred != scsi_bufflen(srb) */ |
1265 | 1265 | ||
1266 | kfree(buffer); | 1266 | kfree(buffer); |
1267 | return result; | 1267 | return result; |
@@ -1429,9 +1429,8 @@ static int usbat_hp8200e_transport(struct scsi_cmnd *srb, struct us_data *us) | |||
1429 | unsigned char data[32]; | 1429 | unsigned char data[32]; |
1430 | unsigned int len; | 1430 | unsigned int len; |
1431 | int i; | 1431 | int i; |
1432 | char string[64]; | ||
1433 | 1432 | ||
1434 | len = srb->request_bufflen; | 1433 | len = scsi_bufflen(srb); |
1435 | 1434 | ||
1436 | /* Send A0 (ATA PACKET COMMAND). | 1435 | /* Send A0 (ATA PACKET COMMAND). |
1437 | Note: I guess we're never going to get any of the ATA | 1436 | Note: I guess we're never going to get any of the ATA |
@@ -1472,8 +1471,8 @@ static int usbat_hp8200e_transport(struct scsi_cmnd *srb, struct us_data *us) | |||
1472 | USBAT_ATA_DATA, USBAT_ATA_STATUS, 0xFD, | 1471 | USBAT_ATA_DATA, USBAT_ATA_STATUS, 0xFD, |
1473 | (USBAT_QUAL_FCQ | USBAT_QUAL_ALQ), | 1472 | (USBAT_QUAL_FCQ | USBAT_QUAL_ALQ), |
1474 | DMA_TO_DEVICE, | 1473 | DMA_TO_DEVICE, |
1475 | srb->request_buffer, | 1474 | scsi_sglist(srb), |
1476 | len, srb->use_sg, 10); | 1475 | len, scsi_sg_count(srb), 10); |
1477 | 1476 | ||
1478 | if (result == USB_STOR_TRANSPORT_GOOD) { | 1477 | if (result == USB_STOR_TRANSPORT_GOOD) { |
1479 | transferred += len; | 1478 | transferred += len; |
@@ -1540,23 +1539,8 @@ static int usbat_hp8200e_transport(struct scsi_cmnd *srb, struct us_data *us) | |||
1540 | len = *status; | 1539 | len = *status; |
1541 | 1540 | ||
1542 | 1541 | ||
1543 | result = usbat_read_block(us, srb->request_buffer, len, srb->use_sg); | 1542 | result = usbat_read_block(us, scsi_sglist(srb), len, |
1544 | 1543 | scsi_sg_count(srb)); | |
1545 | /* Debug-print the first 32 bytes of the transfer */ | ||
1546 | |||
1547 | if (!srb->use_sg) { | ||
1548 | string[0] = 0; | ||
1549 | for (i=0; i<len && i<32; i++) { | ||
1550 | sprintf(string+strlen(string), "%02X ", | ||
1551 | ((unsigned char *)srb->request_buffer)[i]); | ||
1552 | if ((i%16)==15) { | ||
1553 | US_DEBUGP("%s\n", string); | ||
1554 | string[0] = 0; | ||
1555 | } | ||
1556 | } | ||
1557 | if (string[0]!=0) | ||
1558 | US_DEBUGP("%s\n", string); | ||
1559 | } | ||
1560 | } | 1544 | } |
1561 | 1545 | ||
1562 | return result; | 1546 | return result; |