input_sync(input_dev);
 }
 
+static bool mxt_is_T9_message(struct mxt_data *data, struct mxt_message *msg)
+{
+       u8 id = msg->reportid;
+       return (id >= data->T9_reportid_min && id <= data->T9_reportid_max);
+}
+
 static irqreturn_t mxt_interrupt(int irq, void *dev_id)
 {
        struct mxt_data *data = dev_id;
        struct device *dev = &data->client->dev;
        int id;
        u8 reportid;
-       u8 max_reportid;
-       u8 min_reportid;
 
        do {
                if (mxt_read_message(data, &message)) {
 
                reportid = message.reportid;
 
-               max_reportid = data->T9_reportid_max;
-               min_reportid = data->T9_reportid_min;
-               id = reportid - min_reportid;
+               id = reportid - data->T9_reportid_min;
 
-               if (reportid >= min_reportid && reportid <= max_reportid)
+               if (mxt_is_T9_message(data, &message))
                        mxt_input_touchevent(data, &message, id);
                else
                        mxt_dump_message(dev, &message);