Patch to block turning off auto brightness during power-off. 64/14564/1
authorsh.pi <sh.pi@samsung.com>
Thu, 28 Mar 2013 09:06:47 +0000 (18:06 +0900)
committerKrzysztof Sasiak <k.sasiak@samsung.com>
Tue, 7 Jan 2014 15:18:59 +0000 (16:18 +0100)
deviced checks lux value from light sensor every second when auto brightness is on.
If there is fail to get light sensor value over 5 times, deviced turn off auto brightness.
In case that sensor-framework is destroyed before deviced, auto brightness is off.
Now deviced don't change auto brightness setting during power-off state.

Change-Id: I70976d52dd484b8cdf01d39cf3e025e85eed86de
Signed-off-by: Krzysztof Sasiak <k.sasiak@samsung.com>
display/core.c
display/core.h
display/lsensor.c
display/setting.h
src/core/predefine.c

index b093465..27ab297 100644 (file)
@@ -1163,6 +1163,18 @@ static int update_setting(int key_idx, int val)
                        backlight_ops.restore();
                }
                break;
+       case SETTING_POWEROFF:
+               switch (val) {
+               case VCONFKEY_SYSMAN_POWER_OFF_NONE:
+               case VCONFKEY_SYSMAN_POWER_OFF_POPUP:
+                       pm_status_flag &= ~PWROFF_FLAG;
+                       break;
+               case VCONFKEY_SYSMAN_POWER_OFF_DIRECT:
+               case VCONFKEY_SYSMAN_POWER_OFF_RESTART:
+                       pm_status_flag |= PWROFF_FLAG;
+                       break;
+               }
+               break;
        default:
                return -1;
        }
index dc8f6ff..6ebd444 100644 (file)
@@ -40,6 +40,7 @@
 #define CHRGR_FLAG             0x00000200
 #define PWRSV_FLAG             0x00000400
 #define BRTCH_FLAG             0x00002000
+#define PWROFF_FLAG            0x00004000
 
 #define TOLERANCE_SLOT         2
 
index d17f045..bf5263c 100644 (file)
@@ -78,7 +78,7 @@ static bool alc_handler(void* data)
                }
        }
 
-       if (fault_count > MAX_FAULT) {
+       if ((fault_count > MAX_FAULT) && !(pm_status_flag & PWROFF_FLAG)) {
                if (alc_timeout_id > 0)
                        ecore_timer_del(alc_timeout_id);
                alc_timeout_id = NULL;
index c78ddd7..42b8201 100644 (file)
@@ -41,6 +41,7 @@ enum {
        SETTING_PM_STATE = SETTING_GET_END,
        SETTING_LOW_BATT,
        SETTING_CHARGING,
+       SETTING_POWEROFF,
        SETTING_END
 };
 
index 758f601..9401ff3 100644 (file)
@@ -41,6 +41,7 @@
 #include "core/data.h"
 #include "common.h"
 #include "display/poll.h"
+#include "setting.h"
 #include "led/led.h"
 
 #define CALL_EXEC_PATH                 PREFIX"/bin/call"
@@ -859,6 +860,9 @@ static void poweroff_control_cb(keynode_t *in_key, struct ss_main_data *ad)
                ss_action_entry_call_internal(PREDEF_REBOOT, 0);
                break;
        }
+
+       if (update_pm_setting)
+               update_pm_setting(SETTING_POWEROFF, val);
 }
 
 void ss_predefine_internal_init(void)