[HTC One S] Zarboz:
never

our device will never support it

it does not have the hardware to support it

it will never happen

unless you wanna re engineer something that works off a X and Y coordinate to rely soley on an emulated keypad press

then ill be happy to bring you "real" sweep2wake

example

Sweep2wake code:

#ifdef CONFIG_TOUCHSCREEN_VILLE_SWEEP2WAKE
// printk(KERN_INFO "[SWEEP2WAKE_DEBUG]: TOUCH at x = %d\n", ts->finger_data[loop_i].x);
//left -> right
if ((s2w_switch > 0) && (scr_suspended == true) && (ts->finger_count == 1)) {
if ((barrier[0] == true) ||
((ts->finger_data[loop_i].x > barrier1) &&
(ts->finger_data[loop_i].x < barrier2) &&
(ts->finger_data[loop_i].y > 900))) {
if ((led_exec_count == true) && (scr_on_touch == false) && (s2w_switch == 2)) {
// pm8058_drvx_led_brightness_set(sweep2wake_leddev, 255);
printk(KERN_INFO "[sweep2wake]: activated button backlight.\n");
led_exec_count = false;
}
barrier[0] = true;
if ((barrier[1] == true) ||
((ts->finger_data[loop_i].x > barrier2) &&
(ts->finger_data[loop_i].x < barrier3) &&
(ts->finger_data[loop_i].y > 900))) {
barrier[1] = true;
if ((ts->finger_data[loop_i].x > barrier3) &&
(ts->finger_data[loop_i].y > 900)) {
if (exec_count) {
printk(KERN_INFO "[sweep2wake]: POWER ON.\n");
sweep2wake_pwrtrigger();
exec_count = false;
break;
}
}
}
}
//right -> left
} else if ((s2w_switch > 0) && (scr_suspended == false) && (ts->finger_count == 1)) {
scr_on_touch=true;
if ((barrier[0] == true) ||
((ts->finger_data[loop_i].x < barrier4) &&
(ts->finger_data[loop_i].x > barrier3) &&
(ts->finger_data[loop_i].y > 900))) {
barrier[0] = true;
if ((barrier[1] == true) ||
((ts->finger_data[loop_i].x < barrier3) &&
(ts->finger_data[loop_i].x > barrier2) &&
(ts->finger_data[loop_i].y > 900))) {
barrier[1] = true;
if ((ts->finger_data[loop_i].x < barrier2) &&
(ts->finger_data[loop_i].y > 900)) {
if (exec_count) {
printk(KERN_INFO "[sweep2wake]: POWER OFF.\n");
sweep2wake_pwrtrigger();
exec_count = false;
break;
}
}
}
}
}
#endif
if (ts->debug_log_level & 0x2)
printk(KERN_INFO "[TP]Finger %d=> X:%d, Y:%d, w:%d, z:%d, F:%d\n",
loop_i + 1,
ts->finger_data[loop_i].x, ts->finger_data[loop_i].y,
ts->finger_data[loop_i].w, ts->finger_data[loop_i].z,
ts->finger_count);
} else
return;
}
}
}

Notice how it relys on a X and Y coordinate

our soft keys DONT HAVE A COORDINATE DISPLAY

here is how they com out

static void report_key_func(struct cy8c_cs_data *cs, uint8_t vk)
{
#ifdef CONFIG_TOUCHSCREEN_CYPRESS_SWEEP2WAKE
int prevkey =0, nextkey =0;
#endif

int ret= 0;
printk(KERN_INFO"[sweep2wake]: vk = %x\n", vk);

if ((cs->debug_level & 0x01) || 1 == board_mfg_mode())
pr_info("[cap] vk = %x\n", vk);

if (vk) {
switch (vk) {
case 0x01:
input_report_key(cs->input_dev, cs->keycode[0], 1);
cs->vk_id = vk;
break;
case 0x02:
input_report_key(cs->input_dev, cs->keycode[1], 1);
cs->vk_id = vk;
break;
case 0x04:
input_report_key(cs->input_dev, cs->keycode[2], 1);
cs->vk_id = vk;
break;
case 0x08:
input_report_key(cs->input_dev, cs->keycode[3], 1);
cs->vk_id = vk;
break;
}
#if defined(CONFIG_TOUCH_KEY_FILTER)
blocking_notifier_call_chain(&touchkey_notifier_list, 1, NULL);
#endif
} else {
switch (cs->vk_id) {
case 0x01:
input_report_key(cs->input_dev, cs->keycode[0], 0);
break;
case 0x02:
input_report_key(cs->input_dev, cs->keycode[1], 0);
break;
case 0x04:
input_report_key(cs->input_dev, cs->keycode[2], 0);
break;
case 0x08:
input_report_key(cs->input_dev, cs->keycode[3], 0);
break;
}

cs->vk_id = 0;

notice nowhere there is a x or Y printout??? just Keycode

wich comes out a VK = (1,2,3,4)

depending on Key pressed

the way that sweep 2 wake works is like this

when the barriers are broken THEN Wake or sleep as the case is

reprogramming the entire algorithm from scratch is something that is beyond my skills

please ask a C developer to help you in Writing a new sweep2wake algorithm from scratch

i dont have enough free time to invest into this