diff options
-rw-r--r-- | drivers/scsi/libata-core.c | 1 | ||||
-rw-r--r-- | drivers/scsi/libata-scsi.c | 7 | ||||
-rw-r--r-- | include/linux/ata.h | 1 |
3 files changed, 4 insertions, 5 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index a28569d0081d..7a5392c8ec6f 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c | |||
@@ -3909,7 +3909,6 @@ static inline int ata_should_dma_map(struct ata_queued_cmd *qc) | |||
3909 | 3909 | ||
3910 | case ATA_PROT_ATAPI: | 3910 | case ATA_PROT_ATAPI: |
3911 | case ATA_PROT_PIO: | 3911 | case ATA_PROT_PIO: |
3912 | case ATA_PROT_PIO_MULT: | ||
3913 | if (ap->flags & ATA_FLAG_PIO_DMA) | 3912 | if (ap->flags & ATA_FLAG_PIO_DMA) |
3914 | return 1; | 3913 | return 1; |
3915 | 3914 | ||
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c index 3aaa74cbef1d..cebf9b31b516 100644 --- a/drivers/scsi/libata-scsi.c +++ b/drivers/scsi/libata-scsi.c | |||
@@ -2379,9 +2379,6 @@ ata_scsi_map_proto(u8 byte1) | |||
2379 | 2379 | ||
2380 | case 4: /* PIO Data-in */ | 2380 | case 4: /* PIO Data-in */ |
2381 | case 5: /* PIO Data-out */ | 2381 | case 5: /* PIO Data-out */ |
2382 | if (byte1 & 0xe0) { | ||
2383 | return ATA_PROT_PIO_MULT; | ||
2384 | } | ||
2385 | return ATA_PROT_PIO; | 2382 | return ATA_PROT_PIO; |
2386 | 2383 | ||
2387 | case 10: /* Device Reset */ | 2384 | case 10: /* Device Reset */ |
@@ -2420,6 +2417,10 @@ ata_scsi_pass_thru(struct ata_queued_cmd *qc, const u8 *scsicmd) | |||
2420 | if ((tf->protocol = ata_scsi_map_proto(scsicmd[1])) == ATA_PROT_UNKNOWN) | 2417 | if ((tf->protocol = ata_scsi_map_proto(scsicmd[1])) == ATA_PROT_UNKNOWN) |
2421 | goto invalid_fld; | 2418 | goto invalid_fld; |
2422 | 2419 | ||
2420 | if (scsicmd[1] & 0xe0) | ||
2421 | /* PIO multi not supported yet */ | ||
2422 | goto invalid_fld; | ||
2423 | |||
2423 | /* | 2424 | /* |
2424 | * 12 and 16 byte CDBs use different offsets to | 2425 | * 12 and 16 byte CDBs use different offsets to |
2425 | * provide the various register values. | 2426 | * provide the various register values. |
diff --git a/include/linux/ata.h b/include/linux/ata.h index b02a16c435e7..6b188b3b61dd 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
@@ -204,7 +204,6 @@ enum ata_tf_protocols { | |||
204 | ATA_PROT_UNKNOWN, /* unknown/invalid */ | 204 | ATA_PROT_UNKNOWN, /* unknown/invalid */ |
205 | ATA_PROT_NODATA, /* no data */ | 205 | ATA_PROT_NODATA, /* no data */ |
206 | ATA_PROT_PIO, /* PIO single sector */ | 206 | ATA_PROT_PIO, /* PIO single sector */ |
207 | ATA_PROT_PIO_MULT, /* PIO multiple sector */ | ||
208 | ATA_PROT_DMA, /* DMA */ | 207 | ATA_PROT_DMA, /* DMA */ |
209 | ATA_PROT_ATAPI, /* packet command, PIO data xfer*/ | 208 | ATA_PROT_ATAPI, /* packet command, PIO data xfer*/ |
210 | ATA_PROT_ATAPI_NODATA, /* packet command, no data */ | 209 | ATA_PROT_ATAPI_NODATA, /* packet command, no data */ |