imon
dev_warn(imon->dev, "failed to resubmit urb: %d", ret);
struct imon *imon;
imon = devm_kmalloc(&intf->dev, sizeof(*imon), GFP_KERNEL);
if (!imon)
imon->ir_urb = usb_alloc_urb(0, GFP_KERNEL);
if (!imon->ir_urb)
imon->ir_buf = kmalloc(sizeof(__be64), GFP_KERNEL);
if (!imon->ir_buf) {
imon->dev = &intf->dev;
usb_fill_int_urb(imon->ir_urb, udev,
imon->ir_buf, sizeof(__be64),
imon_ir_rx, imon, ir_ep->bInterval);
usb_make_path(udev, imon->phys, sizeof(imon->phys));
rcdev->input_phys = imon->phys;
rcdev->priv = imon;
imon->rcdev = rcdev;
ret = usb_submit_urb(imon->ir_urb, GFP_KERNEL);
usb_set_intfdata(intf, imon);
usb_free_urb(imon->ir_urb);
kfree(imon->ir_buf);
struct imon *imon = usb_get_intfdata(intf);
usb_kill_urb(imon->ir_urb);
usb_free_urb(imon->ir_urb);
kfree(imon->ir_buf);
static void imon_ir_data(struct imon *imon)
u64 data = be64_to_cpup(imon->ir_buf);
dev_dbg(imon->dev, "data: %8ph", imon->ir_buf);
dev_dbg(imon->dev, "%s: %d bits",
ir_raw_event_store_with_filter(imon->rcdev, &rawir);
if (packet_no == 0x0a && !imon->rcdev->idle) {
ir_raw_event_set_idle(imon->rcdev, true);
ir_raw_event_handle(imon->rcdev);
struct imon *imon = urb->context;
imon_ir_data(imon);
dev_dbg(imon->dev, "error: urb status = %d", urb->status);
struct imon_dec *imon = &dev->raw->imon;
imon->stick_keyboard = false;
struct imon_dec *imon = &dev->raw->imon;
if (imon->bits == 0x299115b7)
imon->stick_keyboard = !imon->stick_keyboard;
if ((imon->bits & 0xfc0000ff) == 0x680000b7) {
buf = imon->bits >> 16;
if (imon->bits & 0x02000000)
buf = imon->bits >> 8;
if (imon->bits & 0x01000000)
if (rel_x && rel_y && imon->stick_keyboard) {
imon->bits = rel_y > 0 ?
imon->bits = rel_x > 0 ?
if (!imon->stick_keyboard) {
(imon->bits & 0x00010000) != 0);
(imon->bits & 0x00040000) != 0);
rc_keydown(dev, RC_PROTO_IMON, imon->bits, 0);
struct imon_dec *data = &dev->raw->imon;
} imon;