diff options
Diffstat (limited to 'drivers/ide/ide-acpi.c')
| -rw-r--r-- | drivers/ide/ide-acpi.c | 37 |
1 files changed, 7 insertions, 30 deletions
diff --git a/drivers/ide/ide-acpi.c b/drivers/ide/ide-acpi.c index 77f79d26b264..c509c9916464 100644 --- a/drivers/ide/ide-acpi.c +++ b/drivers/ide/ide-acpi.c | |||
| @@ -92,6 +92,11 @@ int ide_acpi_init(void) | |||
| 92 | return 0; | 92 | return 0; |
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | bool ide_port_acpi(ide_hwif_t *hwif) | ||
| 96 | { | ||
| 97 | return ide_noacpi == 0 && hwif->acpidata; | ||
| 98 | } | ||
| 99 | |||
| 95 | /** | 100 | /** |
| 96 | * ide_get_dev_handle - finds acpi_handle and PCI device.function | 101 | * ide_get_dev_handle - finds acpi_handle and PCI device.function |
| 97 | * @dev: device to locate | 102 | * @dev: device to locate |
| @@ -352,9 +357,6 @@ int ide_acpi_exec_tfs(ide_drive_t *drive) | |||
| 352 | unsigned long gtf_address; | 357 | unsigned long gtf_address; |
| 353 | unsigned long obj_loc; | 358 | unsigned long obj_loc; |
| 354 | 359 | ||
| 355 | if (ide_noacpi) | ||
| 356 | return 0; | ||
| 357 | |||
| 358 | DEBPRINT("call get_GTF, drive=%s port=%d\n", drive->name, drive->dn); | 360 | DEBPRINT("call get_GTF, drive=%s port=%d\n", drive->name, drive->dn); |
| 359 | 361 | ||
| 360 | ret = do_drive_get_GTF(drive, >f_length, >f_address, &obj_loc); | 362 | ret = do_drive_get_GTF(drive, >f_length, >f_address, &obj_loc); |
| @@ -389,16 +391,6 @@ void ide_acpi_get_timing(ide_hwif_t *hwif) | |||
| 389 | struct acpi_buffer output; | 391 | struct acpi_buffer output; |
| 390 | union acpi_object *out_obj; | 392 | union acpi_object *out_obj; |
| 391 | 393 | ||
| 392 | if (ide_noacpi) | ||
| 393 | return; | ||
| 394 | |||
| 395 | DEBPRINT("ENTER:\n"); | ||
| 396 | |||
| 397 | if (!hwif->acpidata) { | ||
| 398 | DEBPRINT("no ACPI data for %s\n", hwif->name); | ||
| 399 | return; | ||
| 400 | } | ||
| 401 | |||
| 402 | /* Setting up output buffer for _GTM */ | 394 | /* Setting up output buffer for _GTM */ |
| 403 | output.length = ACPI_ALLOCATE_BUFFER; | 395 | output.length = ACPI_ALLOCATE_BUFFER; |
| 404 | output.pointer = NULL; /* ACPI-CA sets this; save/free it later */ | 396 | output.pointer = NULL; /* ACPI-CA sets this; save/free it later */ |
| @@ -479,16 +471,6 @@ void ide_acpi_push_timing(ide_hwif_t *hwif) | |||
| 479 | struct ide_acpi_drive_link *master = &hwif->acpidata->master; | 471 | struct ide_acpi_drive_link *master = &hwif->acpidata->master; |
| 480 | struct ide_acpi_drive_link *slave = &hwif->acpidata->slave; | 472 | struct ide_acpi_drive_link *slave = &hwif->acpidata->slave; |
| 481 | 473 | ||
| 482 | if (ide_noacpi) | ||
| 483 | return; | ||
| 484 | |||
| 485 | DEBPRINT("ENTER:\n"); | ||
| 486 | |||
| 487 | if (!hwif->acpidata) { | ||
| 488 | DEBPRINT("no ACPI data for %s\n", hwif->name); | ||
| 489 | return; | ||
| 490 | } | ||
| 491 | |||
| 492 | /* Give the GTM buffer + drive Identify data to the channel via the | 474 | /* Give the GTM buffer + drive Identify data to the channel via the |
| 493 | * _STM method: */ | 475 | * _STM method: */ |
| 494 | /* setup input parameters buffer for _STM */ | 476 | /* setup input parameters buffer for _STM */ |
| @@ -527,16 +509,11 @@ void ide_acpi_set_state(ide_hwif_t *hwif, int on) | |||
| 527 | ide_drive_t *drive; | 509 | ide_drive_t *drive; |
| 528 | int i; | 510 | int i; |
| 529 | 511 | ||
| 530 | if (ide_noacpi || ide_noacpi_psx) | 512 | if (ide_noacpi_psx) |
| 531 | return; | 513 | return; |
| 532 | 514 | ||
| 533 | DEBPRINT("ENTER:\n"); | 515 | DEBPRINT("ENTER:\n"); |
| 534 | 516 | ||
| 535 | if (!hwif->acpidata) { | ||
| 536 | DEBPRINT("no ACPI data for %s\n", hwif->name); | ||
| 537 | return; | ||
| 538 | } | ||
| 539 | |||
| 540 | /* channel first and then drives for power on and verse versa for power off */ | 517 | /* channel first and then drives for power on and verse versa for power off */ |
| 541 | if (on) | 518 | if (on) |
| 542 | acpi_bus_set_power(hwif->acpidata->obj_handle, ACPI_STATE_D0); | 519 | acpi_bus_set_power(hwif->acpidata->obj_handle, ACPI_STATE_D0); |
| @@ -616,7 +593,7 @@ void ide_acpi_port_init_devices(ide_hwif_t *hwif) | |||
| 616 | drive->name, err); | 593 | drive->name, err); |
| 617 | } | 594 | } |
| 618 | 595 | ||
| 619 | if (!ide_acpionboot) { | 596 | if (ide_noacpi || ide_acpionboot == 0) { |
| 620 | DEBPRINT("ACPI methods disabled on boot\n"); | 597 | DEBPRINT("ACPI methods disabled on boot\n"); |
| 621 | return; | 598 | return; |
| 622 | } | 599 | } |
