|
Lines 3836-3841
static const struct ata_blacklist_entry
Link Here
|
| 3836 |
|
3836 |
|
| 3837 |
/* Weird ATAPI devices */ |
3837 |
/* Weird ATAPI devices */ |
| 3838 |
{ "TORiSAN DVD-ROM DRD-N216", NULL, ATA_HORKAGE_MAX_SEC_128 }, |
3838 |
{ "TORiSAN DVD-ROM DRD-N216", NULL, ATA_HORKAGE_MAX_SEC_128 }, |
|
|
3839 |
{ "TSSTcorpCD/DVDW SH-S162L", NULL, ATA_HORKAGE_DMA_RW_ONLY }, |
| 3839 |
|
3840 |
|
| 3840 |
/* Devices we expect to fail diagnostics */ |
3841 |
/* Devices we expect to fail diagnostics */ |
| 3841 |
|
3842 |
|
|
Lines 4252-4257
int ata_check_atapi_dma(struct ata_queue
Link Here
|
| 4252 |
{ |
4253 |
{ |
| 4253 |
struct ata_port *ap = qc->ap; |
4254 |
struct ata_port *ap = qc->ap; |
| 4254 |
|
4255 |
|
|
|
4256 |
/* some drives can only do ATAPI DMA on read/write */ |
| 4257 |
if (unlikely(qc->dev->horkage & ATA_HORKAGE_DMA_RW_ONLY)) { |
| 4258 |
switch (qc->cdb[0]) { |
| 4259 |
case READ_10: |
| 4260 |
case WRITE_10: |
| 4261 |
case READ_12: |
| 4262 |
case WRITE_12: |
| 4263 |
case READ_6: |
| 4264 |
case WRITE_6: |
| 4265 |
/* atapi dma maybe ok */ |
| 4266 |
break; |
| 4267 |
default: |
| 4268 |
/* turn off atapi dma */ |
| 4269 |
return 1; |
| 4270 |
} |
| 4271 |
} |
| 4272 |
|
| 4255 |
/* Don't allow DMA if it isn't multiple of 16 bytes. Quite a |
4273 |
/* Don't allow DMA if it isn't multiple of 16 bytes. Quite a |
| 4256 |
* few ATAPI devices choke on such DMA requests. |
4274 |
* few ATAPI devices choke on such DMA requests. |
| 4257 |
*/ |
4275 |
*/ |