-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Vitaly and Yoseph -
(apologies for the dupe, somehow Thunderbird is infected with
[EMAIL PROTECTED] address)
Following the advice about rediscovery of SDIO WLAN device after power
cycle, I made a local development branch with WLAN stuff as modules.
This was not quite as simple as it sounds, because there were some
bleeding stumps from the SDIO stuff into the PNP stuff, which has to
live in monolithic kernel. So I added the necessary exports to the PNP
stuff (see attached patch) and it compiled OK. But it seems a sign I am
~ entering into new territory.
s3c24xx_hcd in particular remains in the monolithic kernel because it
has platform defintions. So,
# modprobe ar6000
gets me
# lsmod
Module Size Used by
ar6000 128700 0
sdio_busdriver 41768 1 ar6000
sdio_lib 7560 2 ar6000,sdio_busdriver
but the only footprint in dmesg is
[ 445.520000] pnp: the driver 'sdio_wlan' has been registered
In particular, I add a printk() to s3c24xx_hcd_pnp_probe(), and I see it
is never called during initial boot or subsequently.
Do you guys have any advice about how to provoke the PNP probe, or if
the way of coming at it needs some adjustment?
- -Andy
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iEYEARECAAYFAkjTbmEACgkQOjLpvpq7dMre8QCfZOzuhFAbSR2Amg4QyVtVKCjg
00gAn1sDz4utFYp0UUSwv1cVgmsN04Yx
=1o+2
-----END PGP SIGNATURE-----
add-pnp-exports-for-modular-wlan.patch
From: Andy Green <[EMAIL PROTECTED]>
Signed-off-by: Andy Green <[EMAIL PROTECTED]>
---
drivers/pnp/card.c | 2 ++
drivers/pnp/core.c | 3 +++
drivers/pnp/driver.c | 1 +
3 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/drivers/pnp/card.c b/drivers/pnp/card.c
index da1c990..377e2ac 100644
--- a/drivers/pnp/card.c
+++ b/drivers/pnp/card.c
@@ -244,6 +244,7 @@ void pnp_remove_card(struct pnp_card *card)
pnp_remove_card_device(dev);
}
}
+EXPORT_SYMBOL(pnp_remove_card);
/**
* pnp_add_card_device - adds a device to the specified card
@@ -275,6 +276,7 @@ void pnp_remove_card_device(struct pnp_dev *dev)
spin_unlock(&pnp_lock);
__pnp_remove_device(dev);
}
+EXPORT_SYMBOL(pnp_remove_card_device);
/**
* pnp_request_card_device - Searches for a PnP device under the specified card
diff --git a/drivers/pnp/core.c b/drivers/pnp/core.c
index 7d366ca..1eafc96 100644
--- a/drivers/pnp/core.c
+++ b/drivers/pnp/core.c
@@ -73,6 +73,7 @@ int pnp_register_protocol(struct pnp_protocol *protocol)
sprintf(protocol->dev.bus_id, "pnp%d", nodenum);
return device_register(&protocol->dev);
}
+EXPORT_SYMBOL(pnp_register_protocol);
/**
* pnp_protocol_unregister - removes a pnp protocol from the pnp layer
@@ -85,6 +86,7 @@ void pnp_unregister_protocol(struct pnp_protocol *protocol)
spin_unlock(&pnp_lock);
device_unregister(&protocol->dev);
}
+EXPORT_SYMBOL(pnp_unregister_protocol);
static void pnp_free_ids(struct pnp_dev *dev)
{
@@ -165,6 +167,7 @@ int pnp_add_device(struct pnp_dev *dev)
#endif
return 0;
}
+EXPORT_SYMBOL(pnp_add_device);
void __pnp_remove_device(struct pnp_dev *dev)
{
diff --git a/drivers/pnp/driver.c b/drivers/pnp/driver.c
index a262762..9e60d75 100644
--- a/drivers/pnp/driver.c
+++ b/drivers/pnp/driver.c
@@ -241,6 +241,7 @@ int pnp_add_id(struct pnp_id *id, struct pnp_dev *dev)
dev->id = id;
return 0;
}
+EXPORT_SYMBOL(pnp_add_id);
EXPORT_SYMBOL(pnp_register_driver);
EXPORT_SYMBOL(pnp_unregister_driver);