aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/mouse/synaptics.c44
1 files changed, 20 insertions, 24 deletions
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 34bcc1fc59fd..8e9360ab4ec4 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -712,39 +712,38 @@ static psmouse_ret_t synaptics_process_byte(struct psmouse *psmouse)
712/***************************************************************************** 712/*****************************************************************************
713 * Driver initialization/cleanup functions 713 * Driver initialization/cleanup functions
714 ****************************************************************************/ 714 ****************************************************************************/
715static void set_abs_position_params(struct input_dev *dev,
716 struct synaptics_data *priv, int x_code,
717 int y_code)
718{
719 int x_min = priv->x_min ?: XMIN_NOMINAL;
720 int x_max = priv->x_max ?: XMAX_NOMINAL;
721 int y_min = priv->y_min ?: YMIN_NOMINAL;
722 int y_max = priv->y_max ?: YMAX_NOMINAL;
723 int fuzz = SYN_CAP_REDUCED_FILTERING(priv->ext_cap_0c) ?
724 SYN_REDUCED_FILTER_FUZZ : 0;
725
726 input_set_abs_params(dev, x_code, x_min, x_max, fuzz, 0);
727 input_set_abs_params(dev, y_code, y_min, y_max, fuzz, 0);
728 input_abs_set_res(dev, x_code, priv->x_res);
729 input_abs_set_res(dev, y_code, priv->y_res);
730}
731
715static void set_input_params(struct input_dev *dev, struct synaptics_data *priv) 732static void set_input_params(struct input_dev *dev, struct synaptics_data *priv)
716{ 733{
717 int i; 734 int i;
718 int fuzz = SYN_CAP_REDUCED_FILTERING(priv->ext_cap_0c) ?
719 SYN_REDUCED_FILTER_FUZZ : 0;
720 735
721 __set_bit(INPUT_PROP_POINTER, dev->propbit); 736 __set_bit(INPUT_PROP_POINTER, dev->propbit);
722 737
723 __set_bit(EV_ABS, dev->evbit); 738 __set_bit(EV_ABS, dev->evbit);
724 input_set_abs_params(dev, ABS_X, 739 set_abs_position_params(dev, priv, ABS_X, ABS_Y);
725 priv->x_min ?: XMIN_NOMINAL,
726 priv->x_max ?: XMAX_NOMINAL,
727 fuzz, 0);
728 input_set_abs_params(dev, ABS_Y,
729 priv->y_min ?: YMIN_NOMINAL,
730 priv->y_max ?: YMAX_NOMINAL,
731 fuzz, 0);
732 input_set_abs_params(dev, ABS_PRESSURE, 0, 255, 0, 0); 740 input_set_abs_params(dev, ABS_PRESSURE, 0, 255, 0, 0);
733 741
734 if (SYN_CAP_ADV_GESTURE(priv->ext_cap_0c)) { 742 if (SYN_CAP_ADV_GESTURE(priv->ext_cap_0c)) {
735 __set_bit(INPUT_PROP_SEMI_MT, dev->propbit); 743 __set_bit(INPUT_PROP_SEMI_MT, dev->propbit);
736 input_mt_init_slots(dev, 2); 744 input_mt_init_slots(dev, 2);
737 input_set_abs_params(dev, ABS_MT_POSITION_X, 745 set_abs_position_params(dev, priv, ABS_MT_POSITION_X,
738 priv->x_min ?: XMIN_NOMINAL, 746 ABS_MT_POSITION_Y);
739 priv->x_max ?: XMAX_NOMINAL,
740 fuzz, 0);
741 input_set_abs_params(dev, ABS_MT_POSITION_Y,
742 priv->y_min ?: YMIN_NOMINAL,
743 priv->y_max ?: YMAX_NOMINAL,
744 fuzz, 0);
745
746 input_abs_set_res(dev, ABS_MT_POSITION_X, priv->x_res);
747 input_abs_set_res(dev, ABS_MT_POSITION_Y, priv->y_res);
748 } 747 }
749 748
750 if (SYN_CAP_PALMDETECT(priv->capabilities)) 749 if (SYN_CAP_PALMDETECT(priv->capabilities))
@@ -777,9 +776,6 @@ static void set_input_params(struct input_dev *dev, struct synaptics_data *priv)
777 __clear_bit(REL_X, dev->relbit); 776 __clear_bit(REL_X, dev->relbit);
778 __clear_bit(REL_Y, dev->relbit); 777 __clear_bit(REL_Y, dev->relbit);
779 778
780 input_abs_set_res(dev, ABS_X, priv->x_res);
781 input_abs_set_res(dev, ABS_Y, priv->y_res);
782
783 if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) { 779 if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) {
784 __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit); 780 __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit);
785 /* Clickpads report only left button */ 781 /* Clickpads report only left button */