From: David Heidelberg <[email protected]>

When detection for touchscreen-x-mm / y-mm returns 0, fallback to the
platform data, so we get meaningful values.

Signed-off-by: David Heidelberg <[email protected]>
---
 drivers/input/rmi4/rmi_f12.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c
index 88797556e738c..6f2e98c3a3499 100644
--- a/drivers/input/rmi4/rmi_f12.c
+++ b/drivers/input/rmi4/rmi_f12.c
@@ -194,18 +194,29 @@ static int rmi_f12_read_sensor_tuning(struct f12_data 
*f12)
                         "platform data x_mm (%d) != detected x_mm: (%d)\n",
                         sensor->x_mm, x_mm);
 
        if (sensor->y_mm && sensor->y_mm != y_mm)
                dev_warn(&fn->dev,
                         "platform data y_mm (%d) != detected y_mm: (%d)\n",
                         sensor->y_mm, y_mm);
 
-       sensor->x_mm = x_mm;
-       sensor->y_mm = y_mm;
+       if (x_mm)
+               sensor->x_mm = x_mm;
+       else
+               dev_warn(&fn->dev,
+                        "x_mm detection returned 0, keeping %d\n",
+                        sensor->x_mm);
+
+       if (y_mm)
+               sensor->y_mm = y_mm;
+       else
+               dev_warn(&fn->dev,
+                        "y_mm detection returned 0, keeping %d\n",
+                        sensor->y_mm);
 
        rmi_dbg(RMI_DEBUG_FN, &fn->dev, "%s: x_mm: %d y_mm: %d\n", __func__,
                sensor->x_mm, sensor->y_mm);
 
        return 0;
 }
 
 static void rmi_f12_process_objects(struct f12_data *f12, u8 *data1, u32 size)

-- 
2.53.0



Reply via email to