Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751986AbcCIDkR (ORCPT ); Tue, 8 Mar 2016 22:40:17 -0500 Received: from mail-ob0-f181.google.com ([209.85.214.181]:36796 "EHLO mail-ob0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750863AbcCIDkJ (ORCPT ); Tue, 8 Mar 2016 22:40:09 -0500 MIME-Version: 1.0 In-Reply-To: References: <1456119133-16114-1-git-send-email-bjorn.andersson@linaro.org> <56CADCE9.9090305@linaro.org> <20160222220750.GI21240@tuxbot> Date: Tue, 8 Mar 2016 19:40:08 -0800 Message-ID: Subject: Re: [PATCH] usb: chipidea: Configure DMA properties and ops from DT From: Bjorn Andersson To: Li Yang Cc: "linux-arm-kernel@lists.infradead.org" , Srinivas Kandagatla , Arnd Bergmann , Peter Chen , Greg Kroah-Hartman , "linux-usb@vger.kernel.org" , linux-arm-msm , lkml , Rajesh Bhagat Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2038 Lines: 48 On Tue, Mar 8, 2016 at 11:52 AM, Li Yang wrote: > On Wed, Mar 2, 2016 at 4:59 PM, Li Yang wrote: >> On Mon, Feb 22, 2016 at 4:07 PM, Bjorn Andersson >> wrote: >>> On Mon 22 Feb 02:03 PST 2016, Srinivas Kandagatla wrote: >>> >>>> >>>> >>>> On 22/02/16 05:32, Bjorn Andersson wrote: >>>> >On certain platforms (e.g. ARM64) the dma_ops needs to be explicitly set >>>> >to be able to do DMA allocations, so use the of_dma_configure() helper >>>> >to populate the dma properties and assign an appropriate dma_ops. [..] >>>> None of the drivers call of_dma_configure() explicitly, which makes me feel >>>> that we are doing something wrong. TBH, this should be handled in more >>>> generic way rather than driver like this having an explicit call to >>>> of_dma_configure(). >>>> >>> >>> I agree, trying to figure out if it should be inherited or something. >> >> I also agree. We need address it in a more generic way. I did a >> search for platform_device_add()/platform_device_register() in the >> kernel source code. I found a lot of them and many could be also >> doing DMA. Looks like it is still too early to assume every device is >> already getting dma_ops set through bus probe. Otherwise, many >> drivers are potentially broken by this assumption. > > Any further comment on this topic? I added the linux-arm mailing list > which was missing from previous discussion. > I had the chance to go through this with Arnd and the verdict is that devices not described in DT should not do DMA (or allocate buffers for doing DMA). So I believe the solution is to fall back on Peter's description; the chipidea driver is the core driver and the Qualcomm code should just be a platform layer. My suggestion is that we turn the chipidea core into a set of APIs that can called by the platform specific pieces. That way we will have the chipidea core be the device described in the DT. I'll try to find some time to prototype this after Connect. Regards, Bjorn