aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-10-16 16:29:58 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-10-16 16:29:58 -0400
commitc223701cf6c706f42840631c1ca919a18e6e2800 (patch)
tree0ae93a4a36e874d5e1378e5e2d032a81e71350f7 /drivers/ide
parent9ff6f72f432364991d68e99cae72cb141c166e70 (diff)
ide: add "hdx=nodma" kernel parameter
* Add "hdx=nodma" option allowing user to disallow DMA for a given device. * Obsolete "ide=nodma" option. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide')
-rw-r--r--drivers/ide/ide-dma.c2
-rw-r--r--drivers/ide/ide.c7
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c
index 45fa1ef29d2c..bc57ce6bf0b3 100644
--- a/drivers/ide/ide-dma.c
+++ b/drivers/ide/ide-dma.c
@@ -759,7 +759,7 @@ static int ide_tune_dma(ide_drive_t *drive)
759{ 759{
760 u8 speed; 760 u8 speed;
761 761
762 if (noautodma || (drive->id->capability & 1) == 0) 762 if (noautodma || drive->nodma || (drive->id->capability & 1) == 0)
763 return 0; 763 return 0;
764 764
765 /* consult the list of known "bad" drives */ 765 /* consult the list of known "bad" drives */
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 27c4fe250701..5b090662683e 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -1272,7 +1272,7 @@ static int __init ide_setup(char *s)
1272 if (!strcmp(s, "ide=nodma")) { 1272 if (!strcmp(s, "ide=nodma")) {
1273 printk(" : Prevented DMA\n"); 1273 printk(" : Prevented DMA\n");
1274 noautodma = 1; 1274 noautodma = 1;
1275 return 1; 1275 goto obsolete_option;
1276 } 1276 }
1277 1277
1278#ifdef CONFIG_IDEPCI_PCIBUS_ORDER 1278#ifdef CONFIG_IDEPCI_PCIBUS_ORDER
@@ -1306,7 +1306,7 @@ static int __init ide_setup(char *s)
1306 */ 1306 */
1307 if (s[0] == 'h' && s[1] == 'd' && s[2] >= 'a' && s[2] <= max_drive) { 1307 if (s[0] == 'h' && s[1] == 'd' && s[2] >= 'a' && s[2] <= max_drive) {
1308 const char *hd_words[] = { 1308 const char *hd_words[] = {
1309 "none", "noprobe", "nowerr", "cdrom", "minus5", 1309 "none", "noprobe", "nowerr", "cdrom", "nodma",
1310 "autotune", "noautotune", "minus8", "swapdata", "bswap", 1310 "autotune", "noautotune", "minus8", "swapdata", "bswap",
1311 "noflush", "remap", "remap63", "scsi", NULL }; 1311 "noflush", "remap", "remap63", "scsi", NULL };
1312 unit = s[2] - 'a'; 1312 unit = s[2] - 'a';
@@ -1334,6 +1334,9 @@ static int __init ide_setup(char *s)
1334 drive->ready_stat = 0; 1334 drive->ready_stat = 0;
1335 hwif->noprobe = 0; 1335 hwif->noprobe = 0;
1336 goto done; 1336 goto done;
1337 case -5: /* nodma */
1338 drive->nodma = 1;
1339 goto done;
1337 case -6: /* "autotune" */ 1340 case -6: /* "autotune" */
1338 drive->autotune = IDE_TUNE_AUTO; 1341 drive->autotune = IDE_TUNE_AUTO;
1339 goto obsolete_option; 1342 goto obsolete_option;