Lines Matching refs:msc
132 static int magicmouse_firm_touch(struct magicmouse_sc *msc) in magicmouse_firm_touch() argument
140 for (ii = 0; ii < msc->ntouches; ii++) { in magicmouse_firm_touch()
141 int idx = msc->tracking_ids[ii]; in magicmouse_firm_touch()
142 if (msc->touches[idx].size < 8) { in magicmouse_firm_touch()
155 static void magicmouse_emit_buttons(struct magicmouse_sc *msc, int state) in magicmouse_emit_buttons() argument
157 int last_state = test_bit(BTN_LEFT, msc->input->key) << 0 | in magicmouse_emit_buttons()
158 test_bit(BTN_RIGHT, msc->input->key) << 1 | in magicmouse_emit_buttons()
159 test_bit(BTN_MIDDLE, msc->input->key) << 2; in magicmouse_emit_buttons()
172 } else if ((id = magicmouse_firm_touch(msc)) >= 0) { in magicmouse_emit_buttons()
173 int x = msc->touches[id].x; in magicmouse_emit_buttons()
182 input_report_key(msc->input, BTN_MIDDLE, state & 4); in magicmouse_emit_buttons()
185 input_report_key(msc->input, BTN_LEFT, state & 1); in magicmouse_emit_buttons()
186 input_report_key(msc->input, BTN_RIGHT, state & 2); in magicmouse_emit_buttons()
189 msc->scroll_accel = SCROLL_ACCEL_DEFAULT; in magicmouse_emit_buttons()
192 static void magicmouse_emit_touch(struct magicmouse_sc *msc, int raw_id, u8 *tdata) in magicmouse_emit_touch() argument
194 struct input_dev *input = msc->input; in magicmouse_emit_touch()
232 msc->tracking_ids[raw_id] = id; in magicmouse_emit_touch()
233 msc->touches[id].x = x; in magicmouse_emit_touch()
234 msc->touches[id].y = y; in magicmouse_emit_touch()
235 msc->touches[id].size = size; in magicmouse_emit_touch()
243 int step_x = msc->touches[id].scroll_x - x; in magicmouse_emit_touch()
244 int step_y = msc->touches[id].scroll_y - y; in magicmouse_emit_touch()
249 msc->touches[id].scroll_x = x; in magicmouse_emit_touch()
250 msc->touches[id].scroll_y = y; in magicmouse_emit_touch()
254 msc->scroll_jiffies + HZ / 2)) in magicmouse_emit_touch()
255 msc->scroll_accel = max_t(int, in magicmouse_emit_touch()
256 msc->scroll_accel - 1, 1); in magicmouse_emit_touch()
258 msc->scroll_accel = SCROLL_ACCEL_DEFAULT; in magicmouse_emit_touch()
262 step_x /= (64 - (int)scroll_speed) * msc->scroll_accel; in magicmouse_emit_touch()
264 msc->touches[id].scroll_x -= step_x * in magicmouse_emit_touch()
265 (64 - scroll_speed) * msc->scroll_accel; in magicmouse_emit_touch()
266 msc->scroll_jiffies = now; in magicmouse_emit_touch()
270 step_y /= (64 - (int)scroll_speed) * msc->scroll_accel; in magicmouse_emit_touch()
272 msc->touches[id].scroll_y -= step_y * in magicmouse_emit_touch()
273 (64 - scroll_speed) * msc->scroll_accel; in magicmouse_emit_touch()
274 msc->scroll_jiffies = now; in magicmouse_emit_touch()
282 msc->ntouches++; in magicmouse_emit_touch()
311 struct magicmouse_sc *msc = hid_get_drvdata(hdev); in magicmouse_raw_event() local
312 struct input_dev *input = msc->input; in magicmouse_raw_event()
327 msc->ntouches = 0; in magicmouse_raw_event()
329 magicmouse_emit_touch(msc, ii, data + ii * 9 + 4); in magicmouse_raw_event()
349 msc->ntouches = 0; in magicmouse_raw_event()
351 magicmouse_emit_touch(msc, ii, data + ii * 9 + 12); in magicmouse_raw_event()
365 msc->ntouches = 0; in magicmouse_raw_event()
367 magicmouse_emit_touch(msc, ii, data + ii * 8 + 6); in magicmouse_raw_event()
396 magicmouse_emit_buttons(msc, clicks & 3); in magicmouse_raw_event()
545 struct magicmouse_sc *msc = hid_get_drvdata(hdev); in magicmouse_input_mapping() local
547 if (!msc->input) in magicmouse_input_mapping()
548 msc->input = hi->input; in magicmouse_input_mapping()
563 struct magicmouse_sc *msc = hid_get_drvdata(hdev); in magicmouse_input_configured() local
566 ret = magicmouse_setup_input(msc->input, hdev); in magicmouse_input_configured()
570 msc->input = NULL; in magicmouse_input_configured()
586 struct magicmouse_sc *msc; in magicmouse_probe() local
596 msc = devm_kzalloc(&hdev->dev, sizeof(*msc), GFP_KERNEL); in magicmouse_probe()
597 if (msc == NULL) { in magicmouse_probe()
602 msc->scroll_accel = SCROLL_ACCEL_DEFAULT; in magicmouse_probe()
604 msc->quirks = id->driver_data; in magicmouse_probe()
605 hid_set_drvdata(hdev, msc); in magicmouse_probe()
619 if (!msc->input) { in magicmouse_probe()