diff --git a/drivers/input/rmi4/rmi_bus.h b/drivers/input/rmi4/rmi_bus.h
index 62fd544..a21e4c4 100644
--- a/drivers/input/rmi4/rmi_bus.h
+++ b/drivers/input/rmi4/rmi_bus.h
@@ -278,7 +278,6 @@ static inline int rmi_write_block(struct rmi_device *d, u16 addr,
 
 int rmi_register_transport_device(struct rmi_transport_dev *xport);
 void rmi_unregister_transport_device(struct rmi_transport_dev *xport);
-int rmi_for_each_dev(void *data, int (*func)(struct device *dev, void *data));
 
 /**
  * module_rmi_driver() - Helper macro for registering a function driver
diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
index e44eff7..9ec7b93 100644
--- a/drivers/input/rmi4/rmi_driver.c
+++ b/drivers/input/rmi4/rmi_driver.c
@@ -32,15 +32,12 @@
 
 #define RMI4_MAX_N_IRQS 256
 
-#define HAS_NONSTANDARD_PDT_MASK 0x40
 #define RMI4_MAX_PAGE 0xff
 #define RMI4_PAGE_SIZE 0x100
 
 #define RMI_DEVICE_RESET_CMD	0x01
 #define DEFAULT_RESET_DELAY_MS	100
 
-#define DEFAULT_POLL_INTERVAL_MS	13
-
 static irqreturn_t rmi_irq_thread(int irq, void *p)
 {
 	struct rmi_transport_dev *xport = p;
diff --git a/drivers/input/rmi4/rmi_f01.c b/drivers/input/rmi4/rmi_f01.c
index 98bc65a9..4cb9fcb 100644
--- a/drivers/input/rmi4/rmi_f01.c
+++ b/drivers/input/rmi4/rmi_f01.c
@@ -15,27 +15,11 @@
 #include "rmi_driver.h"
 
 #define RMI_PRODUCT_ID_LENGTH    10
-#define RMI_PRODUCT_INFO_LENGTH   2
-
-#define RMI_DATE_CODE_LENGTH      3
-
-#define PRODUCT_ID_OFFSET 0x10
-#define PRODUCT_INFO_OFFSET 0x1E
-
-
-/* Force a firmware reset of the sensor */
-#define RMI_F01_CMD_DEVICE_RESET	1
 
 /* Various F01_RMI_QueryX bits */
-
-#define RMI_F01_QRY1_CUSTOM_MAP		(1 << 0)
-#define RMI_F01_QRY1_NON_COMPLIANT	(1 << 1)
 #define RMI_F01_QRY1_HAS_LTS		(1 << 2)
-#define RMI_F01_QRY1_HAS_SENSOR_ID	(1 << 3)
-#define RMI_F01_QRY1_HAS_CHARGER_INP	(1 << 4)
 #define RMI_F01_QRY1_HAS_ADJ_DOZE	(1 << 5)
 #define RMI_F01_QRY1_HAS_ADJ_DOZE_HOFF	(1 << 6)
-#define RMI_F01_QRY1_HAS_PROPS_2	(1 << 7)
 
 #define RMI_F01_QRY5_YEAR_MASK		0x1f
 #define RMI_F01_QRY6_MONTH_MASK		0x0f
@@ -52,7 +36,6 @@ struct f01_basic_properties {
 	bool has_adjustable_doze_holdoff;
 	char dom[11]; /* YYYY/MM/DD + '\0' */
 	u8 product_id[RMI_PRODUCT_ID_LENGTH + 1];
-	u16 productinfo;
 };
 
 /* F01 device status bits */
@@ -87,19 +70,6 @@ struct f01_basic_properties {
 #define RMI_F01_CRTL0_NOSLEEP_BIT	(1 << 2)
 
 /*
- * When this bit is set, the touch controller employs a noise-filtering
- * algorithm designed for use with a connected battery charger.
- */
-#define RMI_F01_CRTL0_CHARGER_BIT	(1 << 5)
-
-/*
- * Sets the report rate for the device. The effect of this setting is
- * highly product dependent. Check the spec sheet for your particular
- * touch sensor.
- */
-#define RMI_F01_CRTL0_REPORTRATE_BIT	(1 << 6)
-
-/*
  * Written by the host as an indicator that the device has been
  * successfully configured.
  */
@@ -127,7 +97,6 @@ struct f01_data {
 	struct f01_basic_properties properties;
 
 	struct f01_device_control device_control;
-	struct mutex control_mutex;
 
 	u8 device_status;
 
@@ -135,11 +104,9 @@ struct f01_data {
 	u16 doze_interval_addr;
 	u16 wakeup_threshold_addr;
 	u16 doze_holdoff_addr;
-	int irq_count;
 	int num_of_irq_regs;
 
 #ifdef CONFIG_PM_SLEEP
-	bool suspended;
 	bool old_nosleep;
 #endif
 };
@@ -199,10 +166,6 @@ static int rmi_f01_read_properties(struct rmi_device *rmi_dev,
 		RMI_PRODUCT_ID_LENGTH);
 	props->product_id[RMI_PRODUCT_ID_LENGTH] = '\0';
 
-	props->productinfo =
-			((basic_query[2] & RMI_F01_QRY2_PRODINFO_MASK) << 7) |
-			(basic_query[3] & RMI_F01_QRY2_PRODINFO_MASK);
-
 	return 0;
 }
 
@@ -216,8 +179,6 @@ static int rmi_f01_initialize(struct rmi_function *fn)
 	struct f01_data *data = fn->data;
 	struct rmi_device_platform_data *pdata = to_rmi_platform_data(rmi_dev);
 
-	mutex_init(&data->control_mutex);
-
 	/*
 	 * Set the configured bit and (optionally) other important stuff
 	 * in the device control register.
@@ -263,7 +224,6 @@ static int rmi_f01_initialize(struct rmi_function *fn)
 		return error;
 	}
 
-	data->irq_count = driver_data->irq_count;
 	data->num_of_irq_regs = driver_data->num_of_irq_regs;
 	ctrl_base_addr += sizeof(u8);
 
diff --git a/drivers/input/rmi4/rmi_f11.c b/drivers/input/rmi4/rmi_f11.c
index 9d94b1a..b114f25 100644
--- a/drivers/input/rmi4/rmi_f11.c
+++ b/drivers/input/rmi4/rmi_f11.c
@@ -7,8 +7,6 @@
  * the Free Software Foundation.
  */
 
-#define FUNCTION_DATA f11_data
-
 #include <linux/kernel.h>
 #include <linux/delay.h>
 #include <linux/device.h>
@@ -19,9 +17,6 @@
 #include <linux/slab.h>
 #include "rmi_driver.h"
 
-#define F11_MAX_NUM_OF_FINGERS		10
-#define F11_MAX_NUM_OF_TOUCH_SHAPES	16
-
 #define F11_REL_POS_MIN		-128
 #define F11_REL_POS_MAX		127
 
@@ -30,14 +25,12 @@
 #define F11_CTRL_SENSOR_MAX_X_POS_OFFSET	6
 #define F11_CTRL_SENSOR_MAX_Y_POS_OFFSET	8
 
-#define DEFAULT_XY_MAX 9999
 #define DEFAULT_MAX_ABS_MT_PRESSURE 255
 #define DEFAULT_MAX_ABS_MT_TOUCH 15
 #define DEFAULT_MAX_ABS_MT_ORIENTATION 1
 #define DEFAULT_MIN_ABS_MT_TRACKING_ID 1
 #define DEFAULT_MAX_ABS_MT_TRACKING_ID 10
 #define NAME_BUFFER_SIZE 256
-#define FUNCTION_NUMBER 0x11
 
 /** A note about RMI4 F11 register structure.
  *
@@ -81,108 +74,37 @@
 #define RMI_F11_HAS_QUERY28             (1 << 7)
 
 /** Defs for Query 1 */
-
 #define RMI_F11_NR_FINGERS_MASK 0x07
 #define RMI_F11_HAS_REL                 (1 << 3)
 #define RMI_F11_HAS_ABS                 (1 << 4)
 #define RMI_F11_HAS_GESTURES            (1 << 5)
-#define RMI_F11_HAS_SENSITIVITY_ADJ     (1 << 6)
-#define RMI_F11_CONFIGURABLE            (1 << 7)
-
-/** Defs for Query 2, 3, and 4. */
-#define RMI_F11_NR_ELECTRODES_MASK      0x7F
 
 /** Defs for Query 5 */
-
-#define RMI_F11_ABS_DATA_SIZE_MASK      0x03
-#define RMI_F11_HAS_ANCHORED_FINGER     (1 << 2)
-#define RMI_F11_HAS_ADJ_HYST            (1 << 3)
-#define RMI_F11_HAS_DRIBBLE             (1 << 4)
-#define RMI_F11_HAS_BENDING_CORRECTION  (1 << 5)
-#define RMI_F11_HAS_LARGE_OBJECT_SUPPRESSION    (1 << 6)
 #define RMI_F11_HAS_JITTER_FILTER       (1 << 7)
 
 /** Defs for Query 7 */
-#define RMI_F11_HAS_SINGLE_TAP                  (1 << 0)
-#define RMI_F11_HAS_TAP_AND_HOLD                (1 << 1)
-#define RMI_F11_HAS_DOUBLE_TAP                  (1 << 2)
-#define RMI_F11_HAS_EARLY_TAP                   (1 << 3)
 #define RMI_F11_HAS_FLICK                       (1 << 4)
-#define RMI_F11_HAS_PRESS                       (1 << 5)
 #define RMI_F11_HAS_PINCH                       (1 << 6)
-#define RMI_F11_HAS_CHIRAL                      (1 << 7)
 
 /** Defs for Query 8 */
-#define RMI_F11_HAS_PALM_DET                    (1 << 0)
 #define RMI_F11_HAS_ROTATE                      (1 << 1)
 #define RMI_F11_HAS_TOUCH_SHAPES                (1 << 2)
-#define RMI_F11_HAS_SCROLL_ZONES                (1 << 3)
-#define RMI_F11_HAS_INDIVIDUAL_SCROLL_ZONES     (1 << 4)
-#define RMI_F11_HAS_MF_SCROLL                   (1 << 5)
-#define RMI_F11_HAS_MF_EDGE_MOTION              (1 << 6)
-#define RMI_F11_HAS_MF_SCROLL_INERTIA           (1 << 7)
 
 /** Defs for Query 9. */
 #define RMI_F11_HAS_PEN                         (1 << 0)
-#define RMI_F11_HAS_PROXIMITY                   (1 << 1)
-#define RMI_F11_HAS_PALM_DET_SENSITIVITY        (1 << 2)
-#define RMI_F11_HAS_SUPPRESS_ON_PALM_DETECT     (1 << 3)
-#define RMI_F11_HAS_TWO_PEN_THRESHOLDS          (1 << 4)
-#define RMI_F11_HAS_CONTACT_GEOMETRY            (1 << 5)
-#define RMI_F11_HAS_PEN_HOVER_DISCRIMINATION    (1 << 6)
-#define RMI_F11_HAS_PEN_FILTERS                 (1 << 7)
 
 /** Defs for Query 10. */
 #define RMI_F11_NR_TOUCH_SHAPES_MASK            0x1F
 
-/** Defs for Query 11 */
-
-#define RMI_F11_HAS_Z_TUNING                    (1 << 0)
-#define RMI_F11_HAS_ALGORITHM_SELECTION         (1 << 1)
-#define RMI_F11_HAS_W_TUNING                    (1 << 2)
-#define RMI_F11_HAS_PITCH_INFO                  (1 << 3)
-#define RMI_F11_HAS_FINGER_SIZE                 (1 << 4)
-#define RMI_F11_HAS_SEGMENTATION_AGGRESSIVENESS (1 << 5)
-#define RMI_F11_HAS_XY_CLIP                     (1 << 6)
-#define RMI_F11_HAS_DRUMMING_FILTER             (1 << 7)
-
 /** Defs for Query 12. */
-
-#define RMI_F11_HAS_GAPLESS_FINGER              (1 << 0)
-#define RMI_F11_HAS_GAPLESS_FINGER_TUNING       (1 << 1)
-#define RMI_F11_HAS_8BIT_W                      (1 << 2)
-#define RMI_F11_HAS_ADJUSTABLE_MAPPING          (1 << 3)
 #define RMI_F11_HAS_INFO2                       (1 << 4)
-#define RMI_F11_HAS_PHYSICAL_PROPS              (1 << 5)
-#define RMI_F11_HAS_FINGER_LIMIT                (1 << 6)
-#define RMI_F11_HAS_LINEAR_COEFF                (1 << 7)
-
-/** Defs for Query 13. */
-
-#define RMI_F11_JITTER_WINDOW_MASK              0x1F
-#define RMI_F11_JITTER_FILTER_MASK              0x60
-#define RMI_F11_JITTER_FILTER_SHIFT             5
 
 /** Defs for Query 14. */
-#define RMI_F11_LIGHT_CONTROL_MASK              0x03
 #define RMI_F11_IS_CLEAR                        (1 << 2)
-#define RMI_F11_CLICKPAD_PROPS_MASK             0x18
-#define RMI_F11_CLICKPAD_PROPS_SHIFT            3
-#define RMI_F11_MOUSE_BUTTONS_MASK              0x60
-#define RMI_F11_MOUSE_BUTTONS_SHIFT             5
-#define RMI_F11_HAS_ADVANCED_GESTURES           (1 << 7)
 
 #define RMI_F11_QUERY_SIZE                      4
 #define RMI_F11_QUERY_GESTURE_SIZE              2
 
-#define F11_LIGHT_CTL_NONE 0x00
-#define F11_LUXPAD	   0x01
-#define F11_DUAL_MODE      0x02
-
-#define F11_NOT_CLICKPAD     0x00
-#define F11_HINGED_CLICKPAD  0x01
-#define F11_UNIFORM_CLICKPAD 0x02
-
 /**
  * Query registers 1 through 4 are always present.
  *
@@ -191,55 +113,18 @@
  * @has_rel - the sensor supports relative motion reporting.
  * @has_abs - the sensor supports absolute poition reporting.
  * @has_gestures - the sensor supports gesture reporting.
- * @has_sensitivity_adjust - the sensor supports a global sensitivity
- * adjustment.
- * @configurable - the sensor supports various configuration options.
- * @num_of_x_electrodes -  the maximum number of electrodes the 2-D sensor
- * supports on the X axis.
- * @num_of_y_electrodes -  the maximum number of electrodes the 2-D sensor
- * supports on the Y axis.
- * @max_electrodes - the total number of X and Y electrodes that may be
- * configured.
  *
  * Query 5 is present if the has_abs bit is set.
  *
- * @abs_data_size - describes the format of data reported by the absolute
- * data source.  Only one format (the kind used here) is supported at this
- * time.
- * @has_anchored_finger - then the sensor supports the high-precision second
- * finger tracking provided by the manual tracking and motion sensitivity
- * options.
- * @has_adjust_hyst - the difference between the finger release threshold and
- * the touch threshold.
- * @has_dribble - the sensor supports the generation of dribble interrupts,
- * which may be enabled or disabled with the dribble control bit.
- * @has_bending_correction - Bending related data registers 28 and 36, and
- * control register 52..57 are present.
- * @has_large_object_suppression - control register 58 and data register 28
- * exist.
  * @has_jitter_filter - query 13 and control 73..76 exist.
  *
  * Gesture information queries 7 and 8 are present if has_gestures bit is set.
  *
- * @has_single_tap - a basic single-tap gesture is supported.
- * @has_tap_n_hold - tap-and-hold gesture is supported.
- * @has_double_tap - double-tap gesture is supported.
- * @has_early_tap - early tap is supported and reported as soon as the finger
- * lifts for any tap event that could be interpreted as either a single tap
- * or as the first tap of a double-tap or tap-and-hold gesture.
  * @has_flick - flick detection is supported.
- * @has_press - press gesture reporting is supported.
  * @has_pinch - pinch gesture detection is supported.
- * @has_palm_det - the 2-D sensor notifies the host whenever a large conductive
- * object such as a palm or a cheek touches the 2-D sensor.
  * @has_rotate - rotation gesture detection is supported.
  * @has_touch_shapes - TouchShapes are supported.  A TouchShape is a fixed
  * rectangular area on the sensor that behaves like a capacitive button.
- * @has_scroll_zones - scrolling areas near the sensor edges are supported.
- * @has_individual_scroll_zones - if 1, then 4 scroll zones are supported;
- * if 0, then only two are supported.
- * @has_mf_scroll - the multifinger_scrolling bit will be set when
- * more than one finger is involved in a scrolling action.
  *
  * Convenience for checking bytes in the gesture info registers.  This is done
  * often enough that we put it here to declutter the conditionals
@@ -251,68 +136,21 @@
  *
  * @has_pen - detection of a stylus is supported and registers F11_2D_Ctrl20
  * and F11_2D_Ctrl21 exist.
- * @has_proximity - detection of fingers near the sensor is supported and
- * registers F11_2D_Ctrl22 through F11_2D_Ctrl26 exist.
- * @has_palm_det_sensitivity -  the sensor supports the palm detect sensitivity
- * feature and register F11_2D_Ctrl27 exists.
- * @has_two_pen_thresholds - is has_pen is also set, then F11_2D_Ctrl35 exists.
- * @has_contact_geometry - the sensor supports the use of contact geometry to
- * map absolute X and Y target positions and registers F11_2D_Data18
- * through F11_2D_Data27 exist.
  *
  * Touch shape info (query 10) is present if has_touch_shapes is set.
  *
  * @nr_touch_shapes - the total number of touch shapes supported.
  *
  * Query 11 is present if the has_query11 bit is set in query 0.
- *
- * @has_z_tuning - if set, the sensor supports Z tuning and registers
- * F11_2D_Ctrl29 through F11_2D_Ctrl33 exist.
- * @has_algorithm_selection - controls choice of noise suppression algorithm
- * @has_w_tuning - the sensor supports Wx and Wy scaling and registers
- * F11_2D_Ctrl36 through F11_2D_Ctrl39 exist.
- * @has_pitch_info - the X and Y pitches of the sensor electrodes can be
- * configured and registers F11_2D_Ctrl40 and F11_2D_Ctrl41 exist.
- * @has_finger_size -  the default finger width settings for the
- * sensor can be configured and registers F11_2D_Ctrl42 through F11_2D_Ctrl44
- * exist.
- * @has_segmentation_aggressiveness - the sensor’s ability to distinguish
- * multiple objects close together can be configured and register F11_2D_Ctrl45
- * exists.
- * @has_XY_clip -  the inactive outside borders of the sensor can be
- * configured and registers F11_2D_Ctrl46 through F11_2D_Ctrl49 exist.
- * @has_drumming_filter - the sensor can be configured to distinguish
- * between a fast flick and a quick drumming movement and registers
- * F11_2D_Ctrl50 and F11_2D_Ctrl51 exist.
- *
  * Query 12 is present if hasQuery12 bit is set.
  *
- * @has_gapless_finger - control registers relating to gapless finger are
- * present.
- * @has_gapless_finger_tuning - additional control and data registers relating
- * to gapless finger are present.
- * @has_8bit_w - larger W value reporting is supported.
- * @has_adjustable_mapping - TBD
  * @has_info2 - the general info query14 is present
- * @has_physical_props - additional queries describing the physical properties
- * of the sensor are present.
- * @has_finger_limit - indicates that F11 Ctrl 80 exists.
- * @has_linear_coeff - indicates that F11 Ctrl 81 exists.
  *
  * Query 13 is present if Query 5's has_jitter_filter bit is set.
- * @jitter_window_size - used by Design Studio 4.
- * @jitter_filter_type - used by Design Studio 4.
- *
  * Query 14 is present if query 12's has_general_info2 flag is set.
  *
- * @light_control - Indicates what light/led control features are present, if
- * any.
  * @is_clear - if set, this is a clear sensor (indicating direct pointing
  * application), otherwise it's opaque (indicating indirect pointing).
- * @clickpad_props - specifies if this is a clickpad, and if so what sort of
- * mechanism it uses
- * @mouse_buttons - specifies the number of mouse buttons present (if any).
- * @has_advanced_gestures - advanced driver gestures are supported.
  */
 struct f11_2d_sensor_queries {
 	/* query1 */
@@ -320,112 +158,34 @@ struct f11_2d_sensor_queries {
 	bool has_rel;
 	bool has_abs;
 	bool has_gestures;
-	bool has_sensitivity_adjust;
-	bool configurable;
-
-	/* query2 */
-	u8 nr_x_electrodes;
 
-	/* query3 */
-	u8 nr_y_electrodes;
-
-	/* query4 */
-	u8 max_electrodes;
-
-	/* query5 */
-	u8 abs_data_size;
-	bool has_anchored_finger;
-	bool has_adj_hyst;
-	bool has_dribble;
-	bool has_bending_correction;
-	bool has_large_object_suppression;
 	bool has_jitter_filter;
 
 	u8 f11_2d_query6;
 
 	/* query 7 */
-	bool has_single_tap;
-	bool has_tap_n_hold;
-	bool has_double_tap;
-	bool has_early_tap;
 	bool has_flick;
-	bool has_press;
 	bool has_pinch;
-	bool has_chiral;
-
 	bool query7_nonzero;
 
 	/* query 8 */
-	bool has_palm_det;
 	bool has_rotate;
 	bool has_touch_shapes;
-	bool has_scroll_zones;
-	bool has_individual_scroll_zones;
-	bool has_mf_scroll;
-	bool has_mf_edge_motion;
-	bool has_mf_scroll_inertia;
-
 	bool query8_nonzero;
 
 	/* Query 9 */
 	bool has_pen;
-	bool has_proximity;
-	bool has_palm_det_sensitivity;
-	bool has_suppress_on_palm_detect;
-	bool has_two_pen_thresholds;
-	bool has_contact_geometry;
-	bool has_pen_hover_discrimination;
-	bool has_pen_filters;
 
 	/* Query 10 */
 	u8 nr_touch_shapes;
 
-	/* Query 11. */
-	bool has_z_tuning;
-	bool has_algorithm_selection;
-	bool has_w_tuning;
-	bool has_pitch_info;
-	bool has_finger_size;
-	bool has_segmentation_aggressiveness;
-	bool has_XY_clip;
-	bool has_drumming_filter;
-
 	/* Query 12 */
-	bool has_gapless_finger;
-	bool has_gapless_finger_tuning;
-	bool has_8bit_w;
-	bool has_adjustable_mapping;
 	bool has_info2;
-	bool has_physical_props;
-	bool has_finger_limit;
-	bool has_linear_coeff_2;
-
-	/* Query 13 */
-	u8 jitter_window_size;
-	u8 jitter_filter_type;
 
 	/* Query 14 */
-	u8 light_control;
 	bool is_clear;
-	u8 clickpad_props;
-	u8 mouse_buttons;
-	bool has_advanced_gestures;
 };
 
-/* Defs for Ctrl0. */
-#define RMI_F11_REPORT_MODE_MASK        0x07
-#define RMI_F11_ABS_POS_FILT            (1 << 3)
-#define RMI_F11_REL_POS_FILT            (1 << 4)
-#define RMI_F11_REL_BALLISTICS          (1 << 5)
-#define RMI_F11_DRIBBLE                 (1 << 6)
-#define RMI_F11_REPORT_BEYOND_CLIP      (1 << 7)
-
-/* Defs for Ctrl1. */
-#define RMI_F11_PALM_DETECT_THRESH_MASK 0x0F
-#define RMI_F11_MOTION_SENSITIVITY_MASK 0x30
-#define RMI_F11_MANUAL_TRACKING         (1 << 6)
-#define RMI_F11_MANUAL_TRACKED_FINGER   (1 << 7)
-
 #define RMI_F11_DELTA_X_THRESHOLD       2
 #define RMI_F11_DELTA_Y_THRESHOLD       3
 
@@ -439,24 +199,6 @@ struct f11_2d_ctrl {
 #define RMI_F11_ABS_BYTES 5
 #define RMI_F11_REL_BYTES 2
 
-/* Defs for Data 8 */
-
-#define RMI_F11_SINGLE_TAP              (1 << 0)
-#define RMI_F11_TAP_AND_HOLD            (1 << 1)
-#define RMI_F11_DOUBLE_TAP              (1 << 2)
-#define RMI_F11_EARLY_TAP               (1 << 3)
-#define RMI_F11_FLICK                   (1 << 4)
-#define RMI_F11_PRESS                   (1 << 5)
-#define RMI_F11_PINCH                   (1 << 6)
-
-/* Defs for Data 9 */
-
-#define RMI_F11_PALM_DETECT                     (1 << 0)
-#define RMI_F11_ROTATE                          (1 << 1)
-#define RMI_F11_SHAPE                           (1 << 2)
-#define RMI_F11_SCROLLZONE                      (1 << 3)
-#define RMI_F11_GESTURE_FINGER_COUNT_MASK       0x70
-
 /** Handy pointers into our data buffer.
  *
  * @f_state - start of finger state registers.
@@ -467,8 +209,6 @@ struct f11_2d_ctrl {
  * @pinch   - pinch motion register (if present).
  * @flick   - flick distance X & Y, flick time (if present).
  * @rotate  - rotate motion and finger separation.
- * @multi_scroll - chiral deltas for X and Y (if present).
- * @scroll_zones - scroll deltas for 4 regions (if present).
  */
 struct f11_2d_data {
 	u8	*f_state;
@@ -480,8 +220,6 @@ struct f11_2d_data {
 	u8	*flick;
 	u8	*rotate;
 	u8	*shapes;
-	s8	*multi_scroll;
-	s8	*scroll_zones;
 };
 
 /**
@@ -495,7 +233,6 @@ struct f11_2d_data {
  * @nbr_fingers - How many fingers can this sensor report?
  * @data_pkt - buffer for data reported by this sensor.
  * @pkt_size - number of bytes in that buffer.
- * @sensor_index - identifies this particular 2D touch sensor
  * @type_a - some early RMI4 2D sensors do not reliably track the finger
  * position when two fingers are on the device.  When this is true, we
  * assume we have one of those sensors and report events appropriately.
@@ -514,7 +251,6 @@ struct f11_2d_sensor {
 	u8 nbr_fingers;
 	u8 *data_pkt;
 	int pkt_size;
-	u8 sensor_index;
 	bool type_a;
 	enum rmi_f11_sensor_type sensor_type;
 	struct input_dev *input;
@@ -529,7 +265,6 @@ struct f11_2d_sensor {
  *
  * @dev_query - F11 device specific query registers.
  * @dev_controls - F11 device specific control registers.
- * @dev_controls_mutex - lock for the control registers.
  * @rezero_wait_ms - if nonzero, upon resume we will wait this many
  * milliseconds before rezeroing the sensor(s).  This is useful in systems with
  * poor electrical behavior on resume, where the initial calibration of the
@@ -543,7 +278,6 @@ struct f11_data {
 	bool has_query27;
 	bool has_query28;
 	struct f11_2d_ctrl dev_controls;
-	struct mutex dev_controls_mutex;
 	u16 rezero_wait_ms;
 	struct f11_2d_sensor sensor;
 };
@@ -871,16 +605,6 @@ static int rmi_f11_get_query_parameters(struct rmi_device *rmi_dev,
 	sensor_query->has_rel = !!(query_buf[0] & RMI_F11_HAS_REL);
 	sensor_query->has_abs = !!(query_buf[0] & RMI_F11_HAS_ABS);
 	sensor_query->has_gestures = !!(query_buf[0] & RMI_F11_HAS_GESTURES);
-	sensor_query->has_sensitivity_adjust =
-		!!(query_buf[0] && RMI_F11_HAS_SENSITIVITY_ADJ);
-	sensor_query->configurable = !!(query_buf[0] & RMI_F11_CONFIGURABLE);
-
-	sensor_query->nr_x_electrodes =
-				query_buf[1] & RMI_F11_NR_ELECTRODES_MASK;
-	sensor_query->nr_y_electrodes =
-				query_buf[2] & RMI_F11_NR_ELECTRODES_MASK;
-	sensor_query->max_electrodes =
-				query_buf[3] & RMI_F11_NR_ELECTRODES_MASK;
 
 	query_size = RMI_F11_QUERY_SIZE;
 
@@ -889,18 +613,6 @@ static int rmi_f11_get_query_parameters(struct rmi_device *rmi_dev,
 		if (rc < 0)
 			return rc;
 
-		sensor_query->abs_data_size =
-			query_buf[0] & RMI_F11_ABS_DATA_SIZE_MASK;
-		sensor_query->has_anchored_finger =
-			!!(query_buf[0] & RMI_F11_HAS_ANCHORED_FINGER);
-		sensor_query->has_adj_hyst =
-			!!(query_buf[0] & RMI_F11_HAS_ADJ_HYST);
-		sensor_query->has_dribble =
-			!!(query_buf[0] & RMI_F11_HAS_DRIBBLE);
-		sensor_query->has_bending_correction =
-			!!(query_buf[0] & RMI_F11_HAS_BENDING_CORRECTION);
-		sensor_query->has_large_object_suppression =
-		!!(query_buf[0] && RMI_F11_HAS_LARGE_OBJECT_SUPPRESSION);
 		sensor_query->has_jitter_filter =
 			!!(query_buf[0] & RMI_F11_HAS_JITTER_FILTER);
 		query_size++;
@@ -920,40 +632,16 @@ static int rmi_f11_get_query_parameters(struct rmi_device *rmi_dev,
 		if (rc < 0)
 			return rc;
 
-		sensor_query->has_single_tap =
-			!!(query_buf[0] & RMI_F11_HAS_SINGLE_TAP);
-		sensor_query->has_tap_n_hold =
-			!!(query_buf[0] & RMI_F11_HAS_TAP_AND_HOLD);
-		sensor_query->has_double_tap =
-			!!(query_buf[0] & RMI_F11_HAS_DOUBLE_TAP);
-		sensor_query->has_early_tap =
-			!!(query_buf[0] & RMI_F11_HAS_EARLY_TAP);
 		sensor_query->has_flick =
 			!!(query_buf[0] & RMI_F11_HAS_FLICK);
-		sensor_query->has_press =
-			!!(query_buf[0] & RMI_F11_HAS_PRESS);
 		sensor_query->has_pinch =
 			!!(query_buf[0] & RMI_F11_HAS_PINCH);
-		sensor_query->has_chiral =
-			!!(query_buf[0] & RMI_F11_HAS_CHIRAL);
 
 		/* query 8 */
-		sensor_query->has_palm_det =
-			!!(query_buf[1] & RMI_F11_HAS_PALM_DET);
 		sensor_query->has_rotate =
 			!!(query_buf[1] & RMI_F11_HAS_ROTATE);
 		sensor_query->has_touch_shapes =
 			!!(query_buf[1] & RMI_F11_HAS_TOUCH_SHAPES);
-		sensor_query->has_scroll_zones =
-			!!(query_buf[1] & RMI_F11_HAS_SCROLL_ZONES);
-		sensor_query->has_individual_scroll_zones =
-			!!(query_buf[1] & RMI_F11_HAS_INDIVIDUAL_SCROLL_ZONES);
-		sensor_query->has_mf_scroll =
-			!!(query_buf[1] & RMI_F11_HAS_MF_SCROLL);
-		sensor_query->has_mf_edge_motion =
-			!!(query_buf[1] & RMI_F11_HAS_MF_EDGE_MOTION);
-		sensor_query->has_mf_scroll_inertia =
-			!!(query_buf[1] & RMI_F11_HAS_MF_SCROLL_INERTIA);
 
 		sensor_query->query7_nonzero = !!(query_buf[0]);
 		sensor_query->query8_nonzero = !!(query_buf[1]);
@@ -968,20 +656,6 @@ static int rmi_f11_get_query_parameters(struct rmi_device *rmi_dev,
 
 		sensor_query->has_pen =
 			!!(query_buf[0] & RMI_F11_HAS_PEN);
-		sensor_query->has_proximity =
-			!!(query_buf[0] & RMI_F11_HAS_PROXIMITY);
-		sensor_query->has_palm_det_sensitivity =
-			!!(query_buf[0] & RMI_F11_HAS_PALM_DET_SENSITIVITY);
-		sensor_query->has_suppress_on_palm_detect =
-			!!(query_buf[0] & RMI_F11_HAS_SUPPRESS_ON_PALM_DETECT);
-		sensor_query->has_two_pen_thresholds =
-			!!(query_buf[0] & RMI_F11_HAS_TWO_PEN_THRESHOLDS);
-		sensor_query->has_contact_geometry =
-			!!(query_buf[0] & RMI_F11_HAS_CONTACT_GEOMETRY);
-		sensor_query->has_pen_hover_discrimination =
-			!!(query_buf[0] & RMI_F11_HAS_PEN_HOVER_DISCRIMINATION);
-		sensor_query->has_pen_filters =
-			!!(query_buf[0] & RMI_F11_HAS_PEN_FILTERS);
 
 		query_size++;
 	}
@@ -1002,24 +676,6 @@ static int rmi_f11_get_query_parameters(struct rmi_device *rmi_dev,
 		if (rc < 0)
 			return rc;
 
-		sensor_query->has_z_tuning =
-			!!(query_buf[0] & RMI_F11_HAS_Z_TUNING);
-		sensor_query->has_algorithm_selection =
-			!!(query_buf[0] & RMI_F11_HAS_ALGORITHM_SELECTION);
-		sensor_query->has_w_tuning =
-			!!(query_buf[0] & RMI_F11_HAS_W_TUNING);
-		sensor_query->has_pitch_info =
-			!!(query_buf[0] & RMI_F11_HAS_PITCH_INFO);
-		sensor_query->has_finger_size =
-			!!(query_buf[0] & RMI_F11_HAS_FINGER_SIZE);
-		sensor_query->has_segmentation_aggressiveness =
-			!!(query_buf[0] &
-				RMI_F11_HAS_SEGMENTATION_AGGRESSIVENESS);
-		sensor_query->has_XY_clip =
-			!!(query_buf[0] & RMI_F11_HAS_XY_CLIP);
-		sensor_query->has_drumming_filter =
-			!!(query_buf[0] & RMI_F11_HAS_DRUMMING_FILTER);
-
 		query_size++;
 	}
 
@@ -1028,22 +684,8 @@ static int rmi_f11_get_query_parameters(struct rmi_device *rmi_dev,
 		if (rc < 0)
 			return rc;
 
-		sensor_query->has_gapless_finger =
-			!!(query_buf[0] & RMI_F11_HAS_GAPLESS_FINGER);
-		sensor_query->has_gapless_finger_tuning =
-			!!(query_buf[0] & RMI_F11_HAS_GAPLESS_FINGER_TUNING);
-		sensor_query->has_8bit_w =
-			!!(query_buf[0] & RMI_F11_HAS_8BIT_W);
-		sensor_query->has_adjustable_mapping =
-			!!(query_buf[0] & RMI_F11_HAS_ADJUSTABLE_MAPPING);
 		sensor_query->has_info2 =
 			!!(query_buf[0] & RMI_F11_HAS_INFO2);
-		sensor_query->has_physical_props =
-			!!(query_buf[0] & RMI_F11_HAS_PHYSICAL_PROPS);
-		sensor_query->has_finger_limit =
-			!!(query_buf[0] & RMI_F11_HAS_FINGER_LIMIT);
-		sensor_query->has_linear_coeff_2 =
-			!!(query_buf[0] & RMI_F11_HAS_LINEAR_COEFF);
 
 		query_size++;
 	}
@@ -1053,12 +695,6 @@ static int rmi_f11_get_query_parameters(struct rmi_device *rmi_dev,
 		if (rc < 0)
 			return rc;
 
-		sensor_query->jitter_window_size = query_buf[0] &
-			RMI_F11_JITTER_WINDOW_MASK;
-		sensor_query->jitter_filter_type = (query_buf[0] &
-			RMI_F11_JITTER_FILTER_MASK) >>
-			RMI_F11_JITTER_FILTER_SHIFT;
-
 		query_size++;
 	}
 
@@ -1067,18 +703,8 @@ static int rmi_f11_get_query_parameters(struct rmi_device *rmi_dev,
 		if (rc < 0)
 			return rc;
 
-		sensor_query->light_control =
-			query_buf[0] & RMI_F11_LIGHT_CONTROL_MASK;
 		sensor_query->is_clear =
 			!!(query_buf[0] & RMI_F11_IS_CLEAR);
-		sensor_query->clickpad_props =
-			(query_buf[0] & RMI_F11_CLICKPAD_PROPS_MASK) >>
-			RMI_F11_CLICKPAD_PROPS_SHIFT;
-		sensor_query->mouse_buttons =
-			(query_buf[0] & RMI_F11_MOUSE_BUTTONS_MASK) >>
-			RMI_F11_MOUSE_BUTTONS_SHIFT;
-		sensor_query->has_advanced_gestures =
-			!!(query_buf[0] & RMI_F11_HAS_ADVANCED_GESTURES);
 
 		query_size++;
 	}
@@ -1276,7 +902,6 @@ static int rmi_f11_initialize(struct rmi_function *fn)
 				rc);
 	}
 
-	mutex_init(&f11->dev_controls_mutex);
 	return 0;
 }
 
