rk3288的SDK修复cm3218光敏驱动bug

瑞芯的Android 4.4的SDK中kernel的补丁如下:

diff –git a/arch/arm/boot/dts/rk3288-tb_8846.dts b/arch/arm/boot/dts/rk3288-tb_8846.dtsindex c92d973..850fd42 100644status = "okay";};}; &i2c2 {diff –git a/drivers/i2c/busses/i2c-rockchip.c b/drivers/i2c/busses/i2c-rockchip.cindex 3f64ff0..db28071 100644i2c_writel(I2C_IPD_ALL_CLEAN, i2c->regs + I2C_IPD);rockchip_i2c_disable_irq(i2c);- rockchip_i2c_disable(i2c);spin_unlock_irqrestore(&i2c->lock, flags);i2c->complete_what, i2c->addr);return error; }diff –git a/drivers/input/sensors/lsensor/cm3218.c b/drivers/input/sensors/lsensor/cm3218.cindex b6201d6..8eee009 100644} /****************operate according to sensor chip:start************/static int sensor_active(struct i2c_client *client, int enable, int rate) {}printk("%s:fail to active sensor\n",__func__);}static int sensor_init(struct i2c_client *client) {int status, i;@@ -159,21 +166,24 @@ static int sensor_init(struct i2c_client *client)(struct sensor_private_data *) i2c_get_clientdata(client);for (i = 0; i < 5; i++) {if (status >= 0)break;+/* Clear interrupt */cm3218_read_ara(client);}+ /* power on (1T, HS, interrupt disable) */status = cm3218_write(client, CM3218_REG_ADDR_CMD, CM3218_DEFAULT_CMD);if (status < 0) {dev_err(&client->dev, "Init CM3218 CMD fails\n");return status;}status = cm3218_write(client, CM3218_REG_ADDR_CMD, CM3218_DEFAULT_CMD | CM3218_CMD_ALS_INT_EN);if (status < 0) {dev_err(&client->dev, "Init CM3218 CMD fails\n");@@ -181,9 +191,7 @@ static int sensor_init(struct i2c_client *client)}}return status; }@@ -224,25 +232,7 @@ report:return index; }static int sensor_report_value(struct i2c_client *client) {@@ -254,14 +244,14 @@ static int sensor_report_value(struct i2c_client *client)cm3218_read_lux(client,&result);index = light_report_value(sensor->input_dev, result);+DBG("%s:%s result=0x%x,index=%d\n",__func__,sensor->ops->name, result,index);result= sensor_read_reg(client, sensor->ops->int_status_reg);printk("%s:fail to clear sensor int status,ret=0x%x\n",__func__,result);}}@@ -272,17 +262,17 @@ static int sensor_report_value(struct i2c_client *client) struct sensor_operate light_cm3218_ops = {.name= "cm3218",.trig= SENSOR_UNKNOW_DATA,.active= sensor_active,.init= sensor_init,@@ -291,7 +281,7 @@ struct sensor_operate light_cm3218_ops = { /****************operate according to sensor chip:end************/-//function name should not be changed+/* function name should not be changed */ static struct sensor_operate *light_get_ops(void) {return &light_cm3218_ops;@@ -317,5 +307,3 @@ static void __exit light_cm3218_exit(void) module_init(light_cm3218_init); module_exit(light_cm3218_exit);index 960d44f..68ab664 100755/*light sensor*/{"lightsensor", LIGHT_ID_ALL},{"light_cm3217", LIGHT_ID_CM3217},{"ls_stk3171", LIGHT_ID_STK3171},{"ls_isl29023", LIGHT_ID_ISL29023},{"ls_ap321xx", LIGHT_ID_AP321XX},@@ -2162,8 +2162,9 @@ static struct of_device_id sensor_dt_ids[] = {^M/*light sensor*/{ .compatible = "light_cm3217" },{ .compatible = "ls_stk3171" },{ .compatible = "ls_ap321xx" }, ^Mdiff –git a/include/linux/sensor-dev.h b/include/linux/sensor-dev.hindex 16e916f..6c21fcd 100755^MLIGHT_ID_ALL,LIGHT_ID_CM3217,- LIGHT_ID_CM3218,+ LIGHT_ID_CM3218, /* ID = 46 */^MLIGHT_ID_CM3232,LIGHT_ID_AL3006,LIGHT_ID_STK3171,

,摘抄美文4、承诺是一件美好的事情,但美好的东西往往不会变为现实。

rk3288的SDK修复cm3218光敏驱动bug

相关文章:

你感兴趣的文章:

标签云: