Lines Matching refs:pxrc

21 struct pxrc {  struct
32 struct pxrc *pxrc = urb->context; in pxrc_usb_irq() local
42 dev_dbg(&pxrc->intf->dev, in pxrc_usb_irq()
51 dev_dbg(&pxrc->intf->dev, "%s - urb shutting down with status: %d\n", in pxrc_usb_irq()
55 dev_dbg(&pxrc->intf->dev, "%s - nonzero urb status received: %d\n", in pxrc_usb_irq()
61 input_report_abs(pxrc->input, ABS_X, data[0]); in pxrc_usb_irq()
62 input_report_abs(pxrc->input, ABS_Y, data[2]); in pxrc_usb_irq()
63 input_report_abs(pxrc->input, ABS_RX, data[3]); in pxrc_usb_irq()
64 input_report_abs(pxrc->input, ABS_RY, data[4]); in pxrc_usb_irq()
65 input_report_abs(pxrc->input, ABS_RUDDER, data[5]); in pxrc_usb_irq()
66 input_report_abs(pxrc->input, ABS_THROTTLE, data[6]); in pxrc_usb_irq()
67 input_report_abs(pxrc->input, ABS_MISC, data[7]); in pxrc_usb_irq()
69 input_report_key(pxrc->input, BTN_A, data[1]); in pxrc_usb_irq()
76 dev_err(&pxrc->intf->dev, in pxrc_usb_irq()
83 struct pxrc *pxrc = input_get_drvdata(input); in pxrc_open() local
86 mutex_lock(&pxrc->pm_mutex); in pxrc_open()
87 retval = usb_submit_urb(pxrc->urb, GFP_KERNEL); in pxrc_open()
89 dev_err(&pxrc->intf->dev, in pxrc_open()
96 pxrc->is_open = true; in pxrc_open()
99 mutex_unlock(&pxrc->pm_mutex); in pxrc_open()
105 struct pxrc *pxrc = input_get_drvdata(input); in pxrc_close() local
107 mutex_lock(&pxrc->pm_mutex); in pxrc_close()
108 usb_kill_urb(pxrc->urb); in pxrc_close()
109 pxrc->is_open = false; in pxrc_close()
110 mutex_unlock(&pxrc->pm_mutex); in pxrc_close()
115 struct pxrc *pxrc = _pxrc; in pxrc_free_urb() local
117 usb_free_urb(pxrc->urb); in pxrc_free_urb()
124 struct pxrc *pxrc; in pxrc_probe() local
141 pxrc = devm_kzalloc(&intf->dev, sizeof(*pxrc), GFP_KERNEL); in pxrc_probe()
142 if (!pxrc) in pxrc_probe()
145 mutex_init(&pxrc->pm_mutex); in pxrc_probe()
146 pxrc->intf = intf; in pxrc_probe()
148 usb_set_intfdata(pxrc->intf, pxrc); in pxrc_probe()
155 pxrc->urb = usb_alloc_urb(0, GFP_KERNEL); in pxrc_probe()
156 if (!pxrc->urb) in pxrc_probe()
159 error = devm_add_action_or_reset(&intf->dev, pxrc_free_urb, pxrc); in pxrc_probe()
163 usb_fill_int_urb(pxrc->urb, udev, in pxrc_probe()
165 xfer_buf, xfer_size, pxrc_usb_irq, pxrc, 1); in pxrc_probe()
167 pxrc->input = devm_input_allocate_device(&intf->dev); in pxrc_probe()
168 if (!pxrc->input) { in pxrc_probe()
173 pxrc->input->name = "PXRC Flight Controller Adapter"; in pxrc_probe()
175 usb_make_path(udev, pxrc->phys, sizeof(pxrc->phys)); in pxrc_probe()
176 strlcat(pxrc->phys, "/input0", sizeof(pxrc->phys)); in pxrc_probe()
177 pxrc->input->phys = pxrc->phys; in pxrc_probe()
179 usb_to_input_id(udev, &pxrc->input->id); in pxrc_probe()
181 pxrc->input->open = pxrc_open; in pxrc_probe()
182 pxrc->input->close = pxrc_close; in pxrc_probe()
184 input_set_capability(pxrc->input, EV_KEY, BTN_A); in pxrc_probe()
185 input_set_abs_params(pxrc->input, ABS_X, 0, 255, 0, 0); in pxrc_probe()
186 input_set_abs_params(pxrc->input, ABS_Y, 0, 255, 0, 0); in pxrc_probe()
187 input_set_abs_params(pxrc->input, ABS_RX, 0, 255, 0, 0); in pxrc_probe()
188 input_set_abs_params(pxrc->input, ABS_RY, 0, 255, 0, 0); in pxrc_probe()
189 input_set_abs_params(pxrc->input, ABS_RUDDER, 0, 255, 0, 0); in pxrc_probe()
190 input_set_abs_params(pxrc->input, ABS_THROTTLE, 0, 255, 0, 0); in pxrc_probe()
191 input_set_abs_params(pxrc->input, ABS_MISC, 0, 255, 0, 0); in pxrc_probe()
193 input_set_drvdata(pxrc->input, pxrc); in pxrc_probe()
195 error = input_register_device(pxrc->input); in pxrc_probe()
209 struct pxrc *pxrc = usb_get_intfdata(intf); in pxrc_suspend() local
211 mutex_lock(&pxrc->pm_mutex); in pxrc_suspend()
212 if (pxrc->is_open) in pxrc_suspend()
213 usb_kill_urb(pxrc->urb); in pxrc_suspend()
214 mutex_unlock(&pxrc->pm_mutex); in pxrc_suspend()
221 struct pxrc *pxrc = usb_get_intfdata(intf); in pxrc_resume() local
224 mutex_lock(&pxrc->pm_mutex); in pxrc_resume()
225 if (pxrc->is_open && usb_submit_urb(pxrc->urb, GFP_KERNEL) < 0) in pxrc_resume()
228 mutex_unlock(&pxrc->pm_mutex); in pxrc_resume()
234 struct pxrc *pxrc = usb_get_intfdata(intf); in pxrc_pre_reset() local
236 mutex_lock(&pxrc->pm_mutex); in pxrc_pre_reset()
237 usb_kill_urb(pxrc->urb); in pxrc_pre_reset()
243 struct pxrc *pxrc = usb_get_intfdata(intf); in pxrc_post_reset() local
246 if (pxrc->is_open && usb_submit_urb(pxrc->urb, GFP_KERNEL) < 0) in pxrc_post_reset()
249 mutex_unlock(&pxrc->pm_mutex); in pxrc_post_reset()