|
@@ -2395,7 +2395,7 @@ int ata_dev_configure(struct ata_device *dev)
|
|
|
cdb_intr_string = ", CDB intr";
|
|
|
}
|
|
|
|
|
|
- if (atapi_dmadir || atapi_id_dmadir(dev->id)) {
|
|
|
+ if (atapi_dmadir || (dev->horkage & ATA_HORKAGE_ATAPI_DMADIR) || atapi_id_dmadir(dev->id)) {
|
|
|
dev->flags |= ATA_DFLAG_DMADIR;
|
|
|
dma_dir_string = ", DMADIR";
|
|
|
}
|
|
@@ -6496,6 +6496,7 @@ static int __init ata_parse_force_one(char **cur,
|
|
|
{ "nosrst", .lflags = ATA_LFLAG_NO_SRST },
|
|
|
{ "norst", .lflags = ATA_LFLAG_NO_HRST | ATA_LFLAG_NO_SRST },
|
|
|
{ "rstonce", .lflags = ATA_LFLAG_RST_ONCE },
|
|
|
+ { "atapi_dmadir", .horkage_on = ATA_HORKAGE_ATAPI_DMADIR },
|
|
|
};
|
|
|
char *start = *cur, *p = *cur;
|
|
|
char *id, *val, *endp;
|