OpenELEC Testbuilds for RaspberryPi Part 2
(2013-08-25, 14:08)popcornmix Wrote: Looks like this issue:

Seems it should have been fixed. Can you check if all the dwc_otg commits are present in your linux tree?
If you do and you are still getting that error then opening a linux issue may be best.

I seem to have the following dwc related patches in OE master:
Quote:Subject: [PATCH 002/112] Add dwc_otg driver
Subject: [PATCH 030/112] Add FIQ patch to dwc_otg driver. Enable with dwc_otg.fiq_fix_enable=1. Should give about 10% more ARM performance. Thanks
to Gordon and Costas
Subject: [PATCH 054/112] Default to dwc_otp.lpm_enable=0
Subject: [PATCH 057/112] dwc_otg: fix bug in dwc_otg_hcd.c resulting in silent kernel memory corruption, escalating to OOPS under high USB load.
Subject: [PATCH 063/112] dwc_otg: Fix unsafe access of QTD during URB enqueue
Subject: [PATCH 064/112] dwc_otg: Fix incorrect URB allocation error handling
Subject: [PATCH 067/112] dwc_otg: fix potential use-after-free case in interrupt handler
Subject: [PATCH 068/112] dwc_otg: add handling of SPLIT transaction data toggle errors
Subject: [PATCH 071/112] dwc_otg: implement tasklet for returning URBs to usbcore hcd layer
Subject: [PATCH 074/112] dwc_otg: fix NAK holdoff and allow on split transaction only
Subject: [PATCH 087/112] dwc_otg: Call usb_hcd_unlink_urb_from_ep with lock held in completion handler
Subject: [PATCH 089/112] dwc_otg: fix device attributes and avoid kernel warnings on boot
Subject: [PATCH 095/112] dwc_otg: mask correct interrupts after transaction error recovery
Subject: [PATCH 096/112] dwc_otg: fiq: prevent FIQ thrash and incorrect state passing to IRQ
Subject: [PATCH 098/112] dwc_otg: whitespace cleanup in dwc_otg_urb_enqueue
Subject: [PATCH 099/112] dwc_otg: prevent OOPSes during device disconnects
Subject: [PATCH 100/112] dwc_otg: prevent BUG() in TT allocation if hub address is > 16
Subject: [PATCH 103/112] dwc_otg: make channel halts with unknown state less damaging
Subject: [PATCH 104/112] dwc_otg: fiq_split: use TTs with more granularity
Subject: [PATCH 107/112] dwc_otg: fix potential sleep while atomic during urb enqueue
Subject: [PATCH 108/112] dwc_otg: make fiq_split_enable imply fiq_fix_enable
Subject: [PATCH 109/112] dwc_otg: prevent crashes on host port disconnects
Subject: [PATCH 110/112] dwc_otg: prevent leaking URBs during enqueue

It looks like I have the patch mentioned in issue 241 (highlighted in above list) - I assume the patch hasn't changed, this is what I have:

From ffb30ec872c1434dda30f3364710e6bb47e98fb1 Mon Sep 17 00:00:00 2001
From: P33M <[email protected]>
Date: Sun, 3 Mar 2013 14:45:53 +0000
Subject: [PATCH 068/112] dwc_otg: add handling of SPLIT transaction data
toggle errors

Previously a data toggle error on packets from a USB1.1 device behind
a TT would result in the Pi locking up as the driver never handled
the associated interrupt. Patch adds basic retry mechanism and
interrupt acknowledgement to cater for either a chance toggle error or
for devices that have a broken initial toggle state (FT8U232/FT232BM).
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
index 0c81a64..16e8c6c 100644
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
@@ -1921,13 +1921,20 @@ static int32_t handle_hc_datatglerr_intr(dwc_otg_hcd_t * hcd,
                     dwc_otg_qtd_t * qtd)
    DWC_DEBUGPL(DBG_HCDI, "--Host Channel %d Interrupt: "
-            "Data Toggle Error--\n", hc->hc_num);
+        "Data Toggle Error on %s transfer--\n",
+        hc->hc_num, (hc->ep_is_in ? "IN" : "OUT"));

-    if (hc->ep_is_in) {
+    /* Data toggles on split transactions cause the hc to halt.
+     * restart transfer */
+    if(hc->qh->do_split)
+    {
+        qtd->error_count++;
+        dwc_otg_hcd_save_data_toggle(hc, hc_regs, qtd);
+        update_urb_state_xfer_intr(hc, hc_regs,
+            qtd->urb, qtd, DWC_OTG_HC_XFER_XACT_ERR);
+        halt_channel(hcd, hc, qtd, DWC_OTG_HC_XFER_XACT_ERR);
+    } else if (hc->ep_is_in) {
        qtd->error_count = 0;
-    } else {
-        DWC_ERROR("Data Toggle Error on OUT transfer,"
-              "channel %d\n", hc->hc_num);

    disable_hc_int(hc_regs, datatglerr);
@@ -2080,6 +2087,8 @@ static void handle_hc_chhltd_intr_dma(dwc_otg_hcd_t * hcd,
        handle_hc_babble_intr(hcd, hc, hc_regs, qtd);
    } else if (hcint.b.frmovrun) {
        handle_hc_frmovrun_intr(hcd, hc, hc_regs, qtd);
+    } else if (hcint.b.datatglerr) {
+        handle_hc_datatglerr_intr(hcd, hc, hc_regs, qtd);
    } else if (!out_nak_enh) {
        if (hcint.b.nyet) {

I've only seen the ERROR just the once, but if I continue to see it I'll open a new issue.

My Pi is connected to a keyboard - though not in use - and IR dongle, which may account for the USB 1.1 activity. Other than the message appearing, all seems fine with the Pi and XBMC.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.

Messages In This Thread
AW: RE: - by DieterLumpen - 2013-07-29, 20:50
include guires switch? - by hpbaxxter - 2013-08-01, 21:46
RE: dual audio?? - by pootler - 2013-08-03, 17:13
Help, watch 3D Film on Non 3D TV - by unix72 - 2013-08-09, 12:39
Remote Controllers - by tfft - 2013-08-14, 09:11
rbej repeatable crash - by RichG - 2013-08-19, 12:43
RE: OpenELEC Testbuilds for RaspberryPi Part 2 - by Milhouse - 2013-08-25, 14:32
New Tester - by theneverstill - 2013-10-03, 17:16