diff options
-rw-r--r-- | drivers/ide/ide-acpi.c | 12 | ||||
-rw-r--r-- | drivers/ide/ide-probe.c | 2 | ||||
-rw-r--r-- | drivers/ide/ide.c | 2 | ||||
-rw-r--r-- | include/linux/ide.h | 6 |
4 files changed, 10 insertions, 12 deletions
diff --git a/drivers/ide/ide-acpi.c b/drivers/ide/ide-acpi.c index 8d6d31fcbfba..ba5932d7b1bb 100644 --- a/drivers/ide/ide-acpi.c +++ b/drivers/ide/ide-acpi.c | |||
@@ -89,12 +89,8 @@ static const struct dmi_system_id ide_acpi_dmi_table[] = { | |||
89 | { } /* terminate list */ | 89 | { } /* terminate list */ |
90 | }; | 90 | }; |
91 | 91 | ||
92 | static int ide_acpi_blacklist(void) | 92 | int ide_acpi_init(void) |
93 | { | 93 | { |
94 | static int done; | ||
95 | if (done) | ||
96 | return 0; | ||
97 | done = 1; | ||
98 | dmi_check_system(ide_acpi_dmi_table); | 94 | dmi_check_system(ide_acpi_dmi_table); |
99 | return 0; | 95 | return 0; |
100 | } | 96 | } |
@@ -624,7 +620,7 @@ void ide_acpi_set_state(ide_hwif_t *hwif, int on) | |||
624 | } | 620 | } |
625 | 621 | ||
626 | /** | 622 | /** |
627 | * ide_acpi_init - initialize the ACPI link for an IDE interface | 623 | * ide_acpi_init_port - initialize the ACPI link for an IDE interface |
628 | * @hwif: target IDE interface (channel) | 624 | * @hwif: target IDE interface (channel) |
629 | * | 625 | * |
630 | * The ACPI spec is not quite clear when the drive identify buffer | 626 | * The ACPI spec is not quite clear when the drive identify buffer |
@@ -634,10 +630,8 @@ void ide_acpi_set_state(ide_hwif_t *hwif, int on) | |||
634 | * So we get the information during startup; but this means that | 630 | * So we get the information during startup; but this means that |
635 | * any changes during run-time will be lost after resume. | 631 | * any changes during run-time will be lost after resume. |
636 | */ | 632 | */ |
637 | void ide_acpi_init(ide_hwif_t *hwif) | 633 | void ide_acpi_init_port(ide_hwif_t *hwif) |
638 | { | 634 | { |
639 | ide_acpi_blacklist(); | ||
640 | |||
641 | hwif->acpidata = kzalloc(sizeof(struct ide_acpi_hwif_link), GFP_KERNEL); | 635 | hwif->acpidata = kzalloc(sizeof(struct ide_acpi_hwif_link), GFP_KERNEL); |
642 | if (!hwif->acpidata) | 636 | if (!hwif->acpidata) |
643 | return; | 637 | return; |
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index eb0a38cd83ce..a51ad2bd62b4 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -1543,7 +1543,7 @@ int ide_host_register(struct ide_host *host, const struct ide_port_info *d, | |||
1543 | 1543 | ||
1544 | j++; | 1544 | j++; |
1545 | 1545 | ||
1546 | ide_acpi_init(hwif); | 1546 | ide_acpi_init_port(hwif); |
1547 | 1547 | ||
1548 | if (hwif->present) | 1548 | if (hwif->present) |
1549 | ide_acpi_port_init_devices(hwif); | 1549 | ide_acpi_port_init_devices(hwif); |
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index 0920e3b0c962..c779aa24dbe6 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c | |||
@@ -527,6 +527,8 @@ static int __init ide_init(void) | |||
527 | goto out_port_class; | 527 | goto out_port_class; |
528 | } | 528 | } |
529 | 529 | ||
530 | ide_acpi_init(); | ||
531 | |||
530 | proc_ide_create(); | 532 | proc_ide_create(); |
531 | 533 | ||
532 | return 0; | 534 | return 0; |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 7ed395b4b891..6bb104f4e341 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -1484,17 +1484,19 @@ static inline void ide_release_dma_engine(ide_hwif_t *hwif) { ; } | |||
1484 | #endif /* CONFIG_BLK_DEV_IDEDMA */ | 1484 | #endif /* CONFIG_BLK_DEV_IDEDMA */ |
1485 | 1485 | ||
1486 | #ifdef CONFIG_BLK_DEV_IDEACPI | 1486 | #ifdef CONFIG_BLK_DEV_IDEACPI |
1487 | int ide_acpi_init(void); | ||
1487 | extern int ide_acpi_exec_tfs(ide_drive_t *drive); | 1488 | extern int ide_acpi_exec_tfs(ide_drive_t *drive); |
1488 | extern void ide_acpi_get_timing(ide_hwif_t *hwif); | 1489 | extern void ide_acpi_get_timing(ide_hwif_t *hwif); |
1489 | extern void ide_acpi_push_timing(ide_hwif_t *hwif); | 1490 | extern void ide_acpi_push_timing(ide_hwif_t *hwif); |
1490 | extern void ide_acpi_init(ide_hwif_t *hwif); | 1491 | void ide_acpi_init_port(ide_hwif_t *); |
1491 | void ide_acpi_port_init_devices(ide_hwif_t *); | 1492 | void ide_acpi_port_init_devices(ide_hwif_t *); |
1492 | extern void ide_acpi_set_state(ide_hwif_t *hwif, int on); | 1493 | extern void ide_acpi_set_state(ide_hwif_t *hwif, int on); |
1493 | #else | 1494 | #else |
1495 | static inline int ide_acpi_init(void) { return 0; } | ||
1494 | static inline int ide_acpi_exec_tfs(ide_drive_t *drive) { return 0; } | 1496 | static inline int ide_acpi_exec_tfs(ide_drive_t *drive) { return 0; } |
1495 | static inline void ide_acpi_get_timing(ide_hwif_t *hwif) { ; } | 1497 | static inline void ide_acpi_get_timing(ide_hwif_t *hwif) { ; } |
1496 | static inline void ide_acpi_push_timing(ide_hwif_t *hwif) { ; } | 1498 | static inline void ide_acpi_push_timing(ide_hwif_t *hwif) { ; } |
1497 | static inline void ide_acpi_init(ide_hwif_t *hwif) { ; } | 1499 | static inline void ide_acpi_init_port(ide_hwif_t *hwif) { ; } |
1498 | static inline void ide_acpi_port_init_devices(ide_hwif_t *hwif) { ; } | 1500 | static inline void ide_acpi_port_init_devices(ide_hwif_t *hwif) { ; } |
1499 | static inline void ide_acpi_set_state(ide_hwif_t *hwif, int on) {} | 1501 | static inline void ide_acpi_set_state(ide_hwif_t *hwif, int on) {} |
1500 | #endif | 1502 | #endif |