Actually in Android the system will try to invoke the early_suspend during a 
phone call. but it can not go to the deep sleep because of the wakelock. so I 
suggest that the psensor driver should be added the wakelock to prevent the 
issue.
Please add and check the follows:

--- a/mediatek/custom/common/kernel/alsps/tmd2772_auto/tmd2772.c
+++ b/mediatek/custom/common/kernel/alsps/tmd2772_auto/tmd2772.c
@@ -64,6 +64,7 @@ static u8  offset_data=0;
 #define PRO_OFFSET 1
 static u16 tmp_data=0;
 #define OFFDATA_DEFAULT 1
+struct wake_lock psensor_lock;
 //end
 /******************************************************************************
  * extern functions
@@ -2417,6 +2418,7 @@ int TMD2772_ps_operate(void* self, uint32_t command, 
void* buff_in, int size_in,
                                        tmd2772_ps_calibrate_call(obj->client);
                                        TMD2772_init_client(obj->client);
                                        #endif
+                                       wake_lock(&psensor_lock);
                                        if((err = 
TMD2772_enable_ps(obj->client, 1)))
                                        {
                                                APS_ERR("enable ps fail: %d\n", 
err); 
@@ -2437,6 +2439,7 @@ int TMD2772_ps_operate(void* self, uint32_t command, 
void* buff_in, int size_in,
                                }
                                else
                                {
+                                   wake_unlock(&psensor_lock);
                                        if((err = 
TMD2772_enable_ps(obj->client, 0)))
                                        {
                                                APS_ERR("disable ps fail: 
%d\n", err); 
@@ -2819,7 +2822,7 @@ static int TMD2772_i2c_probe(struct i2c_client *client, 
const struct i2c_device_
 
        mutex_init(&mutex);
        TMD2772_i2c_client = client;
-       
+       wake_lock_init(&psensor_lock,WAKE_LOCK_SUSPEND,"psensor wakelock");
        if(1 == obj->hw->polling_mode_ps)
                //if (1)
                {

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1359530

Title:
  Device trying to suspend when screen is turned off by proximity sensor
  (during a call)

To manage notifications about this bug go to:
https://bugs.launchpad.net/powerd/+bug/1359530/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to