From aa2175077ccd919cb1206abff3c89afd47a1a17a Mon Sep 17 00:00:00 2001 From: Bjorn Helgaas Date: Tue, 8 May 2007 00:35:54 -0700 Subject: [PATCH] --- yaml --- r: 54830 b: refs/heads/master c: 8f81dd149806bc53c68c92f34d61f88427079039 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/pnp/core.c | 8 ++++++++ trunk/drivers/pnp/pnpacpi/core.c | 1 + trunk/drivers/pnp/pnpbios/core.c | 1 + trunk/include/linux/pnp.h | 2 ++ 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 41ef6ed0a07b..2ec790542996 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cab9bdd14dd7d8091b0aac7877ae9f29724eb741 +refs/heads/master: 8f81dd149806bc53c68c92f34d61f88427079039 diff --git a/trunk/drivers/pnp/core.c b/trunk/drivers/pnp/core.c index d8d75541552c..3e20b1cc7778 100644 --- a/trunk/drivers/pnp/core.c +++ b/trunk/drivers/pnp/core.c @@ -23,6 +23,14 @@ static LIST_HEAD(pnp_protocols); LIST_HEAD(pnp_global); DEFINE_SPINLOCK(pnp_lock); +/* + * ACPI or PNPBIOS should tell us about all platform devices, so we can + * skip some blind probes. ISAPNP typically enumerates only plug-in ISA + * devices, not built-in things like COM ports. + */ +int pnp_platform_devices; +EXPORT_SYMBOL(pnp_platform_devices); + void *pnp_alloc(long size) { void *result; diff --git a/trunk/drivers/pnp/pnpacpi/core.c b/trunk/drivers/pnp/pnpacpi/core.c index 7eb8275185b6..a00548799e98 100644 --- a/trunk/drivers/pnp/pnpacpi/core.c +++ b/trunk/drivers/pnp/pnpacpi/core.c @@ -285,6 +285,7 @@ static int __init pnpacpi_init(void) acpi_get_devices(NULL, pnpacpi_add_device_handler, NULL, NULL); pnp_info("PnP ACPI: found %d devices", num); unregister_acpi_bus_type(&acpi_pnp_bus); + pnp_platform_devices = 1; return 0; } subsys_initcall(pnpacpi_init); diff --git a/trunk/drivers/pnp/pnpbios/core.c b/trunk/drivers/pnp/pnpbios/core.c index b71aff21b3fc..3a201b77b963 100644 --- a/trunk/drivers/pnp/pnpbios/core.c +++ b/trunk/drivers/pnp/pnpbios/core.c @@ -570,6 +570,7 @@ static int __init pnpbios_init(void) /* scan for pnpbios devices */ build_devlist(); + pnp_platform_devices = 1; return 0; } diff --git a/trunk/include/linux/pnp.h b/trunk/include/linux/pnp.h index 00dae5ba128a..2a1897e6f937 100644 --- a/trunk/include/linux/pnp.h +++ b/trunk/include/linux/pnp.h @@ -364,6 +364,7 @@ int pnp_add_device(struct pnp_dev *dev); int pnp_device_attach(struct pnp_dev *pnp_dev); void pnp_device_detach(struct pnp_dev *pnp_dev); extern struct list_head pnp_global; +extern int pnp_platform_devices; /* multidevice card support */ int pnp_add_card(struct pnp_card *card); @@ -411,6 +412,7 @@ static inline int pnp_init_device(struct pnp_dev *dev) { return -ENODEV; } static inline int pnp_add_device(struct pnp_dev *dev) { return -ENODEV; } static inline int pnp_device_attach(struct pnp_dev *pnp_dev) { return -ENODEV; } static inline void pnp_device_detach(struct pnp_dev *pnp_dev) { ; } +#define pnp_platform_devices 0 /* multidevice card support */ static inline int pnp_add_card(struct pnp_card *card) { return -ENODEV; }