From 88ab3068cfed6620c1522b687bbb1d2ea5a2c962 Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 4 Apr 2006 10:57:18 +0800 Subject: [PATCH] --- yaml --- r: 29243 b: refs/heads/master c: 95de719adc94392a95c3c4d0a2d6b8b1ea39d236 h: refs/heads/master i: 29241: d62d825ca8dbae2b34081cf846c6c16bd551624d 29239: 7c2012923cd800dd49a3effec3e4009fa456c00b v: v3 --- [refs] | 2 +- trunk/drivers/scsi/libata-core.c | 4 ++++ trunk/drivers/scsi/libata-scsi.c | 6 ++---- trunk/drivers/scsi/libata.h | 1 + trunk/include/linux/libata.h | 1 - 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index ceb0d159e414..f9aef03eb173 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c16226a1c75042bfdc50bd2921d5919f6267ba51 +refs/heads/master: 95de719adc94392a95c3c4d0a2d6b8b1ea39d236 diff --git a/trunk/drivers/scsi/libata-core.c b/trunk/drivers/scsi/libata-core.c index 966be3034bf0..3387fe35c54f 100644 --- a/trunk/drivers/scsi/libata-core.c +++ b/trunk/drivers/scsi/libata-core.c @@ -76,6 +76,10 @@ int atapi_enabled = 1; module_param(atapi_enabled, int, 0444); MODULE_PARM_DESC(atapi_enabled, "Enable discovery of ATAPI devices (0=off, 1=on)"); +int atapi_dmadir = 0; +module_param(atapi_dmadir, int, 0444); +MODULE_PARM_DESC(atapi_dmadir, "Enable ATAPI DMADIR bridge support (0=off, 1=on)"); + int libata_fua = 0; module_param_named(fua, libata_fua, int, 0444); MODULE_PARM_DESC(fua, "FUA support (0=off, 1=on)"); diff --git a/trunk/drivers/scsi/libata-scsi.c b/trunk/drivers/scsi/libata-scsi.c index 745fc263feeb..c9c001490293 100644 --- a/trunk/drivers/scsi/libata-scsi.c +++ b/trunk/drivers/scsi/libata-scsi.c @@ -2163,11 +2163,9 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc, const u8 *scsicmd) qc->tf.protocol = ATA_PROT_ATAPI_DMA; qc->tf.feature |= ATAPI_PKT_DMA; -#ifdef ATAPI_ENABLE_DMADIR - /* some SATA bridges need us to indicate data xfer direction */ - if (cmd->sc_data_direction != DMA_TO_DEVICE) + if (atapi_dmadir && (cmd->sc_data_direction != DMA_TO_DEVICE)) + /* some SATA bridges need us to indicate data xfer direction */ qc->tf.feature |= ATAPI_DMADIR; -#endif } qc->nbytes = cmd->bufflen; diff --git a/trunk/drivers/scsi/libata.h b/trunk/drivers/scsi/libata.h index e3bd1ddb5387..652c08e3808e 100644 --- a/trunk/drivers/scsi/libata.h +++ b/trunk/drivers/scsi/libata.h @@ -41,6 +41,7 @@ struct ata_scsi_args { /* libata-core.c */ extern int atapi_enabled; +extern int atapi_dmadir; extern int libata_fua; extern struct ata_queued_cmd *ata_qc_new_init(struct ata_port *ap, struct ata_device *dev); diff --git a/trunk/include/linux/libata.h b/trunk/include/linux/libata.h index 75bdee09c307..03231cb6b406 100644 --- a/trunk/include/linux/libata.h +++ b/trunk/include/linux/libata.h @@ -44,7 +44,6 @@ #undef ATA_NDEBUG /* define to disable quick runtime checks */ #undef ATA_ENABLE_PATA /* define to enable PATA support in some * low-level drivers */ -#undef ATAPI_ENABLE_DMADIR /* enables ATAPI DMADIR bridge support */ /* note: prints function name for you */