diff options
Diffstat (limited to 'drivers/usb/storage/sddr55.c')
-rw-r--r-- | drivers/usb/storage/sddr55.c | 86 |
1 files changed, 40 insertions, 46 deletions
diff --git a/drivers/usb/storage/sddr55.c b/drivers/usb/storage/sddr55.c index d278c5a99b7a..aacedef9667c 100644 --- a/drivers/usb/storage/sddr55.c +++ b/drivers/usb/storage/sddr55.c | |||
@@ -145,8 +145,7 @@ static int sddr55_status(struct us_data *us) | |||
145 | result = sddr55_bulk_transport(us, | 145 | result = sddr55_bulk_transport(us, |
146 | DMA_TO_DEVICE, command, 8); | 146 | DMA_TO_DEVICE, command, 8); |
147 | 147 | ||
148 | US_DEBUGP("Result for send_command in status %d\n", | 148 | usb_stor_dbg(us, "Result for send_command in status %d\n", result); |
149 | result); | ||
150 | 149 | ||
151 | if (result != USB_STOR_XFER_GOOD) { | 150 | if (result != USB_STOR_XFER_GOOD) { |
152 | set_sense_info (4, 0, 0); /* hardware error */ | 151 | set_sense_info (4, 0, 0); /* hardware error */ |
@@ -236,9 +235,8 @@ static int sddr55_read_data(struct us_data *us, | |||
236 | info->blocksize - page); | 235 | info->blocksize - page); |
237 | len = pages << info->pageshift; | 236 | len = pages << info->pageshift; |
238 | 237 | ||
239 | US_DEBUGP("Read %02X pages, from PBA %04X" | 238 | usb_stor_dbg(us, "Read %02X pages, from PBA %04X (LBA %04X) page %02X\n", |
240 | " (LBA %04X) page %02X\n", | 239 | pages, pba, lba, page); |
241 | pages, pba, lba, page); | ||
242 | 240 | ||
243 | if (pba == NOT_ALLOCATED) { | 241 | if (pba == NOT_ALLOCATED) { |
244 | /* no pba for this lba, fill with zeroes */ | 242 | /* no pba for this lba, fill with zeroes */ |
@@ -261,8 +259,8 @@ static int sddr55_read_data(struct us_data *us, | |||
261 | result = sddr55_bulk_transport(us, | 259 | result = sddr55_bulk_transport(us, |
262 | DMA_TO_DEVICE, command, 8); | 260 | DMA_TO_DEVICE, command, 8); |
263 | 261 | ||
264 | US_DEBUGP("Result for send_command in read_data %d\n", | 262 | usb_stor_dbg(us, "Result for send_command in read_data %d\n", |
265 | result); | 263 | result); |
266 | 264 | ||
267 | if (result != USB_STOR_XFER_GOOD) { | 265 | if (result != USB_STOR_XFER_GOOD) { |
268 | result = USB_STOR_TRANSPORT_ERROR; | 266 | result = USB_STOR_TRANSPORT_ERROR; |
@@ -368,9 +366,8 @@ static int sddr55_write_data(struct us_data *us, | |||
368 | usb_stor_access_xfer_buf(buffer, len, us->srb, | 366 | usb_stor_access_xfer_buf(buffer, len, us->srb, |
369 | &sg, &offset, FROM_XFER_BUF); | 367 | &sg, &offset, FROM_XFER_BUF); |
370 | 368 | ||
371 | US_DEBUGP("Write %02X pages, to PBA %04X" | 369 | usb_stor_dbg(us, "Write %02X pages, to PBA %04X (LBA %04X) page %02X\n", |
372 | " (LBA %04X) page %02X\n", | 370 | pages, pba, lba, page); |
373 | pages, pba, lba, page); | ||
374 | 371 | ||
375 | command[4] = 0; | 372 | command[4] = 0; |
376 | 373 | ||
@@ -384,7 +381,7 @@ static int sddr55_write_data(struct us_data *us, | |||
384 | /* set pba to first block in zone lba is in */ | 381 | /* set pba to first block in zone lba is in */ |
385 | pba = (lba / 1000) * 1024; | 382 | pba = (lba / 1000) * 1024; |
386 | 383 | ||
387 | US_DEBUGP("No PBA for LBA %04X\n",lba); | 384 | usb_stor_dbg(us, "No PBA for LBA %04X\n", lba); |
388 | 385 | ||
389 | if (max_pba > 1024) | 386 | if (max_pba > 1024) |
390 | max_pba = 1024; | 387 | max_pba = 1024; |
@@ -407,14 +404,15 @@ static int sddr55_write_data(struct us_data *us, | |||
407 | 404 | ||
408 | if (pba == -1) { | 405 | if (pba == -1) { |
409 | /* oh dear */ | 406 | /* oh dear */ |
410 | US_DEBUGP("Couldn't find unallocated block\n"); | 407 | usb_stor_dbg(us, "Couldn't find unallocated block\n"); |
411 | 408 | ||
412 | set_sense_info (3, 0x31, 0); /* medium error */ | 409 | set_sense_info (3, 0x31, 0); /* medium error */ |
413 | result = USB_STOR_TRANSPORT_FAILED; | 410 | result = USB_STOR_TRANSPORT_FAILED; |
414 | goto leave; | 411 | goto leave; |
415 | } | 412 | } |
416 | 413 | ||
417 | US_DEBUGP("Allocating PBA %04X for LBA %04X\n", pba, lba); | 414 | usb_stor_dbg(us, "Allocating PBA %04X for LBA %04X\n", |
415 | pba, lba); | ||
418 | 416 | ||
419 | /* set writing to unallocated block flag */ | 417 | /* set writing to unallocated block flag */ |
420 | command[4] = 0x40; | 418 | command[4] = 0x40; |
@@ -439,8 +437,8 @@ static int sddr55_write_data(struct us_data *us, | |||
439 | DMA_TO_DEVICE, command, 8); | 437 | DMA_TO_DEVICE, command, 8); |
440 | 438 | ||
441 | if (result != USB_STOR_XFER_GOOD) { | 439 | if (result != USB_STOR_XFER_GOOD) { |
442 | US_DEBUGP("Result for send_command in write_data %d\n", | 440 | usb_stor_dbg(us, "Result for send_command in write_data %d\n", |
443 | result); | 441 | result); |
444 | 442 | ||
445 | /* set_sense_info is superfluous here? */ | 443 | /* set_sense_info is superfluous here? */ |
446 | set_sense_info (3, 0x3, 0);/* peripheral write error */ | 444 | set_sense_info (3, 0x3, 0);/* peripheral write error */ |
@@ -453,8 +451,8 @@ static int sddr55_write_data(struct us_data *us, | |||
453 | DMA_TO_DEVICE, buffer, len); | 451 | DMA_TO_DEVICE, buffer, len); |
454 | 452 | ||
455 | if (result != USB_STOR_XFER_GOOD) { | 453 | if (result != USB_STOR_XFER_GOOD) { |
456 | US_DEBUGP("Result for send_data in write_data %d\n", | 454 | usb_stor_dbg(us, "Result for send_data in write_data %d\n", |
457 | result); | 455 | result); |
458 | 456 | ||
459 | /* set_sense_info is superfluous here? */ | 457 | /* set_sense_info is superfluous here? */ |
460 | set_sense_info (3, 0x3, 0);/* peripheral write error */ | 458 | set_sense_info (3, 0x3, 0);/* peripheral write error */ |
@@ -466,8 +464,8 @@ static int sddr55_write_data(struct us_data *us, | |||
466 | result = sddr55_bulk_transport(us, DMA_FROM_DEVICE, status, 6); | 464 | result = sddr55_bulk_transport(us, DMA_FROM_DEVICE, status, 6); |
467 | 465 | ||
468 | if (result != USB_STOR_XFER_GOOD) { | 466 | if (result != USB_STOR_XFER_GOOD) { |
469 | US_DEBUGP("Result for get_status in write_data %d\n", | 467 | usb_stor_dbg(us, "Result for get_status in write_data %d\n", |
470 | result); | 468 | result); |
471 | 469 | ||
472 | /* set_sense_info is superfluous here? */ | 470 | /* set_sense_info is superfluous here? */ |
473 | set_sense_info (3, 0x3, 0);/* peripheral write error */ | 471 | set_sense_info (3, 0x3, 0);/* peripheral write error */ |
@@ -487,8 +485,8 @@ static int sddr55_write_data(struct us_data *us, | |||
487 | goto leave; | 485 | goto leave; |
488 | } | 486 | } |
489 | 487 | ||
490 | US_DEBUGP("Updating maps for LBA %04X: old PBA %04X, new PBA %04X\n", | 488 | usb_stor_dbg(us, "Updating maps for LBA %04X: old PBA %04X, new PBA %04X\n", |
491 | lba, pba, new_pba); | 489 | lba, pba, new_pba); |
492 | 490 | ||
493 | /* update the lba<->pba maps, note new_pba might be the same as pba */ | 491 | /* update the lba<->pba maps, note new_pba might be the same as pba */ |
494 | info->lba_to_pba[lba] = new_pba; | 492 | info->lba_to_pba[lba] = new_pba; |
@@ -531,8 +529,8 @@ static int sddr55_read_deviceID(struct us_data *us, | |||
531 | command[7] = 0x84; | 529 | command[7] = 0x84; |
532 | result = sddr55_bulk_transport(us, DMA_TO_DEVICE, command, 8); | 530 | result = sddr55_bulk_transport(us, DMA_TO_DEVICE, command, 8); |
533 | 531 | ||
534 | US_DEBUGP("Result of send_control for device ID is %d\n", | 532 | usb_stor_dbg(us, "Result of send_control for device ID is %d\n", |
535 | result); | 533 | result); |
536 | 534 | ||
537 | if (result != USB_STOR_XFER_GOOD) | 535 | if (result != USB_STOR_XFER_GOOD) |
538 | return USB_STOR_TRANSPORT_ERROR; | 536 | return USB_STOR_TRANSPORT_ERROR; |
@@ -568,20 +566,19 @@ static unsigned long sddr55_get_capacity(struct us_data *us) { | |||
568 | int result; | 566 | int result; |
569 | struct sddr55_card_info *info = (struct sddr55_card_info *)us->extra; | 567 | struct sddr55_card_info *info = (struct sddr55_card_info *)us->extra; |
570 | 568 | ||
571 | US_DEBUGP("Reading capacity...\n"); | 569 | usb_stor_dbg(us, "Reading capacity...\n"); |
572 | 570 | ||
573 | result = sddr55_read_deviceID(us, | 571 | result = sddr55_read_deviceID(us, |
574 | &manufacturerID, | 572 | &manufacturerID, |
575 | &deviceID); | 573 | &deviceID); |
576 | 574 | ||
577 | US_DEBUGP("Result of read_deviceID is %d\n", | 575 | usb_stor_dbg(us, "Result of read_deviceID is %d\n", result); |
578 | result); | ||
579 | 576 | ||
580 | if (result != USB_STOR_XFER_GOOD) | 577 | if (result != USB_STOR_XFER_GOOD) |
581 | return 0; | 578 | return 0; |
582 | 579 | ||
583 | US_DEBUGP("Device ID = %02X\n", deviceID); | 580 | usb_stor_dbg(us, "Device ID = %02X\n", deviceID); |
584 | US_DEBUGP("Manuf ID = %02X\n", manufacturerID); | 581 | usb_stor_dbg(us, "Manuf ID = %02X\n", manufacturerID); |
585 | 582 | ||
586 | info->pageshift = 9; | 583 | info->pageshift = 9; |
587 | info->smallpageshift = 0; | 584 | info->smallpageshift = 0; |
@@ -753,7 +750,7 @@ static int sddr55_read_map(struct us_data *us) { | |||
753 | } | 750 | } |
754 | 751 | ||
755 | if (lba<0x10 || (lba>=0x3E0 && lba<0x3EF)) | 752 | if (lba<0x10 || (lba>=0x3E0 && lba<0x3EF)) |
756 | US_DEBUGP("LBA %04X <-> PBA %04X\n", lba, i); | 753 | usb_stor_dbg(us, "LBA %04X <-> PBA %04X\n", lba, i); |
757 | 754 | ||
758 | info->lba_to_pba[lba + zone * 1000] = i; | 755 | info->lba_to_pba[lba + zone * 1000] = i; |
759 | } | 756 | } |
@@ -808,7 +805,10 @@ static int sddr55_transport(struct scsi_cmnd *srb, struct us_data *us) | |||
808 | info = (struct sddr55_card_info *)(us->extra); | 805 | info = (struct sddr55_card_info *)(us->extra); |
809 | 806 | ||
810 | if (srb->cmnd[0] == REQUEST_SENSE) { | 807 | if (srb->cmnd[0] == REQUEST_SENSE) { |
811 | US_DEBUGP("SDDR55: request sense %02x/%02x/%02x\n", info->sense_data[2], info->sense_data[12], info->sense_data[13]); | 808 | usb_stor_dbg(us, "request sense %02x/%02x/%02x\n", |
809 | info->sense_data[2], | ||
810 | info->sense_data[12], | ||
811 | info->sense_data[13]); | ||
812 | 812 | ||
813 | memcpy (ptr, info->sense_data, sizeof info->sense_data); | 813 | memcpy (ptr, info->sense_data, sizeof info->sense_data); |
814 | ptr[0] = 0x70; | 814 | ptr[0] = 0x70; |
@@ -892,13 +892,11 @@ static int sddr55_transport(struct scsi_cmnd *srb, struct us_data *us) | |||
892 | usb_stor_set_xfer_buf(ptr, sizeof(mode_page_01), srb); | 892 | usb_stor_set_xfer_buf(ptr, sizeof(mode_page_01), srb); |
893 | 893 | ||
894 | if ( (srb->cmnd[2] & 0x3F) == 0x01 ) { | 894 | if ( (srb->cmnd[2] & 0x3F) == 0x01 ) { |
895 | US_DEBUGP( | 895 | usb_stor_dbg(us, "Dummy up request for mode page 1\n"); |
896 | "SDDR55: Dummy up request for mode page 1\n"); | ||
897 | return USB_STOR_TRANSPORT_GOOD; | 896 | return USB_STOR_TRANSPORT_GOOD; |
898 | 897 | ||
899 | } else if ( (srb->cmnd[2] & 0x3F) == 0x3F ) { | 898 | } else if ( (srb->cmnd[2] & 0x3F) == 0x3F ) { |
900 | US_DEBUGP( | 899 | usb_stor_dbg(us, "Dummy up request for all mode pages\n"); |
901 | "SDDR55: Dummy up request for all mode pages\n"); | ||
902 | return USB_STOR_TRANSPORT_GOOD; | 900 | return USB_STOR_TRANSPORT_GOOD; |
903 | } | 901 | } |
904 | 902 | ||
@@ -908,10 +906,8 @@ static int sddr55_transport(struct scsi_cmnd *srb, struct us_data *us) | |||
908 | 906 | ||
909 | if (srb->cmnd[0] == ALLOW_MEDIUM_REMOVAL) { | 907 | if (srb->cmnd[0] == ALLOW_MEDIUM_REMOVAL) { |
910 | 908 | ||
911 | US_DEBUGP( | 909 | usb_stor_dbg(us, "%s medium removal. Not that I can do anything about it...\n", |
912 | "SDDR55: %s medium removal. Not that I can do" | 910 | (srb->cmnd[4]&0x03) ? "Prevent" : "Allow"); |
913 | " anything about it...\n", | ||
914 | (srb->cmnd[4]&0x03) ? "Prevent" : "Allow"); | ||
915 | 911 | ||
916 | return USB_STOR_TRANSPORT_GOOD; | 912 | return USB_STOR_TRANSPORT_GOOD; |
917 | 913 | ||
@@ -935,8 +931,8 @@ static int sddr55_transport(struct scsi_cmnd *srb, struct us_data *us) | |||
935 | 931 | ||
936 | if (lba >= info->max_log_blks) { | 932 | if (lba >= info->max_log_blks) { |
937 | 933 | ||
938 | US_DEBUGP("Error: Requested LBA %04X exceeds maximum " | 934 | usb_stor_dbg(us, "Error: Requested LBA %04X exceeds maximum block %04X\n", |
939 | "block %04X\n", lba, info->max_log_blks-1); | 935 | lba, info->max_log_blks - 1); |
940 | 936 | ||
941 | set_sense_info (5, 0x24, 0); /* invalid field in command */ | 937 | set_sense_info (5, 0x24, 0); /* invalid field in command */ |
942 | 938 | ||
@@ -946,15 +942,13 @@ static int sddr55_transport(struct scsi_cmnd *srb, struct us_data *us) | |||
946 | pba = info->lba_to_pba[lba]; | 942 | pba = info->lba_to_pba[lba]; |
947 | 943 | ||
948 | if (srb->cmnd[0] == WRITE_10) { | 944 | if (srb->cmnd[0] == WRITE_10) { |
949 | US_DEBUGP("WRITE_10: write block %04X (LBA %04X) page %01X" | 945 | usb_stor_dbg(us, "WRITE_10: write block %04X (LBA %04X) page %01X pages %d\n", |
950 | " pages %d\n", | 946 | pba, lba, page, pages); |
951 | pba, lba, page, pages); | ||
952 | 947 | ||
953 | return sddr55_write_data(us, lba, page, pages); | 948 | return sddr55_write_data(us, lba, page, pages); |
954 | } else { | 949 | } else { |
955 | US_DEBUGP("READ_10: read block %04X (LBA %04X) page %01X" | 950 | usb_stor_dbg(us, "READ_10: read block %04X (LBA %04X) page %01X pages %d\n", |
956 | " pages %d\n", | 951 | pba, lba, page, pages); |
957 | pba, lba, page, pages); | ||
958 | 952 | ||
959 | return sddr55_read_data(us, lba, page, pages); | 953 | return sddr55_read_data(us, lba, page, pages); |
960 | } | 954 | } |