zoukankan      html  css  js  c++  java
  • linux自带的usbtouchscreen.c也有bug?你猜对了!

    问题出在usbtouch_irq

        case -ECONNRESET:
        case -ENOENT:
        case -ESHUTDOWN:
        case -EPIPE:
            /* this urb is terminated, clean up */
            dbg("%s - urb shutting down with status: %d",
                __func__, urb->status);
            return;

    当出现EPIPE错误时,驱动并未做太多处理。

    然后,就没有然后了,触控屏从此不动了!触控屏厂家老板带着他的小姨子跑了!

    什么时候会出现EPIPE错误呢?

    USB作为连接器件,不能假设硬件完全稳定的,什么都有可能。

    linux在它的HID设备驱动里,针对这种EPIPE错误的情况,

    在hid_irq_in做了如下的处理,

       case -EPIPE:        /* stall */
            usbhid_mark_busy(usbhid);
            clear_bit(HID_IN_RUNNING, &usbhid->iofl);
            set_bit(HID_CLEAR_HALT, &usbhid->iofl);
            schedule_work(&usbhid->reset_work);
            return;

    为什么在触控屏这里就视若无睹了?

     (转载请标明:http://www.cnblogs.com/xhawk18/)

  • 相关阅读:
    border-radius
    border-style
    border-width
    border
    max-width
    min-width
    clip 语法
    left
    z-index
    position
  • 原文地址:https://www.cnblogs.com/xhawk18/p/3385417.html
Copyright © 2011-2022 走看看