diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-16 16:29:58 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-16 16:29:58 -0400 |
commit | c223701cf6c706f42840631c1ca919a18e6e2800 (patch) | |
tree | 0ae93a4a36e874d5e1378e5e2d032a81e71350f7 /drivers/ide | |
parent | 9ff6f72f432364991d68e99cae72cb141c166e70 (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.c | 2 | ||||
-rw-r--r-- | drivers/ide/ide.c | 7 |
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; |