• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/input/joystick/

Lines Matching defs:analog

56 MODULE_PARM_DESC(map, "Describes analog joysticks type/capabilities");
108 struct analog {
118 struct analog analog[2];
179 * analog_decode() decodes analog joystick data and reports input events.
182 static void analog_decode(struct analog *analog, int *axes, int *initial, int buttons)
184 struct input_dev *dev = analog->dev;
187 if (analog->mask & ANALOG_HAT_FCS)
195 if (analog->mask & (0x10 << i))
196 input_report_key(dev, analog->buttons[j++], (buttons >> i) & 1);
198 if (analog->mask & ANALOG_HBTN_CHF)
200 input_report_key(dev, analog->buttons[j++], (buttons >> (i + 10)) & 1);
202 if (analog->mask & ANALOG_BTN_TL)
204 if (analog->mask & ANALOG_BTN_TR)
206 if (analog->mask & ANALOG_BTN_TL2)
208 if (analog->mask & ANALOG_BTN_TR2)
212 if (analog->mask & (1 << i))
216 if (analog->mask & analog_exts[i]) {
227 * analog_cooked_read() reads analog joystick data.
316 char saitek = !!(port->analog[0].mask & ANALOG_SAITEK);
317 char chf = !!(port->analog[0].mask & ANALOG_ANY_CHF);
337 if (port->analog[i].mask)
338 analog_decode(port->analog + i, port->axes, port->initial, port->buttons);
404 * analog_name() constructs a name for an analog joystick.
407 static void analog_name(struct analog *analog)
409 snprintf(analog->name, sizeof(analog->name), "Analog %d-axis %d-button",
410 hweight8(analog->mask & ANALOG_AXES_STD),
411 hweight8(analog->mask & ANALOG_BTNS_STD) + !!(analog->mask & ANALOG_BTNS_CHF) * 2 +
412 hweight16(analog->mask & ANALOG_BTNS_GAMEPAD) + !!(analog->mask & ANALOG_HBTN_CHF) * 4);
414 if (analog->mask & ANALOG_HATS_ALL)
415 snprintf(analog->name, sizeof(analog->name), "%s %d-hat",
416 analog->name, hweight16(analog->mask & ANALOG_HATS_ALL));
418 if (analog->mask & ANALOG_HAT_FCS)
419 strlcat(analog->name, " FCS", sizeof(analog->name));
420 if (analog->mask & ANALOG_ANY_CHF)
421 strlcat(analog->name, (analog->mask & ANALOG_SAITEK) ? " Saitek" : " CHF",
422 sizeof(analog->name));
424 strlcat(analog->name, (analog->mask & ANALOG_GAMEPAD) ? " gamepad": " joystick",
425 sizeof(analog->name));
432 static int analog_init_device(struct analog_port *port, struct analog *analog, int index)
438 analog_name(analog);
439 snprintf(analog->phys, sizeof(analog->phys),
441 analog->buttons = (analog->mask & ANALOG_GAMEPAD) ? analog_pad_btn : analog_joy_btn;
443 analog->dev = input_dev = input_allocate_device();
447 input_dev->name = analog->name;
448 input_dev->phys = analog->phys;
451 input_dev->id.product = analog->mask >> 4;
463 if (analog->mask & (1 << i)) {
476 if (analog->mask & ANALOG_SAITEK) {
487 if (analog->mask & analog_exts[i])
494 if (analog->mask & (0x10 << i))
495 set_bit(analog->buttons[j++], input_dev->keybit);
497 if (analog->mask & ANALOG_BTNS_CHF)
499 set_bit(analog->buttons[j++], input_dev->keybit);
501 if (analog->mask & ANALOG_HBTN_CHF)
503 set_bit(analog->buttons[j++], input_dev->keybit);
506 if (analog->mask & (ANALOG_BTN_TL << i))
509 analog_decode(analog, port->axes, port->initial, port->buttons);
511 error = input_register_device(analog->dev);
513 input_free_device(analog->dev);
527 struct analog *analog = port->analog;
534 printk(KERN_WARNING "analog.c: Unknown joystick device found "
535 "(data=%#x, %s), probably not analog joystick.\n",
543 analog[0].mask = i & 0xfffff;
545 analog[0].mask &= ~(ANALOG_AXES_STD | ANALOG_HAT_FCS | ANALOG_BTNS_GAMEPAD)
549 analog[0].mask &= ~(ANALOG_HAT2_CHF)
550 | ((analog[0].mask & ANALOG_HBTN_CHF) ? 0 : ANALOG_HAT2_CHF);
552 analog[0].mask &= ~(ANALOG_THROTTLE | ANALOG_BTN_TR | ANALOG_BTN_TR2)
553 | ((~analog[0].mask & ANALOG_HAT_FCS) >> 8)
554 | ((~analog[0].mask & ANALOG_HAT_FCS) << 2)
555 | ((~analog[0].mask & ANALOG_HAT_FCS) << 4);
557 analog[0].mask &= ~(ANALOG_THROTTLE | ANALOG_RUDDER)
558 | (((~analog[0].mask & ANALOG_BTNS_TLR ) >> 10)
559 & ((~analog[0].mask & ANALOG_BTNS_TLR2) >> 12));
561 analog[1].mask = ((i >> 20) & 0xff) | ((i >> 12) & 0xf0000);
563 analog[1].mask &= (analog[0].mask & ANALOG_EXTENSIONS) ? ANALOG_GAMEPAD
564 : (((ANALOG_BTNS_STD | port->mask) & ~analog[0].mask) | ANALOG_GAMEPAD);
570 if ((analog[0].mask & 0x7) == 0x7) max[2] = (max[0] + max[1]) >> 1;
571 if ((analog[0].mask & 0xb) == 0xb) max[3] = (max[0] + max[1]) >> 1;
572 if ((analog[0].mask & ANALOG_BTN_TL) && !(analog[0].mask & ANALOG_BTN_TL2)) max[2] >>= 1;
573 if ((analog[0].mask & ANALOG_BTN_TR) && !(analog[0].mask & ANALOG_BTN_TR2)) max[3] >>= 1;
574 if ((analog[0].mask & ANALOG_HAT_FCS)) max[3] >>= 1;
582 return -!(analog[0].mask || analog[1].mask);
669 if (port->analog[i].mask) {
670 err = analog_init_device(port, port->analog + i, i);
678 if (port->analog[i].mask)
679 input_unregister_device(port->analog[i].dev);
692 if (port->analog[i].mask)
693 input_unregister_device(port->analog[i].dev);
696 printk(KERN_INFO "analog.c: %d out of %d reads (%d%%) on %s failed\n",
741 printk(KERN_WARNING "analog.c: Bad config for port %d - \"%s\"\n", i, js[i]);
754 .name = "analog",