aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorHenrique de Moraes Holschuh <hmh@hmh.eng.br>2006-11-25 13:35:09 -0500
committerLen Brown <len.brown@intel.com>2006-12-07 01:38:45 -0500
commit2df910b4c3edcce9a0c12394db6f5f4a6e69c712 (patch)
tree658752b625b083dbad102d34be5a3da9e1be26c5 /drivers
parente0298997acdba929e7f5b5987d305b67b50a3969 (diff)
ACPI: ibm-acpi: make non-generic bay support optional
This patch makes it possible to disable ibm-acpi non-generic bay support, as generic bay support already works well for a number of ThinkPads. Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/acpi/Kconfig11
-rw-r--r--drivers/acpi/ibm_acpi.c13
2 files changed, 23 insertions, 1 deletions
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index 59f9def21720..6f8c50ea54e1 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -224,6 +224,17 @@ config ACPI_IBM_DOCK
224 224
225 If you are not sure, say N here. 225 If you are not sure, say N here.
226 226
227config ACPI_IBM_BAY
228 bool "Legacy Removable Bay Support"
229 depends on ACPI_IBM
230 depends on ACPI_BAY=n
231 default n
232 ---help---
233 Allows the ibm_acpi driver to handle removable bays.
234 This support is obsoleted by CONFIG_ACPI_BAY.
235
236 If you are not sure, say N here.
237
227config ACPI_TOSHIBA 238config ACPI_TOSHIBA
228 tristate "Toshiba Laptop Extras" 239 tristate "Toshiba Laptop Extras"
229 depends on X86 240 depends on X86
diff --git a/drivers/acpi/ibm_acpi.c b/drivers/acpi/ibm_acpi.c
index 392abbb7d2dc..fbb4970ce16a 100644
--- a/drivers/acpi/ibm_acpi.c
+++ b/drivers/acpi/ibm_acpi.c
@@ -172,6 +172,7 @@ IBM_HANDLE(dock, root, "\\_SB.GDCK", /* X30, X31, X40 */
172 "\\_SB.PCI.ISA.SLCE", /* 570 */ 172 "\\_SB.PCI.ISA.SLCE", /* 570 */
173 ); /* A21e,G4x,R30,R31,R32,R40,R40e,R50e */ 173 ); /* A21e,G4x,R30,R31,R32,R40,R40e,R50e */
174#endif 174#endif
175#ifdef CONFIG_ACPI_IBM_BAY
175IBM_HANDLE(bay, root, "\\_SB.PCI.IDE.SECN.MAST", /* 570 */ 176IBM_HANDLE(bay, root, "\\_SB.PCI.IDE.SECN.MAST", /* 570 */
176 "\\_SB.PCI0.IDE0.IDES.IDSM", /* 600e/x, 770e, 770x */ 177 "\\_SB.PCI0.IDE0.IDES.IDSM", /* 600e/x, 770e, 770x */
177 "\\_SB.PCI0.SATA.SCND.MSTR", /* T60, X60, Z60 */ 178 "\\_SB.PCI0.SATA.SCND.MSTR", /* T60, X60, Z60 */
@@ -189,6 +190,7 @@ IBM_HANDLE(bay2, root, "\\_SB.PCI0.IDE0.PRIM.SLAV", /* A3x, R32 */
189IBM_HANDLE(bay2_ej, bay2, "_EJ3", /* 600e/x, 770e, A3x */ 190IBM_HANDLE(bay2_ej, bay2, "_EJ3", /* 600e/x, 770e, A3x */
190 "_EJ0", /* 770x */ 191 "_EJ0", /* 770x */
191 ); /* all others */ 192 ); /* all others */
193#endif
192 194
193/* don't list other alternatives as we install a notify handler on the 570 */ 195/* don't list other alternatives as we install a notify handler on the 570 */
194IBM_HANDLE(pci, root, "\\_SB.PCI"); /* 570 */ 196IBM_HANDLE(pci, root, "\\_SB.PCI"); /* 570 */
@@ -1051,6 +1053,7 @@ static int light_write(char *buf)
1051 return 0; 1053 return 0;
1052} 1054}
1053 1055
1056#if defined(CONFIG_ACPI_IBM_DOCK) || defined(CONFIG_ACPI_IBM_BAY)
1054static int _sta(acpi_handle handle) 1057static int _sta(acpi_handle handle)
1055{ 1058{
1056 int status; 1059 int status;
@@ -1060,7 +1063,7 @@ static int _sta(acpi_handle handle)
1060 1063
1061 return status; 1064 return status;
1062} 1065}
1063 1066#endif
1064#ifdef CONFIG_ACPI_IBM_DOCK 1067#ifdef CONFIG_ACPI_IBM_DOCK
1065#define dock_docked() (_sta(dock_handle) & 1) 1068#define dock_docked() (_sta(dock_handle) & 1)
1066 1069
@@ -1126,6 +1129,7 @@ static void dock_notify(struct ibm_struct *ibm, u32 event)
1126} 1129}
1127#endif 1130#endif
1128 1131
1132#ifdef CONFIG_ACPI_IBM_BAY
1129static int bay_status_supported; 1133static int bay_status_supported;
1130static int bay_status2_supported; 1134static int bay_status2_supported;
1131static int bay_eject_supported; 1135static int bay_eject_supported;
@@ -1201,6 +1205,7 @@ static void bay_notify(struct ibm_struct *ibm, u32 event)
1201{ 1205{
1202 acpi_bus_generate_event(ibm->device, event, 0); 1206 acpi_bus_generate_event(ibm->device, event, 0);
1203} 1207}
1208#endif
1204 1209
1205static int cmos_read(char *p) 1210static int cmos_read(char *p)
1206{ 1211{
@@ -2330,6 +2335,7 @@ static struct ibm_struct ibms[] = {
2330 .type = ACPI_SYSTEM_NOTIFY, 2335 .type = ACPI_SYSTEM_NOTIFY,
2331 }, 2336 },
2332#endif 2337#endif
2338#ifdef CONFIG_ACPI_IBM_BAY
2333 { 2339 {
2334 .name = "bay", 2340 .name = "bay",
2335 .init = bay_init, 2341 .init = bay_init,
@@ -2339,6 +2345,7 @@ static struct ibm_struct ibms[] = {
2339 .handle = &bay_handle, 2345 .handle = &bay_handle,
2340 .type = ACPI_SYSTEM_NOTIFY, 2346 .type = ACPI_SYSTEM_NOTIFY,
2341 }, 2347 },
2348#endif
2342 { 2349 {
2343 .name = "cmos", 2350 .name = "cmos",
2344 .read = cmos_read, 2351 .read = cmos_read,
@@ -2624,7 +2631,9 @@ IBM_PARAM(light);
2624#ifdef CONFIG_ACPI_IBM_DOCK 2631#ifdef CONFIG_ACPI_IBM_DOCK
2625IBM_PARAM(dock); 2632IBM_PARAM(dock);
2626#endif 2633#endif
2634#ifdef CONFIG_ACPI_IBM_BAY
2627IBM_PARAM(bay); 2635IBM_PARAM(bay);
2636#endif
2628IBM_PARAM(cmos); 2637IBM_PARAM(cmos);
2629IBM_PARAM(led); 2638IBM_PARAM(led);
2630IBM_PARAM(beep); 2639IBM_PARAM(beep);
@@ -2717,12 +2726,14 @@ static int __init acpi_ibm_init(void)
2717 IBM_HANDLE_INIT(dock); 2726 IBM_HANDLE_INIT(dock);
2718#endif 2727#endif
2719 IBM_HANDLE_INIT(pci); 2728 IBM_HANDLE_INIT(pci);
2729#ifdef CONFIG_ACPI_IBM_BAY
2720 IBM_HANDLE_INIT(bay); 2730 IBM_HANDLE_INIT(bay);
2721 if (bay_handle) 2731 if (bay_handle)
2722 IBM_HANDLE_INIT(bay_ej); 2732 IBM_HANDLE_INIT(bay_ej);
2723 IBM_HANDLE_INIT(bay2); 2733 IBM_HANDLE_INIT(bay2);
2724 if (bay2_handle) 2734 if (bay2_handle)
2725 IBM_HANDLE_INIT(bay2_ej); 2735 IBM_HANDLE_INIT(bay2_ej);
2736#endif
2726 IBM_HANDLE_INIT(beep); 2737 IBM_HANDLE_INIT(beep);
2727 IBM_HANDLE_INIT(ecrd); 2738 IBM_HANDLE_INIT(ecrd);
2728 IBM_HANDLE_INIT(ecwr); 2739 IBM_HANDLE_INIT(ecwr);