Input: synaptics - fix resolution for manually provided min/max
[firefly-linux-kernel-4.4.55.git] / drivers / input / mouse / synaptics.c
index c5ec703c727e11de8dd52297c0e8b7580003dab8..ec772d962f06800fc92915fa27d51b25fca1e56f 100644 (file)
@@ -347,15 +347,6 @@ static int synaptics_resolution(struct psmouse *psmouse)
        unsigned char resp[3];
        int i;
 
-       for (i = 0; min_max_pnpid_table[i].pnp_ids; i++)
-               if (matches_pnp_id(psmouse, min_max_pnpid_table[i].pnp_ids)) {
-                       priv->x_min = min_max_pnpid_table[i].x_min;
-                       priv->x_max = min_max_pnpid_table[i].x_max;
-                       priv->y_min = min_max_pnpid_table[i].y_min;
-                       priv->y_max = min_max_pnpid_table[i].y_max;
-                       return 0;
-               }
-
        if (SYN_ID_MAJOR(priv->identity) < 4)
                return 0;
 
@@ -366,6 +357,16 @@ static int synaptics_resolution(struct psmouse *psmouse)
                }
        }
 
+       for (i = 0; min_max_pnpid_table[i].pnp_ids; i++) {
+               if (matches_pnp_id(psmouse, min_max_pnpid_table[i].pnp_ids)) {
+                       priv->x_min = min_max_pnpid_table[i].x_min;
+                       priv->x_max = min_max_pnpid_table[i].x_max;
+                       priv->y_min = min_max_pnpid_table[i].y_min;
+                       priv->y_max = min_max_pnpid_table[i].y_max;
+                       return 0;
+               }
+       }
+
        if (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 5 &&
            SYN_CAP_MAX_DIMENSIONS(priv->ext_cap_0c)) {
                if (synaptics_send_cmd(psmouse, SYN_QUE_EXT_MAX_COORDS, resp)) {