diff --git a/drivers/misc/pen/bu520xx_pen.c b/drivers/misc/pen/bu520xx_pen.c index c3eaf09e4369..d49815dd3e1e 100644 --- a/drivers/misc/pen/bu520xx_pen.c +++ b/drivers/misc/pen/bu520xx_pen.c @@ -297,8 +297,8 @@ static void pen_report_function(struct work_struct *dat) int counter, status = 0, initial_status; pen_dbg_func_in(); - if (!hall_sensor_dev->enable) { - pen_info("[%s] pen isn't enable,don't report.\n", DRIVER_NAME); + if (!hall_sensor_dev) { + pen_info("[%s] hall_sensor_dev isn't init.\n", DRIVER_NAME); return; } initial_status = hall_sensor_dev->status; @@ -321,6 +321,10 @@ static void pen_report_function(struct work_struct *dat) return; } + if (!hall_sensor_dev->pen_indev) { + pen_info("[%s] pen_indev isn't ready,don't report.\n", DRIVER_NAME); + return; + } input_report_switch(hall_sensor_dev->pen_indev, SW_PEN_INSERTED, !hall_sensor_dev->status); input_sync(hall_sensor_dev->pen_indev); #ifdef CONFIG_HAS_WAKELOCK @@ -426,7 +430,7 @@ static int bu520xx_pen_probe(struct platform_device *pdev) } spin_lock_init(&hall_sensor_dev->mHallSensorLock); - hall_sensor_dev->enable = 0; + hall_sensor_dev->enable = 1; //set gpio hall_sensor_dev->gpio = of_get_named_gpio_flags(np,