X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fpnp%2Fpnpbios%2Fcore.c;h=0d1736c03b968400d8f6fef31fe754dff6ec799c;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=1a2fe19dd18c27c9d38b16cb2cb916afd126b1d8;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c index 1a2fe19dd..0d1736c03 100644 --- a/drivers/pnp/pnpbios/core.c +++ b/drivers/pnp/pnpbios/core.c @@ -56,10 +56,12 @@ #include #include #include -#include +#include #include #include #include +#include +#include #include #include @@ -177,8 +179,7 @@ static int pnp_dock_thread(void * unused) /* * Poll every 2 seconds */ - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(HZ*2); + msleep_interruptible(2000); if(signal_pending(current)) break; @@ -538,6 +539,14 @@ int __init pnpbios_init(void) return -ENODEV; } +#ifdef CONFIG_PNPACPI + if (!acpi_disabled && !pnpacpi_disabled) { + pnpbios_disabled = 1; + printk(KERN_INFO "PnPBIOS: Disabled by ACPI PNP\n"); + return -ENODEV; + } +#endif /* CONFIG_ACPI */ + /* scan the system for pnpbios support */ if (!pnpbios_probe_system()) return -ENODEV; @@ -574,6 +583,8 @@ subsys_initcall(pnpbios_init); static int __init pnpbios_thread_init(void) { + if (pnpbios_disabled) + return 0; #ifdef CONFIG_HOTPLUG init_completion(&unload_sem); if (kernel_thread(pnp_dock_thread, NULL, CLONE_KERNEL) > 0)