xbox_remote
rc_keydown(xbox_remote->rdev, RC_PROTO_XBOX_DVD,
struct xbox_remote *xbox_remote = urb->context;
dev_dbg(&xbox_remote->interface->dev,
dev_dbg(&xbox_remote->interface->dev,
dev_err(&xbox_remote->interface->dev,
static void xbox_remote_rc_init(struct xbox_remote *xbox_remote)
struct rc_dev *rdev = xbox_remote->rdev;
rdev->priv = xbox_remote;
rdev->device_name = xbox_remote->rc_name;
rdev->input_phys = xbox_remote->rc_phys;
usb_to_input_id(xbox_remote->udev, &rdev->input_id);
rdev->dev.parent = &xbox_remote->interface->dev;
static void xbox_remote_initialize(struct xbox_remote *xbox_remote,
struct usb_device *udev = xbox_remote->udev;
usb_fill_int_urb(xbox_remote->irq_urb, udev, pipe, xbox_remote->inbuf,
maxp, xbox_remote_irq_in, xbox_remote,
struct xbox_remote *xbox_remote;
xbox_remote = kzalloc_obj(*xbox_remote);
if (!xbox_remote || !rc_dev)
xbox_remote->irq_urb = usb_alloc_urb(0, GFP_KERNEL);
if (!xbox_remote->irq_urb)
xbox_remote->udev = udev;
xbox_remote->rdev = rc_dev;
xbox_remote->interface = interface;
usb_make_path(udev, xbox_remote->rc_phys, sizeof(xbox_remote->rc_phys));
strlcat(xbox_remote->rc_phys, "/input0", sizeof(xbox_remote->rc_phys));
snprintf(xbox_remote->rc_name, sizeof(xbox_remote->rc_name), "%s%s%s",
if (!strlen(xbox_remote->rc_name))
snprintf(xbox_remote->rc_name, sizeof(xbox_remote->rc_name),
le16_to_cpu(xbox_remote->udev->descriptor.idVendor),
le16_to_cpu(xbox_remote->udev->descriptor.idProduct));
xbox_remote_rc_init(xbox_remote);
xbox_remote_initialize(xbox_remote, endpoint_in);
err = rc_register_device(xbox_remote->rdev);
usb_set_intfdata(interface, xbox_remote);
usb_kill_urb(xbox_remote->irq_urb);
usb_free_urb(xbox_remote->irq_urb);
kfree(xbox_remote);
struct xbox_remote *xbox_remote;
xbox_remote = usb_get_intfdata(interface);
if (!xbox_remote) {
usb_kill_urb(xbox_remote->irq_urb);
rc_unregister_device(xbox_remote->rdev);
usb_free_urb(xbox_remote->irq_urb);
kfree(xbox_remote);
struct xbox_remote *xbox_remote = rdev->priv;
xbox_remote->irq_urb->dev = xbox_remote->udev;
if (usb_submit_urb(xbox_remote->irq_urb, GFP_KERNEL)) {
dev_err(&xbox_remote->interface->dev,
struct xbox_remote *xbox_remote = rdev->priv;
usb_kill_urb(xbox_remote->irq_urb);
struct xbox_remote *xbox_remote = urb->context;
unsigned char *data = xbox_remote->inbuf;