Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4724742imu; Sun, 25 Nov 2018 09:01:31 -0800 (PST) X-Google-Smtp-Source: AJdET5celDmodWdVDlhAnE+tioctQLy0rGPSBMsxxYKGlkjvQ0qyld+yHbujS42AN832nRbZawY7 X-Received: by 2002:a62:7e13:: with SMTP id z19mr24188695pfc.94.1543165291542; Sun, 25 Nov 2018 09:01:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543165291; cv=none; d=google.com; s=arc-20160816; b=An5cEWq9dMWeBl5+qoHYkk/pRET4XS9Ayeh4BPHeL36fAVQmUTIuw+tssKYOEoUmU5 6USvckXsgyyFcD7gDp/sCyt0YLSlsHa5cJNjIE+y/57og5d6Wnq6Y6pXVBKfoUnG1Lrb iIyMbl1GQjvZp57Peu41YlfXN23gvFV6yoBlOQJN/ejXJYzGjrhiL/eBxt+Dm39simlF cakKoyB2BJgygHYZEyUFZAMQYAWo8blDp3T2bLwzic7zrqUkl3FAE7WpfIXayXXkL8OJ Mm3u4CQfTz2YWnqMHg+/aLbg0Rt8XB+346TKNDAT2xnQKy4XVj4qENTAHAuTMLRxTcVg nDew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=yHnhaUfj2PBN8Q1GoEjLEEBhYkqybea5rLj0T2VV3p0=; b=lpvCL7/fPBXi2T0nSV/XWVh9tV8nSfa198+yTWcbu/iBswMPncsxQEerByAP2vFSqa wctnKr7/zWcwHsC/CbLXUGXXd9mSW8r4tDWYE91VrG+TeQJq35oBdVY64QHdQGEyx3fP ttJ01vm1VSbug8Bm/VOTCQeb8f2hyc9GLWpMPOmmwEz3gLLb00rpGnXbqhnVv5CKMzqx Kg4GlbWjotKLnAns+DmGBDZqdjSsxA3iaNVKa5ooxDrlRhTMTsSMBZ0llxzFrCm3Evav gGegeCEuGCINx5fZpXH1IU8QCB6xPvjaLLrCfYxVowcea4I/QpAyi1LW6AGKYhcz62nW tW9Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=iki.fi Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 5si16853919pgf.579.2018.11.25.09.00.46; Sun, 25 Nov 2018 09:01:31 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=iki.fi Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726647AbeKZDuD (ORCPT + 99 others); Sun, 25 Nov 2018 22:50:03 -0500 Received: from emh03.mail.saunalahti.fi ([62.142.5.109]:54022 "EHLO emh03.mail.saunalahti.fi" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726098AbeKZDuC (ORCPT ); Sun, 25 Nov 2018 22:50:02 -0500 Received: from darkstar.musicnaut.iki.fi (85-76-80-180-nat.elisa-mobile.fi [85.76.80.180]) by emh03.mail.saunalahti.fi (Postfix) with ESMTP id 49A6940073; Sun, 25 Nov 2018 18:58:31 +0200 (EET) Date: Sun, 25 Nov 2018 18:58:31 +0200 From: Aaro Koskinen To: Russell King - ARM Linux Cc: Tony Lindgren , Peter Ujfalusi , vkoul@kernel.org, dan.j.williams@intel.com, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org Subject: Re: [PATCH] dmaengine: ti: omap-dma: Configure LCH_TYPE for OMAP1 Message-ID: <20181125165830.GC3416@darkstar.musicnaut.iki.fi> References: <20181119184649.GE16897@darkstar.musicnaut.iki.fi> <6af8c6e7-bf5c-5555-161b-5d3fb7ecae43@ti.com> <20181120210406.GB24888@darkstar.musicnaut.iki.fi> <20181122102948.GN6920@n2100.armlinux.org.uk> <20181122151236.GA9611@n2100.armlinux.org.uk> <6ed280af-edb6-4be7-82f4-7fc00378103e@ti.com> <20181123185215.GH12912@darkstar.musicnaut.iki.fi> <20181124200942.GS6920@n2100.armlinux.org.uk> <20181125010717.GJ53235@atomide.com> <20181125111105.GT6920@n2100.armlinux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181125111105.GT6920@n2100.armlinux.org.uk> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Sun, Nov 25, 2018 at 11:11:05AM +0000, Russell King - ARM Linux wrote: > I think we're better off leaving omap-udc well alone, and if it's > now broken with DMA, then that's unfortunate - it would require > someone with the hardware to diagnose the problem and fix it. I > think trying to convert it to dmaengine would be risking way more > problems than its worth. Well, there's also an option to use dmaengine only for 16xx at the beginning. My current guess is that 15xx DMA has been broken at least since 65111084c63d ("USB: more omap_udc updates (dma and omap1710)"). There are two changes in that patch that broke it: "use 16 bit DMA access" ==> CPC off-by-one becomes now off-by-two...? "allow burst/pack for memory access" ==> no idea why Below changes get traffic going with DMA & g_ether... A. diff --git a/drivers/usb/gadget/udc/omap_udc.c b/drivers/usb/gadget/udc/omap_udc.c index fcf13ef33b31..8094a0380057 100644 --- a/drivers/usb/gadget/udc/omap_udc.c +++ b/drivers/usb/gadget/udc/omap_udc.c @@ -498,7 +498,7 @@ static u16 dma_dest_len(struct omap_ep *ep, dma_addr_t start) end |= start & (0xffff << 16); if (cpu_is_omap15xx()) - end++; + end += 2; if (end < start) end += 0x10000; return end - start; @@ -730,10 +730,12 @@ static void dma_channel_claim(struct omap_ep *ep, unsigned channel) ep->ep.name, dma_error, ep, &ep->lch); if (status == 0) { omap_writew(reg, UDC_TXDMA_CFG); - /* EMIFF or SDRC */ - omap_set_dma_src_burst_mode(ep->lch, - OMAP_DMA_DATA_BURST_4); - omap_set_dma_src_data_pack(ep->lch, 1); + if (!cpu_is_omap15xx()) { + /* EMIFF or SDRC */ + omap_set_dma_src_burst_mode(ep->lch, + OMAP_DMA_DATA_BURST_4); + omap_set_dma_src_data_pack(ep->lch, 1); + } /* TIPB */ omap_set_dma_dest_params(ep->lch, OMAP_DMA_PORT_TIPB, @@ -753,10 +755,12 @@ static void dma_channel_claim(struct omap_ep *ep, unsigned channel) OMAP_DMA_AMODE_CONSTANT, UDC_DATA_DMA, 0, 0); - /* EMIFF or SDRC */ - omap_set_dma_dest_burst_mode(ep->lch, - OMAP_DMA_DATA_BURST_4); - omap_set_dma_dest_data_pack(ep->lch, 1); + if (!cpu_is_omap15xx()) { + /* EMIFF or SDRC */ + omap_set_dma_dest_burst_mode(ep->lch, + OMAP_DMA_DATA_BURST_4); + omap_set_dma_dest_data_pack(ep->lch, 1); + } } } if (status)