예제 #1
0
파일: wacom_sys.c 프로젝트: 71eh/open80211s
static void wacom_sys_irq(struct urb *urb)
{
	struct wacom *wacom = urb->context;
	int retval;

	switch (urb->status) {
	case 0:
		/* success */
		break;
	case -ECONNRESET:
	case -ENOENT:
	case -ESHUTDOWN:
		/* this urb is terminated, clean up */
		dbg("%s - urb shutting down with status: %d", __func__, urb->status);
		return;
	default:
		dbg("%s - nonzero urb status received: %d", __func__, urb->status);
		goto exit;
	}

	wacom_wac_irq(&wacom->wacom_wac, urb->actual_length);

 exit:
	usb_mark_last_busy(wacom->usbdev);
	retval = usb_submit_urb(urb, GFP_ATOMIC);
	if (retval)
		err ("%s - usb_submit_urb failed with result %d",
		     __func__, retval);
}
예제 #2
0
static void wacom_sys_irq(struct urb *urb)
{
    struct wacom *wacom = urb->context;
    struct wacom_combo wcombo;
    int retval;

    switch (urb->status) {
    case 0:
        /* success */
        break;
    case -ECONNRESET:
    case -ENOENT:
    case -ESHUTDOWN:
        /* this urb is terminated, clean up */
        dbg("%s - urb shutting down with status: %d", __FUNCTION__, urb->status);
        return;
    default:
        dbg("%s - nonzero urb status received: %d", __FUNCTION__, urb->status);
        goto exit;
    }

    wcombo.wacom = wacom;
    wcombo.urb = urb;

    if (wacom_wac_irq(wacom->wacom_wac, (void *)&wcombo))
        input_sync(get_input_dev(&wcombo));

exit:
    retval = usb_submit_urb (urb, GFP_ATOMIC);
    if (retval)
        err ("%s - usb_submit_urb failed with result %d",
             __FUNCTION__, retval);
}