synaptics S3320: bring inline with lineage-15.1

Change-Id: I36d8cbac90add8cccef212eccae7dede9c9b806a
This commit is contained in:
codeworkx 2018-12-14 18:38:59 +01:00
parent 083d0a1baf
commit 3ea60bc578
6 changed files with 565 additions and 651 deletions

View file

@ -91,6 +91,11 @@ sent in the evdev event stream.
event and query the device (using EVIOCG* ioctls) to obtain its
current state.
* SYN_TIME_SEC, SYN_TIME_NSEC:
- Used to report the timestamp from the hardware. The timestamp should record
the exact time when the hardware events happens. The timestamp is
CLOCK_MONOTONIC based.
EV_KEY:
----------
EV_KEY events take the form KEY_<name> or BTN_<name>. For example, KEY_A is used

View file

@ -273,6 +273,8 @@ static int input_get_disposition(struct input_dev *dev,
case EV_SYN:
switch (code) {
case SYN_CONFIG:
case SYN_TIME_SEC:
case SYN_TIME_NSEC:
disposition = INPUT_PASS_TO_ALL;
break;

File diff suppressed because it is too large Load diff

View file

@ -917,6 +917,11 @@ static int synaptics_rmi4_f11_abs_report(struct synaptics_rmi4_data *rmi4_data,
if (retval < 0)
return 0;
input_event(rmi4_data->input_dev, EV_SYN, SYN_TIME_SEC,
ktime_to_timespec(rmi4_data->timestamp).tv_sec);
input_event(rmi4_data->input_dev, EV_SYN, SYN_TIME_NSEC,
ktime_to_timespec(rmi4_data->timestamp).tv_nsec);
for (finger = 0; finger < fingers_supported; finger++) {
reg_index = finger / 4;
finger_shift = (finger % 4) * 2;
@ -1106,6 +1111,11 @@ static int synaptics_rmi4_f12_abs_report(struct synaptics_rmi4_data *rmi4_data,
data = (struct synaptics_rmi4_f12_finger_data *)fhandler->data;
input_event(rmi4_data->input_dev, EV_SYN, SYN_TIME_SEC,
ktime_to_timespec(rmi4_data->timestamp).tv_sec);
input_event(rmi4_data->input_dev, EV_SYN, SYN_TIME_NSEC,
ktime_to_timespec(rmi4_data->timestamp).tv_nsec);
for (finger = 0; finger < fingers_to_process; finger++) {
finger_data = data + finger;
finger_status = finger_data->object_type_and_status;
@ -1438,6 +1448,8 @@ static irqreturn_t synaptics_rmi4_irq(int irq, void *data)
if (IRQ_HANDLED == synaptics_filter_interrupt(data))
return IRQ_HANDLED;
rmi4_data->timestamp = ktime_get();
synaptics_rmi4_sensor_report(rmi4_data);
return IRQ_HANDLED;

View file

@ -314,6 +314,7 @@ struct synaptics_rmi4_data {
struct clk *core_clk;
struct clk *iface_clk;
#endif
ktime_t timestamp;
};
struct synaptics_dsx_bus_access {

View file

@ -57,6 +57,8 @@
#define SYN_CONFIG 1
#define SYN_MT_REPORT 2
#define SYN_DROPPED 3
#define SYN_TIME_SEC 4
#define SYN_TIME_NSEC 5
#define SYN_MAX 0xf
#define SYN_CNT (SYN_MAX+1)