diff options
| author | David Heidelberg <david@ixit.cz> | 2026-08-06 19:17:46 +0200 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2026-08-13 12:13:43 -0700 |
| commit | 9a29ee801f525bcad71fea021bfe2a030885c8df (patch) | |
| tree | aa3686816899ae58e51de55c9b70bd255529f3cc /drivers/input | |
| parent | c91d080c4e567562107bcb91c2f72556b317b0a8 (diff) | |
Input: rmi4 - use platform data instead of query, when available
Platform data may define touchscreen-x-mm and touchscreen-y-mm, but
these were quietly overridden by data provided by sensor.
Signed-off-by: David Heidelberg <david@ixit.cz>
Link: https://patch.msgid.link/20260731-respect-x-y-mm-v1-0-3e85a4bec745@ixit.cz
Link: https://patch.msgid.link/20260806-respect-x-y-mm-v2-1-e0681ed3d63c@ixit.cz
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input')
| -rw-r--r-- | drivers/input/rmi4/rmi_f12.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c index 88c28089de99..841884d967a3 100644 --- a/drivers/input/rmi4/rmi_f12.c +++ b/drivers/input/rmi4/rmi_f12.c @@ -155,6 +155,10 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12) offset += 4; } + /* When platform data are provided, we're done */ + if (sensor->x_mm && sensor->y_mm) + return 0; + /* * Use the Query DPM feature when the resolution query register * exists. @@ -171,8 +175,10 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12) } dpm_resolution = buf[0]; - sensor->x_mm = sensor->max_x / dpm_resolution; - sensor->y_mm = sensor->max_y / dpm_resolution; + if (!sensor->x_mm) + sensor->x_mm = sensor->max_x / dpm_resolution; + if (!sensor->y_mm) + sensor->y_mm = sensor->max_y / dpm_resolution; } else { if (rmi_register_desc_has_subpacket(item, 3)) { rx_receivers = buf[offset]; @@ -184,8 +190,10 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12) if (rmi_register_desc_has_subpacket(item, 4)) offset += 1; - sensor->x_mm = (pitch_x * rx_receivers) >> 12; - sensor->y_mm = (pitch_y * tx_receivers) >> 12; + if (!sensor->x_mm) + sensor->x_mm = (pitch_x * rx_receivers) >> 12; + if (!sensor->y_mm) + sensor->y_mm = (pitch_y * tx_receivers) >> 12; } rmi_dbg(RMI_DEBUG_FN, &fn->dev, "%s: x_mm: %d y_mm: %d\n", __func__, |
