summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/misc/mediatek/alsps/alsps.c14
-rw-r--r--drivers/misc/mediatek/alsps/cm36283/cm36283.c6
2 files changed, 9 insertions, 11 deletions
diff --git a/drivers/misc/mediatek/alsps/alsps.c b/drivers/misc/mediatek/alsps/alsps.c
index 405b55ebafca..5c2bc6a928e9 100644
--- a/drivers/misc/mediatek/alsps/alsps.c
+++ b/drivers/misc/mediatek/alsps/alsps.c
@@ -20,12 +20,11 @@ static struct alsps_init_info* alsps_init_list[MAX_CHOOSE_ALSPS_NUM]= {0}; //mod
static void alsps_early_suspend(struct early_suspend *h);
static void alsps_late_resume(struct early_suspend *h);
-
int als_data_report(struct input_dev *dev, int value, int status)
{
//ALSPS_LOG("+als_data_report! %d, %d\n",value,status);
- input_report_abs(dev, EVENT_TYPE_ALS_VALUE, value);
- input_report_abs(dev, EVENT_TYPE_ALS_STATUS, status);
+ input_report_rel(dev, EVENT_TYPE_ALS_VALUE, value);
+ input_report_rel(dev, EVENT_TYPE_ALS_STATUS, status);
input_sync(dev);
return 0;
}
@@ -165,7 +164,7 @@ static void ps_work_func(struct work_struct *work)
}
if (cxt->is_get_valid_ps_data_after_enable == false)
{
- if(ALSPS_INVALID_VALUE != cxt->drv_data.als_data.values[0])
+ if(ALSPS_INVALID_VALUE != cxt->drv_data.ps_data.values[0])
cxt->is_get_valid_ps_data_after_enable = true;
}
//report data to input device
@@ -838,11 +837,10 @@ static int alsps_input_init(struct alsps_context *cxt)
set_bit(EV_SYN, dev->evbit);
input_set_capability(dev, EV_REL, EVENT_TYPE_PS_VALUE);
input_set_capability(dev, EV_REL, EVENT_TYPE_PS_STATUS);
- input_set_capability(dev, EV_ABS, EVENT_TYPE_ALS_VALUE);
- input_set_capability(dev, EV_ABS, EVENT_TYPE_ALS_STATUS);
- input_set_abs_params(dev, EVENT_TYPE_ALS_VALUE, ALSPS_VALUE_MIN, ALSPS_VALUE_MAX, 0, 0);
- input_set_abs_params(dev, EVENT_TYPE_ALS_STATUS, ALSPS_STATUS_MIN, ALSPS_STATUS_MAX, 0, 0);
+ input_set_capability(dev, EV_REL, EVENT_TYPE_ALS_VALUE);
+ input_set_capability(dev, EV_REL, EVENT_TYPE_ALS_STATUS);
+
input_set_drvdata(dev, cxt);
err = input_register_device(dev);
diff --git a/drivers/misc/mediatek/alsps/cm36283/cm36283.c b/drivers/misc/mediatek/alsps/cm36283/cm36283.c
index b4b3a9c109bb..bca7779d6ed5 100644
--- a/drivers/misc/mediatek/alsps/cm36283/cm36283.c
+++ b/drivers/misc/mediatek/alsps/cm36283/cm36283.c
@@ -1794,7 +1794,7 @@ static int ps_set_delay(u64 ns)
static int ps_get_data(int* value, int* status)
{
int err = 0;
-
+ msleep(1000);/* Solve sensor HAL received data before flush() command. */
if(!cm36283_obj)
{
APS_ERR("cm36652_obj is null!!\n");
@@ -1917,9 +1917,9 @@ static int cm36283_i2c_probe(struct i2c_client *client, const struct i2c_device_
ps_ctl.enable_nodata = ps_enable_nodata;
ps_ctl.set_delay = ps_set_delay;
if (obj->hw->polling_mode_ps == 0) {
- ps_ctl.is_report_input_direct = true;
- } else {
ps_ctl.is_report_input_direct = false;
+ } else {
+ ps_ctl.is_report_input_direct = true;
}
ps_ctl.is_support_batch = obj->hw->is_batch_supported_ps;