pxrc
struct pxrc *pxrc = input_get_drvdata(input);
guard(mutex)(&pxrc->pm_mutex);
usb_kill_urb(pxrc->urb);
pxrc->is_open = false;
struct pxrc *pxrc = _pxrc;
usb_free_urb(pxrc->urb);
struct pxrc *pxrc;
pxrc = devm_kzalloc(&intf->dev, sizeof(*pxrc), GFP_KERNEL);
if (!pxrc)
mutex_init(&pxrc->pm_mutex);
pxrc->intf = intf;
usb_set_intfdata(pxrc->intf, pxrc);
pxrc->urb = usb_alloc_urb(0, GFP_KERNEL);
if (!pxrc->urb)
error = devm_add_action_or_reset(&intf->dev, pxrc_free_urb, pxrc);
usb_fill_int_urb(pxrc->urb, udev,
xfer_buf, xfer_size, pxrc_usb_irq, pxrc, 1);
pxrc->input = devm_input_allocate_device(&intf->dev);
if (!pxrc->input) {
pxrc->input->name = "PXRC Flight Controller Adapter";
usb_make_path(udev, pxrc->phys, sizeof(pxrc->phys));
strlcat(pxrc->phys, "/input0", sizeof(pxrc->phys));
pxrc->input->phys = pxrc->phys;
usb_to_input_id(udev, &pxrc->input->id);
pxrc->input->open = pxrc_open;
pxrc->input->close = pxrc_close;
input_set_capability(pxrc->input, EV_KEY, BTN_A);
input_set_abs_params(pxrc->input, ABS_X, 0, 255, 0, 0);
input_set_abs_params(pxrc->input, ABS_Y, 0, 255, 0, 0);
input_set_abs_params(pxrc->input, ABS_RX, 0, 255, 0, 0);
input_set_abs_params(pxrc->input, ABS_RY, 0, 255, 0, 0);
input_set_abs_params(pxrc->input, ABS_RUDDER, 0, 255, 0, 0);
input_set_abs_params(pxrc->input, ABS_THROTTLE, 0, 255, 0, 0);
input_set_abs_params(pxrc->input, ABS_MISC, 0, 255, 0, 0);
input_set_drvdata(pxrc->input, pxrc);
error = input_register_device(pxrc->input);
struct pxrc *pxrc = usb_get_intfdata(intf);
guard(mutex)(&pxrc->pm_mutex);
if (pxrc->is_open)
usb_kill_urb(pxrc->urb);
struct pxrc *pxrc = usb_get_intfdata(intf);
guard(mutex)(&pxrc->pm_mutex);
if (pxrc->is_open && usb_submit_urb(pxrc->urb, GFP_KERNEL) < 0)
struct pxrc *pxrc = usb_get_intfdata(intf);
mutex_lock(&pxrc->pm_mutex);
usb_kill_urb(pxrc->urb);
struct pxrc *pxrc = usb_get_intfdata(intf);
if (pxrc->is_open && usb_submit_urb(pxrc->urb, GFP_KERNEL) < 0)
mutex_unlock(&pxrc->pm_mutex);
struct pxrc *pxrc = urb->context;
dev_dbg(&pxrc->intf->dev,
dev_dbg(&pxrc->intf->dev, "%s - urb shutting down with status: %d\n",
dev_dbg(&pxrc->intf->dev, "%s - nonzero urb status received: %d\n",
input_report_abs(pxrc->input, ABS_X, data[0]);
input_report_abs(pxrc->input, ABS_Y, data[2]);
input_report_abs(pxrc->input, ABS_RX, data[3]);
input_report_abs(pxrc->input, ABS_RY, data[4]);
input_report_abs(pxrc->input, ABS_RUDDER, data[5]);
input_report_abs(pxrc->input, ABS_THROTTLE, data[6]);
input_report_abs(pxrc->input, ABS_MISC, data[7]);
input_report_key(pxrc->input, BTN_A, data[1]);
dev_err(&pxrc->intf->dev,
struct pxrc *pxrc = input_get_drvdata(input);
guard(mutex)(&pxrc->pm_mutex);
error = usb_submit_urb(pxrc->urb, GFP_KERNEL);
dev_err(&pxrc->intf->dev,
pxrc->is_open = true;