关于rk3288触摸屏的问题

板在刷上官方固件之后,用鼠标操作可以流畅操作,但是在接上我们这边的usb触摸屏之后会出现卡顿的现象,于是就开始查找原因,为了测试是不是触摸屏的问题,我用了另一款rk3399来测试,没有卡顿现象。然后就证明了不是触摸屏的问题,于是在网上找到这个https://blog.csdn.net/mike8825/article/details/53360438,于是我打开显示触摸操作发现是一样的情况

这个是什么情况,需要怎么调试,求解

问题图片如下

刚刚试了下,没有发现你说的问题,请问用的固件是?

おのみどり 发表于 2018-6-6 10:34
刚刚试了下,没有发现你说的问题,请问用的固件是?

就官方上的固件,用的是usb的触摸屏。

我用的也是官方上的固件和USB触摸屏,没有出现卡顿。

おのみどり 发表于 2018-6-6 10:38
我用的也是官方上的固件和USB触摸屏,没有出现卡顿。

触摸屏是官方那边买的吗

kiven07 发表于 2018-6-6 10:46
触摸屏是官方那边买的吗

不是官方的屏

おのみどり 发表于 2018-6-6 11:11
不是官方的屏

我测试了发现,好像是4个usb口负载高的时候会出现这个问题,尤其是插上usbaudio设备的时候,出现的几率很高。是我这块板的问题还是其他问题

kiven07 发表于 2018-6-6 11:52
我测试了发现,好像是4个usb口负载高的时候会出现这个问题,尤其是插上usbaudio设备的时候,出现的几率很 …

已经复现到了,我们会尽快解决

おのみどり 发表于 2018-6-6 16:41
已经复现到了,我们会尽快解决

解决了之后可以通知我一下吗?因为我们这边比较急,我的邮箱445024441@qq.com

kiven07 发表于 2018-6-7 10:00
解决了之后可以通知我一下吗?因为我们这边比较急,我的邮箱

打上以下补丁测试一下,我这边验证是可以的。

diff --git a/drivers/usb/dwc_otg_310/common_port/dwc_list.h b/drivers/usb/dwc_otg_310/common_port/dwc_list.h
index 46f1da3..e20124b 100755
— a/drivers/usb/dwc_otg_310/common_port/dwc_list.h
+++ b/drivers/usb/dwc_otg_310/common_port/dwc_list.h
@@ -565,6 +565,18 @@ struct {
(head)->cqh_last = (elm);
} while (0)

+#define DWC_CIRCLEQ_INSERT_COM(head, listelm, elm, field, com) do { \

  •      DWC_CIRCLEQ_FOREACH(listelm, head, field) {          \
    
  •           if ((elm)->com < (listelm)->com) {          \
    
  •                DWC_CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field); \
    
  •                break;                         \
    
  •           } else                              \
    
  •                continue;                    \
    
  •      }                                   \
    
  •      if (DWC_CIRCLEQ_PREV(listelm, field) != elm)          \
    
  •           DWC_CIRCLEQ_INSERT_TAIL(head, elm, field);     \
    

+} while (0)
+
#define DWC_CIRCLEQ_REMOVE(head, elm, field) do {
if ((elm)->field.cqe_next == DWC_CIRCLEQ_END(head))
(head)->cqh_last = (elm)->field.cqe_prev;
diff --git a/drivers/usb/dwc_otg_310/dwc_otg_hcd_intr.c b/drivers/usb/dwc_otg_310/dwc_otg_hcd_intr.c
index 09197ce..07f27f3 100755
— a/drivers/usb/dwc_otg_310/dwc_otg_hcd_intr.c
+++ b/drivers/usb/dwc_otg_310/dwc_otg_hcd_intr.c
@@ -834,6 +834,7 @@ static void release_channel(dwc_otg_hcd_t *hcd,
dwc_otg_transaction_type_e tr_type;
int free_qtd;
int continue_trans = 1;

  • dwc_hc_t *hc_tmp = NULL;
    

    DWC_DEBUGPL(DBG_HCDV, " %s: channel %d, halt_status %d\n",
    func, hc->hc_num, halt_status);
    @@ -914,7 +915,7 @@ cleanup:

    • there’s no need to clear the Channel Halted interrupt separately.
      */
      dwc_otg_hc_cleanup(hcd->core_if, hc);
  • DWC_CIRCLEQ_INSERT_TAIL(&hcd->free_hc_list, hc, hc_list_entry);
    
  • DWC_CIRCLEQ_INSERT_COM(&hcd->free_hc_list, hc_tmp, hc, hc_list_entry, hc_num);
    

    switch (hc->ep_type) {
    case DWC_OTG_EP_TYPE_CONTROL:

おのみどり 发表于 2018-6-7 14:40
打上以下补丁测试一下,我这边验证是可以的。

diff --git a/drivers/usb/dwc_otg_310/common_port/dwc …

打上补丁之后卡顿明显少了,但是好像还会有一两次出现那个手离开触摸屏,还有操作点在上面。大概点50次有1-2次出现问题。

kiven07 发表于 2018-6-7 15:48
打上补丁之后卡顿明显少了,但是好像还会有一两次出现那个手离开触摸屏,还有操作点在上面。大概点50次有 …

你试一下其他负载都不接,只接触摸屏看看还会不会出现这个操作点的问题

おのみどり 发表于 2018-6-7 16:49
你试一下其他负载都不接,只接触摸屏看看还会不会出现这个操作点的问题

昨天试过了,不负载的时候有时也会有一到两次,是什么原因,这个可以根本解决吗

kiven07 发表于 2018-6-8 10:19
昨天试过了,不负载的时候有时也会有一到两次,是什么原因,这个可以根本解决吗

不接负载的时候我试不出来有问题啊,我再看看吧

RK3399接非官方触摸屏也会有类似的情况,今天能用明天可能就失灵一天后天又回复正常。
换了几套线无效,getevent也看不出名堂。

おのみどり 发表于 2018-6-8 10:38
不接负载的时候我试不出来有问题啊,我再看看吧

你好,请问之前的问题解决了吗,就是负载情况下会出现触摸没弹起的问题。我这边现在加了补丁还是会出现触摸不灵敏的问题??

kiven07 发表于 2018-9-1 11:05
你好,请问之前的问题解决了吗,就是负载情况下会出现触摸没弹起的问题。我这边现在加了补丁还是会出现触 …

接多个usb外设备,需要外接HUB,不然有可能供电不足。

おのみどり 发表于 2018-9-14 11:13
接多个usb外设备,需要外接HUB,不然有可能供电不足。

你好我想问下外接的HUB是需要有电源的那种吗??

kiven07 发表于 2018-9-14 12:38
你好我想问下外接的HUB是需要有电源的那种吗??

需要有电源的