summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/rmi4/rmi_f12.c16
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__,