Searched refs:xpad (Results 1 - 4 of 4) sorted by relevance

/linux-4.1.27/drivers/input/joystick/
H A Dxpad.c37 * - ITO Takayuki for providing essential xpad information on his website
359 static void xpad_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data) xpad_process_packet() argument
361 struct input_dev *dev = xpad->dev; xpad_process_packet()
363 if (!(xpad->mapping & MAP_STICKS_TO_NULL)) { xpad_process_packet()
378 if (xpad->mapping & MAP_TRIGGERS_TO_BUTTONS) { xpad_process_packet()
387 if (xpad->mapping & MAP_DPAD_TO_BUTTONS) { xpad_process_packet()
429 static void xpad360_process_packet(struct usb_xpad *xpad, xpad360_process_packet() argument
432 struct input_dev *dev = xpad->dev; xpad360_process_packet()
435 if (xpad->mapping & MAP_DPAD_TO_BUTTONS) { xpad360_process_packet()
465 if (!(xpad->mapping & MAP_STICKS_TO_NULL)) { xpad360_process_packet()
480 if (xpad->mapping & MAP_TRIGGERS_TO_BUTTONS) { xpad360_process_packet()
506 static void xpad360w_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data) xpad360w_process_packet() argument
511 xpad->pad_present = 1; xpad360w_process_packet()
512 usb_submit_urb(xpad->bulk_out, GFP_ATOMIC); xpad360w_process_packet()
514 xpad->pad_present = 0; xpad360w_process_packet()
521 xpad360_process_packet(xpad, cmd, &data[4]); xpad360w_process_packet()
529 static void xpadone_process_buttons(struct usb_xpad *xpad, xpadone_process_buttons() argument
544 if (xpad->mapping & MAP_DPAD_TO_BUTTONS) { xpadone_process_buttons()
565 if (!(xpad->mapping & MAP_STICKS_TO_NULL)) { xpadone_process_buttons()
580 if (xpad->mapping & MAP_TRIGGERS_TO_BUTTONS) { xpadone_process_buttons()
605 static void xpadone_process_packet(struct usb_xpad *xpad, xpadone_process_packet() argument
608 struct input_dev *dev = xpad->dev; xpadone_process_packet()
612 xpadone_process_buttons(xpad, dev, data); xpadone_process_packet()
625 struct usb_xpad *xpad = urb->context; xpad_irq_in() local
626 struct device *dev = &xpad->intf->dev; xpad_irq_in()
648 switch (xpad->xtype) { xpad_irq_in()
650 xpad360_process_packet(xpad, 0, xpad->idata); xpad_irq_in()
653 xpad360w_process_packet(xpad, 0, xpad->idata); xpad_irq_in()
656 xpadone_process_packet(xpad, 0, xpad->idata); xpad_irq_in()
659 xpad_process_packet(xpad, 0, xpad->idata); xpad_irq_in()
671 struct usb_xpad *xpad = urb->context; xpad_bulk_out() local
672 struct device *dev = &xpad->intf->dev; xpad_bulk_out()
693 struct usb_xpad *xpad = urb->context; xpad_irq_out() local
694 struct device *dev = &xpad->intf->dev; xpad_irq_out()
725 static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad) xpad_init_output() argument
731 if (xpad->xtype == XTYPE_UNKNOWN) xpad_init_output()
734 xpad->odata = usb_alloc_coherent(xpad->udev, XPAD_PKT_LEN, xpad_init_output()
735 GFP_KERNEL, &xpad->odata_dma); xpad_init_output()
736 if (!xpad->odata) { xpad_init_output()
741 mutex_init(&xpad->odata_mutex); xpad_init_output()
743 xpad->irq_out = usb_alloc_urb(0, GFP_KERNEL); xpad_init_output()
744 if (!xpad->irq_out) { xpad_init_output()
750 ep_irq_out_idx = xpad->xtype == XTYPE_XBOXONE ? 0 : 1; xpad_init_output()
753 usb_fill_int_urb(xpad->irq_out, xpad->udev, xpad_init_output()
754 usb_sndintpipe(xpad->udev, ep_irq_out->bEndpointAddress), xpad_init_output()
755 xpad->odata, XPAD_PKT_LEN, xpad_init_output()
756 xpad_irq_out, xpad, ep_irq_out->bInterval); xpad_init_output()
757 xpad->irq_out->transfer_dma = xpad->odata_dma; xpad_init_output()
758 xpad->irq_out->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; xpad_init_output()
762 fail2: usb_free_coherent(xpad->udev, XPAD_PKT_LEN, xpad->odata, xpad->odata_dma); xpad_init_output()
766 static void xpad_stop_output(struct usb_xpad *xpad) xpad_stop_output() argument
768 if (xpad->xtype != XTYPE_UNKNOWN) xpad_stop_output()
769 usb_kill_urb(xpad->irq_out); xpad_stop_output()
772 static void xpad_deinit_output(struct usb_xpad *xpad) xpad_deinit_output() argument
774 if (xpad->xtype != XTYPE_UNKNOWN) { xpad_deinit_output()
775 usb_free_urb(xpad->irq_out); xpad_deinit_output()
776 usb_free_coherent(xpad->udev, XPAD_PKT_LEN, xpad_deinit_output()
777 xpad->odata, xpad->odata_dma); xpad_deinit_output()
784 struct usb_xpad *xpad = input_get_drvdata(dev); xpad_play_effect() local
790 switch (xpad->xtype) { xpad_play_effect()
793 xpad->odata[0] = 0x00; xpad_play_effect()
794 xpad->odata[1] = 0x06; xpad_play_effect()
795 xpad->odata[2] = 0x00; xpad_play_effect()
796 xpad->odata[3] = strong / 256; /* left actuator */ xpad_play_effect()
797 xpad->odata[4] = 0x00; xpad_play_effect()
798 xpad->odata[5] = weak / 256; /* right actuator */ xpad_play_effect()
799 xpad->irq_out->transfer_buffer_length = 6; xpad_play_effect()
801 return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); xpad_play_effect()
804 xpad->odata[0] = 0x00; xpad_play_effect()
805 xpad->odata[1] = 0x08; xpad_play_effect()
806 xpad->odata[2] = 0x00; xpad_play_effect()
807 xpad->odata[3] = strong / 256; /* left actuator? */ xpad_play_effect()
808 xpad->odata[4] = weak / 256; /* right actuator? */ xpad_play_effect()
809 xpad->odata[5] = 0x00; xpad_play_effect()
810 xpad->odata[6] = 0x00; xpad_play_effect()
811 xpad->odata[7] = 0x00; xpad_play_effect()
812 xpad->irq_out->transfer_buffer_length = 8; xpad_play_effect()
814 return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); xpad_play_effect()
817 xpad->odata[0] = 0x00; xpad_play_effect()
818 xpad->odata[1] = 0x01; xpad_play_effect()
819 xpad->odata[2] = 0x0F; xpad_play_effect()
820 xpad->odata[3] = 0xC0; xpad_play_effect()
821 xpad->odata[4] = 0x00; xpad_play_effect()
822 xpad->odata[5] = strong / 256; xpad_play_effect()
823 xpad->odata[6] = weak / 256; xpad_play_effect()
824 xpad->odata[7] = 0x00; xpad_play_effect()
825 xpad->odata[8] = 0x00; xpad_play_effect()
826 xpad->odata[9] = 0x00; xpad_play_effect()
827 xpad->odata[10] = 0x00; xpad_play_effect()
828 xpad->odata[11] = 0x00; xpad_play_effect()
829 xpad->irq_out->transfer_buffer_length = 12; xpad_play_effect()
831 return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); xpad_play_effect()
834 xpad->odata[0] = 0x09; /* activate rumble */ xpad_play_effect()
835 xpad->odata[1] = 0x08; xpad_play_effect()
836 xpad->odata[2] = 0x00; xpad_play_effect()
837 xpad->odata[3] = 0x08; /* continuous effect */ xpad_play_effect()
838 xpad->odata[4] = 0x00; /* simple rumble mode */ xpad_play_effect()
839 xpad->odata[5] = 0x03; /* L and R actuator only */ xpad_play_effect()
840 xpad->odata[6] = 0x00; /* TODO: LT actuator */ xpad_play_effect()
841 xpad->odata[7] = 0x00; /* TODO: RT actuator */ xpad_play_effect()
842 xpad->odata[8] = strong / 256; /* left actuator */ xpad_play_effect()
843 xpad->odata[9] = weak / 256; /* right actuator */ xpad_play_effect()
844 xpad->odata[10] = 0x80; /* length of pulse */ xpad_play_effect()
845 xpad->odata[11] = 0x00; /* stop period of pulse */ xpad_play_effect()
846 xpad->irq_out->transfer_buffer_length = 12; xpad_play_effect()
848 return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); xpad_play_effect()
851 dev_dbg(&xpad->dev->dev, xpad_play_effect()
852 "%s - rumble command sent to unsupported xpad type: %d\n", xpad_play_effect()
853 __func__, xpad->xtype); xpad_play_effect()
861 static int xpad_init_ff(struct usb_xpad *xpad) xpad_init_ff() argument
863 if (xpad->xtype == XTYPE_UNKNOWN) xpad_init_ff()
866 input_set_capability(xpad->dev, EV_FF, FF_RUMBLE); xpad_init_ff()
868 return input_ff_create_memless(xpad->dev, NULL, xpad_play_effect); xpad_init_ff()
872 static int xpad_init_ff(struct usb_xpad *xpad) { return 0; } xpad_init_ff() argument
881 struct usb_xpad *xpad; xpad_init_ff() member in struct:xpad_led
884 static void xpad_send_led_command(struct usb_xpad *xpad, int command) xpad_send_led_command() argument
887 mutex_lock(&xpad->odata_mutex); xpad_send_led_command()
888 xpad->odata[0] = 0x01; xpad_send_led_command()
889 xpad->odata[1] = 0x03; xpad_send_led_command()
890 xpad->odata[2] = command; xpad_send_led_command()
891 xpad->irq_out->transfer_buffer_length = 3; xpad_send_led_command()
892 usb_submit_urb(xpad->irq_out, GFP_KERNEL); xpad_send_led_command()
893 mutex_unlock(&xpad->odata_mutex); xpad_send_led_command()
903 xpad_send_led_command(xpad_led->xpad, value); xpad_led_set()
906 static int xpad_led_probe(struct usb_xpad *xpad) xpad_led_probe() argument
914 if (xpad->xtype != XTYPE_XBOX360) xpad_led_probe()
917 xpad->led = led = kzalloc(sizeof(struct xpad_led), GFP_KERNEL); xpad_led_probe()
923 snprintf(led->name, sizeof(led->name), "xpad%lu", led_no); xpad_led_probe()
924 led->xpad = xpad; xpad_led_probe()
930 error = led_classdev_register(&xpad->udev->dev, led_cdev); xpad_led_probe()
933 xpad->led = NULL; xpad_led_probe()
940 xpad_send_led_command(xpad, (led_no % 4) + 2); xpad_led_probe()
945 static void xpad_led_disconnect(struct usb_xpad *xpad) xpad_led_disconnect() argument
947 struct xpad_led *xpad_led = xpad->led; xpad_led_disconnect()
955 static int xpad_led_probe(struct usb_xpad *xpad) { return 0; } xpad_led_disconnect() argument
956 static void xpad_led_disconnect(struct usb_xpad *xpad) { } xpad_led_disconnect() argument
962 struct usb_xpad *xpad = input_get_drvdata(dev); xpad_open() local
965 if (xpad->xtype == XTYPE_XBOX360W) xpad_open()
968 xpad->irq_in->dev = xpad->udev; xpad_open()
969 if (usb_submit_urb(xpad->irq_in, GFP_KERNEL)) xpad_open()
972 if (xpad->xtype == XTYPE_XBOXONE) { xpad_open()
974 xpad->odata[0] = 0x05; xpad_open()
975 xpad->odata[1] = 0x20; xpad_open()
976 xpad->irq_out->transfer_buffer_length = 2; xpad_open()
977 return usb_submit_urb(xpad->irq_out, GFP_KERNEL); xpad_open()
985 struct usb_xpad *xpad = input_get_drvdata(dev); xpad_close() local
987 if (xpad->xtype != XTYPE_XBOX360W) xpad_close()
988 usb_kill_urb(xpad->irq_in); xpad_close()
990 xpad_stop_output(xpad); xpad_close()
995 struct usb_xpad *xpad = input_get_drvdata(input_dev); xpad_set_up_abs() local
1007 if (xpad->xtype == XTYPE_XBOXONE) xpad_set_up_abs()
1022 struct usb_xpad *xpad; xpad_probe() local
1044 xpad = kzalloc(sizeof(struct usb_xpad), GFP_KERNEL); xpad_probe()
1046 if (!xpad || !input_dev) { xpad_probe()
1051 xpad->idata = usb_alloc_coherent(udev, XPAD_PKT_LEN, xpad_probe()
1052 GFP_KERNEL, &xpad->idata_dma); xpad_probe()
1053 if (!xpad->idata) { xpad_probe()
1058 xpad->irq_in = usb_alloc_urb(0, GFP_KERNEL); xpad_probe()
1059 if (!xpad->irq_in) { xpad_probe()
1064 xpad->udev = udev; xpad_probe()
1065 xpad->intf = intf; xpad_probe()
1066 xpad->mapping = xpad_device[i].mapping; xpad_probe()
1067 xpad->xtype = xpad_device[i].xtype; xpad_probe()
1069 if (xpad->xtype == XTYPE_UNKNOWN) { xpad_probe()
1072 xpad->xtype = XTYPE_XBOX360W; xpad_probe()
1074 xpad->xtype = XTYPE_XBOX360; xpad_probe()
1076 xpad->xtype = XTYPE_XBOX; xpad_probe()
1079 xpad->mapping |= MAP_DPAD_TO_BUTTONS; xpad_probe()
1081 xpad->mapping |= MAP_TRIGGERS_TO_BUTTONS; xpad_probe()
1083 xpad->mapping |= MAP_STICKS_TO_NULL; xpad_probe()
1086 xpad->dev = input_dev; xpad_probe()
1087 usb_make_path(udev, xpad->phys, sizeof(xpad->phys)); xpad_probe()
1088 strlcat(xpad->phys, "/input0", sizeof(xpad->phys)); xpad_probe()
1091 input_dev->phys = xpad->phys; xpad_probe()
1095 input_set_drvdata(input_dev, xpad); xpad_probe()
1102 if (!(xpad->mapping & MAP_STICKS_TO_NULL)) { xpad_probe()
1114 if (xpad->xtype == XTYPE_XBOX360 || xpad->xtype == XTYPE_XBOX360W || xpad_probe()
1115 xpad->xtype == XTYPE_XBOXONE) { xpad_probe()
1123 if (xpad->mapping & MAP_DPAD_TO_BUTTONS) { xpad_probe()
1131 if (xpad->mapping & MAP_TRIGGERS_TO_BUTTONS) { xpad_probe()
1139 error = xpad_init_output(intf, xpad); xpad_probe()
1143 error = xpad_init_ff(xpad); xpad_probe()
1147 error = xpad_led_probe(xpad); xpad_probe()
1152 ep_irq_in_idx = xpad->xtype == XTYPE_XBOXONE ? 1 : 0; xpad_probe()
1155 usb_fill_int_urb(xpad->irq_in, udev, xpad_probe()
1157 xpad->idata, XPAD_PKT_LEN, xpad_irq_in, xpad_probe()
1158 xpad, ep_irq_in->bInterval); xpad_probe()
1159 xpad->irq_in->transfer_dma = xpad->idata_dma; xpad_probe()
1160 xpad->irq_in->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; xpad_probe()
1162 error = input_register_device(xpad->dev); xpad_probe()
1166 usb_set_intfdata(intf, xpad); xpad_probe()
1168 if (xpad->xtype == XTYPE_XBOX360W) { xpad_probe()
1173 xpad->bulk_out = usb_alloc_urb(0, GFP_KERNEL); xpad_probe()
1174 if (!xpad->bulk_out) { xpad_probe()
1179 xpad->bdata = kzalloc(XPAD_PKT_LEN, GFP_KERNEL); xpad_probe()
1180 if (!xpad->bdata) { xpad_probe()
1185 xpad->bdata[2] = 0x08; xpad_probe()
1188 xpad->bdata[3] = 0x42; xpad_probe()
1191 xpad->bdata[3] = 0x43; xpad_probe()
1194 xpad->bdata[3] = 0x44; xpad_probe()
1197 xpad->bdata[3] = 0x45; xpad_probe()
1202 usb_fill_bulk_urb(xpad->bulk_out, udev, xpad_probe()
1205 xpad->bdata, XPAD_PKT_LEN, xpad_probe()
1206 xpad_bulk_out, xpad); xpad_probe()
1208 usb_fill_int_urb(xpad->bulk_out, udev, xpad_probe()
1211 xpad->bdata, XPAD_PKT_LEN, xpad_probe()
1212 xpad_bulk_out, xpad, 0); xpad_probe()
1222 xpad->irq_in->dev = xpad->udev; xpad_probe()
1223 error = usb_submit_urb(xpad->irq_in, GFP_KERNEL); xpad_probe()
1230 fail9: kfree(xpad->bdata); xpad_probe()
1231 fail8: usb_free_urb(xpad->bulk_out); xpad_probe()
1234 fail6: xpad_led_disconnect(xpad); xpad_probe()
1237 fail4: xpad_deinit_output(xpad); xpad_probe()
1238 fail3: usb_free_urb(xpad->irq_in); xpad_probe()
1239 fail2: usb_free_coherent(udev, XPAD_PKT_LEN, xpad->idata, xpad->idata_dma); xpad_probe()
1241 kfree(xpad); xpad_probe()
1248 struct usb_xpad *xpad = usb_get_intfdata (intf); xpad_disconnect() local
1250 xpad_led_disconnect(xpad); xpad_disconnect()
1251 input_unregister_device(xpad->dev); xpad_disconnect()
1252 xpad_deinit_output(xpad); xpad_disconnect()
1254 if (xpad->xtype == XTYPE_XBOX360W) { xpad_disconnect()
1255 usb_kill_urb(xpad->bulk_out); xpad_disconnect()
1256 usb_free_urb(xpad->bulk_out); xpad_disconnect()
1257 usb_kill_urb(xpad->irq_in); xpad_disconnect()
1260 usb_free_urb(xpad->irq_in); xpad_disconnect()
1261 usb_free_coherent(xpad->udev, XPAD_PKT_LEN, xpad_disconnect()
1262 xpad->idata, xpad->idata_dma); xpad_disconnect()
1264 kfree(xpad->bdata); xpad_disconnect()
1265 kfree(xpad); xpad_disconnect()
1271 .name = "xpad",
/linux-4.1.27/drivers/usb/storage/
H A Donetouch.c10 * Based on usbmouse.c (Vojtech Pavlik) and xpad.c (Marko Friedemann)
/linux-4.1.27/drivers/input/misc/
H A Dyealink.c32 * - the xpad-driver drivers/input/joystick/xpad.c
/linux-4.1.27/drivers/crypto/
H A Dixp4xx_crypto.c589 static int register_chain_var(struct crypto_tfm *tfm, u8 xpad, u32 target, register_chain_var() argument
618 pad[i] ^= xpad; register_chain_var()

Completed in 91 milliseconds