uevent 事件上报demo

1.驱动上报

diff --git a/kernel/msm-3.18/drivers/input/touchscreen/ft8006u/focaltech_core.c b/kernel/msm-3.18/drivers/input/touchscreen/ft8006u/focaltech_core.c
index 990e636..8fbdb8c 100644
--- a/kernel/msm-3.18/drivers/input/touchscreen/ft8006u/focaltech_core.c
+++ b/kernel/msm-3.18/drivers/input/touchscreen/ft8006u/focaltech_core.c
@@ -1336,6 +1336,7 @@ static struct platform_device hwinfo_device= {
    .id = -1,
 };//zhengwu add

+
 /*****************************************************************************
 *  Name: fts_ts_probe
 *  Brief:
@@ -1349,6 +1350,7 @@ static int fts_ts_probe(struct i2c_client *client, const struct i2c_device_id *i
     struct fts_ts_data *data;
     struct input_dev *input_dev;
     int err;
+
     FTS_FUNC_ENTER();
     /* 1. Get Platform data */
     if (client->dev.of_node)
@@ -1615,6 +1617,10 @@ static int fts_ts_suspend(struct device *dev)
 {
     struct fts_ts_data *data = dev_get_drvdata(dev);
     int retval = 0;
+        char *env[] = { "XXXX=iwlwifi", "XXXXXXX=error_dump", NULL };
+
+     kobject_uevent_env(&dev->kobj, KOBJ_CHANGE,env);
+     printk("zch---kobj name = %s\n",dev->kobj.name);

     FTS_FUNC_ENTER();
     if (data->suspended)

2.上报打印

diff --git a/kernel/msm-3.18/lib/kobject_uevent.c b/kernel/msm-3.18/lib/kobject_uevent.c
index 9ebf9e2..5f3fd35 100644
--- a/kernel/msm-3.18/lib/kobject_uevent.c
+++ b/kernel/msm-3.18/lib/kobject_uevent.c
@@ -247,12 +247,25 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
    if (retval)
        goto exit;

+
+if( strcmp(  kobj->name ,"3-0038") ==0)
+{
+
+    printk( "zch--------ACTION=%s,DEVPATH=%s,SUBSYSTEM=%s\n", action_string,devpath,subsystem);
+}
+
    /* keys passed in from the caller */
    if (envp_ext) {
        for (i = 0; envp_ext[i]; i++) {
            retval = add_uevent_var(env, "%s", envp_ext[i]);
+                      
+
            if (retval)
                goto exit;
+                      if( strcmp(  kobj->name ,"3-0038") ==0)
+                                {
+                                    printk("zch--- %s \n",envp_ext[i]);
+                                }
        }
    }


3.vold接收事件

diff --git a/system/vold/NetlinkHandler.cpp b/system/vold/NetlinkHandler.cpp
index ecda2a0..73fa962 100644
--- a/system/vold/NetlinkHandler.cpp
+++ b/system/vold/NetlinkHandler.cpp
@@ -54,4 +54,25 @@ void NetlinkHandler::onEvent(NetlinkEvent *evt) {
     if (!strcmp(subsys, "block")) {
         vm->handleBlockEvent(evt);
     }
+
+/*
+
+01-02 21:54:20.440     0     0 I         : zch--------ACTION=change,DEVPATH=/devices/soc/78b7000.i2c/i2c-3/3-0038,SUBSYSTEM=i2c
+01-02 21:54:20.440     0     0 I         : zch--- XXXX=iwlwifi
+01-02 21:54:20.441     0     0 I         : zch--- XXXXXXX=error_dump
+01-02 21:54:20.442     0     0 I         : zch---kobj name = 3-0038
+
+
+*/
+
+
+if (!strcmp(subsys, "i2c")) {
+
+    const char *myargs1 = evt->findParam("XXXX")?evt->findParam("XXXX"):"";
+     const char * myargs2 = evt->findParam("XXXXXXX")?evt->findParam("XXXXXXX"):"";
+        SLOGE("zch---myargs1=%s",myargs1);
+   SLOGE("zch---myargs2=%s",myargs2);
+
+       
+    }  
 }
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值