diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2020-07-21 22:17:27 -0700 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2020-07-21 22:17:27 -0700 |
commit | a5c33d5f745ca1ecfbd692a531ef2a12bfeeb57e (patch) | |
tree | 7f46722dcd4bdce411612d9ccb83651795dad5e3 /drivers/input/mouse/elan_i2c_core.c | |
parent | 9b031c86506cef9acae45e61339fcf9deaabb793 (diff) | |
parent | a50ca29523b18baea548bdf5df9b4b923c2bb4f6 (diff) |
Merge branch 'for-linus' into next
Sync up with 'for-linus' branch to resolve conflict in Elan touchpad
driver.
Diffstat (limited to 'drivers/input/mouse/elan_i2c_core.c')
-rw-r--r-- | drivers/input/mouse/elan_i2c_core.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c index 4b6e2dffc0ea..8a0f224da423 100644 --- a/drivers/input/mouse/elan_i2c_core.c +++ b/drivers/input/mouse/elan_i2c_core.c @@ -997,6 +997,8 @@ static void elan_report_absolute(struct elan_tp_data *data, u8 *packet, u8 hover_info = packet[ETP_HOVER_INFO_OFFSET]; bool contact_valid, hover_event; + pm_wakeup_event(&data->client->dev, 0); + hover_event = hover_info & BIT(6); for (i = 0; i < ETP_MAX_FINGERS; i++) { @@ -1021,6 +1023,8 @@ static void elan_report_trackpoint(struct elan_tp_data *data, u8 *report) u8 *packet = &report[ETP_REPORT_ID_OFFSET + 1]; int x, y; + pm_wakeup_event(&data->client->dev, 0); + if (!data->tp_input) { dev_warn_once(&data->client->dev, "received a trackpoint report while no trackpoint device has been created. Please report upstream.\n"); @@ -1045,7 +1049,6 @@ static void elan_report_trackpoint(struct elan_tp_data *data, u8 *report) static irqreturn_t elan_isr(int irq, void *dev_id) { struct elan_tp_data *data = dev_id; - struct device *dev = &data->client->dev; int error; u8 report[ETP_MAX_REPORT_LEN]; @@ -1063,8 +1066,6 @@ static irqreturn_t elan_isr(int irq, void *dev_id) if (error) goto out; - pm_wakeup_event(dev, 0); - switch (report[ETP_REPORT_ID_OFFSET]) { case ETP_REPORT_ID: elan_report_absolute(data, report, false); @@ -1076,7 +1077,7 @@ static irqreturn_t elan_isr(int irq, void *dev_id) elan_report_trackpoint(data, report); break; default: - dev_err(dev, "invalid report id data (%x)\n", + dev_err(&data->client->dev, "invalid report id data (%x)\n", report[ETP_REPORT_ID_OFFSET]); } |