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
@@ -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);
+
+
+ }
}