summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Poynter <tpoynter@nvidia.com>2014-01-14 13:14:09 -0600
committerRiham Haidar <rhaidar@nvidia.com>2014-01-24 15:01:23 -0800
commit7efc53950dbdbda13b0b4f7b8fe9a30ff4ed2e8f (patch)
tree3db79aaa62d662dd273375dfb4702bcfd6bfd1ef
parent639ef18057a2df62d5fb5c6a39354aba454aee7b (diff)
staging: ozwpan: Add udev event to userspace.
Update from ATMEL to send an event to userspace to indicate that a device has entered or resumed from sleep. Bug 1394137. Bug 1421799. Change-Id: I25b02bd8ae8a01a52d28b8254fbc43401c0f9463 Signed-off-by: Todd Poynter <tpoynter@nvidia.com> Reviewed-on: http://git-master/r/357851 (cherry picked from commit 94dac510078f3cfe817fc5132114b8a64dd7f965) Reviewed-on: http://git-master/r/358907 Reviewed-by: Jean Huang <jeanh@nvidia.com> Tested-by: Jean Huang <jeanh@nvidia.com>
-rw-r--r--drivers/staging/ozwpan/ozmain.c2
-rw-r--r--drivers/staging/ozwpan/ozpd.c7
-rw-r--r--drivers/staging/ozwpan/ozproto.c11
3 files changed, 18 insertions, 2 deletions
diff --git a/drivers/staging/ozwpan/ozmain.c b/drivers/staging/ozwpan/ozmain.c
index 61b83f86ef63..8bb7d67da4b6 100644
--- a/drivers/staging/ozwpan/ozmain.c
+++ b/drivers/staging/ozwpan/ozmain.c
@@ -51,6 +51,6 @@ module_exit(ozwpan_exit);
MODULE_AUTHOR("Chris Kelly");
MODULE_DESCRIPTION("Ozmo Devices USB over WiFi hcd driver");
-MODULE_VERSION("1.2.3-rc9");
+MODULE_VERSION("1.2.3-rc10");
MODULE_LICENSE("GPL");
diff --git a/drivers/staging/ozwpan/ozpd.c b/drivers/staging/ozwpan/ozpd.c
index e9a3de041b8c..a99d0b49b45f 100644
--- a/drivers/staging/ozwpan/ozpd.c
+++ b/drivers/staging/ozwpan/ozpd.c
@@ -371,6 +371,12 @@ int oz_pd_sleep(struct oz_pd *pd)
{
int do_stop = 0;
u16 stop_apps = 0;
+ char mac_buf[20];
+ char *envp[2];
+
+ snprintf(mac_buf, sizeof(mac_buf), "ID_MAC=%pm", pd->mac_addr);
+ envp[0] = mac_buf;
+ envp[1] = NULL;
oz_polling_lock_bh();
if (pd->state & (OZ_PD_S_SLEEP | OZ_PD_S_STOPPED)) {
oz_polling_unlock_bh();
@@ -380,6 +386,7 @@ int oz_pd_sleep(struct oz_pd *pd)
if (pd->keep_alive >= OZ_KALIVE_INFINITE)
oz_pd_indicate_farewells(pd);
oz_pd_set_state(pd, OZ_PD_S_SLEEP);
+ kobject_uevent_env(&g_oz_wpan_dev->kobj, KOBJ_CHANGE, envp);
} else {
do_stop = 1;
}
diff --git a/drivers/staging/ozwpan/ozproto.c b/drivers/staging/ozwpan/ozproto.c
index c116e5250f6b..cbb1335f3ce1 100644
--- a/drivers/staging/ozwpan/ozproto.c
+++ b/drivers/staging/ozwpan/ozproto.c
@@ -348,8 +348,17 @@ static void oz_rx_frame(struct sk_buff *skb)
pd = oz_pd_find(src_addr);
if (pd) {
- if (!(pd->state & OZ_PD_S_CONNECTED))
+ if (!(pd->state & OZ_PD_S_CONNECTED)) {
+ char mac_buf[20];
+ char *envp[2];
+ snprintf(mac_buf, sizeof(mac_buf), "ID_MAC=%pm",
+ pd->mac_addr);
+ envp[0] = mac_buf;
+ envp[1] = NULL;
oz_pd_set_state(pd, OZ_PD_S_CONNECTED);
+ kobject_uevent_env(&g_oz_wpan_dev->kobj, KOBJ_CHANGE,
+ envp);
+ }
getnstimeofday(&current_time);
if ((current_time.tv_sec != pd->last_rx_timestamp.tv_sec) ||
(pd->presleep < MSEC_PER_SEC)) {