Received: by 10.192.165.156 with SMTP id m28csp564884imm; Wed, 11 Apr 2018 03:55:11 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/0Ts97aZTXykQgXCKYkO/wvHhGjN/DSsKaqifrVJK1jP2CNBsF8d6UqkpEks0Oi7NrUeoQ X-Received: by 10.99.143.75 with SMTP id r11mr3063777pgn.341.1523444111767; Wed, 11 Apr 2018 03:55:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523444111; cv=none; d=google.com; s=arc-20160816; b=iXspVuvJrpUrg/9M6beLCfZhtKX0ReqDPYnuTXAHEbeN/nTTrlbjMBoSsKIKKdEY9B 029Ja/Q5ps09rf7aewJvwxbxj2RBYmS5+u3mwIr3Lt2lo2SMu5MSbE3b1Y5oGWkvGz9s qL0f+4j6KIuLFDj/OHtmRViTncSUonRfyXVSjzPCo5BIYWDDLkAclWRI16+GkewgkoZi Yo83Xgi71ttbg8dN3fgb5VPnCEbfANdHthev7MiaK+XTetDkcp26XqCow7q4Dung02z3 Cw0HGYCH0uSUL14T4MMgsb8/BbpoSom93Zy/T3L6YZutwRTCfcUqbgsDZqtIhvd4jnAG actw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=ZDaHYfyFNcbSWhpT6SRg+Jw4HzjUKao83tiEjIWRX3g=; b=zp1wNxfO5oxHdZxMmjurs+TW+BzES5tB4WJ0EWVEfZrp72uDWmyAw02E9JSUv6XfF7 Fm4MXS/y1KRwt5MVuSlNwaIEv6DWJ8/oZATQMilttU55R/iOMHUCZ0oVyTI38pj4bD8I 0CMnI9YDV42UkT7SpHXNhEsOcSr3vhDOM09NT7LdrlA9OlYqptRQt1uvpzGDNiA2l21c RJfA5+m3ThulnhBiAgxygPbbIFt8yRVBIWQNC8oLVS1c09RMwck55NsUEF7+ZbxvMEs/ 988OoeCWsUka5eBxu9jaXv96wcEscHAJ2t7dycqQdbM208/BhSq7s/j+7G2RCN4J90DO vjNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=fzyFMACH; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l5-v6si874388pli.423.2018.04.11.03.54.35; Wed, 11 Apr 2018 03:55:11 -0700 (PDT) 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; dkim=pass header.i=@linaro.org header.s=google header.b=fzyFMACH; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752598AbeDKKvc (ORCPT + 99 others); Wed, 11 Apr 2018 06:51:32 -0400 Received: from mail-oi0-f66.google.com ([209.85.218.66]:43086 "EHLO mail-oi0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751729AbeDKKva (ORCPT ); Wed, 11 Apr 2018 06:51:30 -0400 Received: by mail-oi0-f66.google.com with SMTP id u84-v6so1245683oie.10 for ; Wed, 11 Apr 2018 03:51:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ZDaHYfyFNcbSWhpT6SRg+Jw4HzjUKao83tiEjIWRX3g=; b=fzyFMACHTtUsG+i7MVJIkX4YqU22oTh5px+wZfy62Yrq1+KzcUyj4uBwg1ClCyQuBS XY8BS4uzeQyJKjjwbPNvMy+zvZKdDyp9e4brq+OkzVhGbMJrpv6WXHgTPF9Xa1MOZY5o +86V96hdzKNVbWgkuABFfPA4oh99NBp8SNm3U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ZDaHYfyFNcbSWhpT6SRg+Jw4HzjUKao83tiEjIWRX3g=; b=dRY3lRHK3Sbc15ShC/57VXufdggwoMLiNMSRtU27alffiMIskZQIvwI4EP0vWCm9ZN bYTb8oZMzmq5DTrhcN8NreVR/kTx2At2sXdCCfLyopLQMKmjScuy1w6bAUbv8PV/iLzs 48pVpYfChZ5oTUCOkPWRyp6yu3sFPmLuVsizRDR6suuc9HYz9OI3U8IXfA6aG/rCtrwu CRtsQ/ZAw51n333f3tqVTxkpcla6rTDYAUuqBPbmsopANC95ZLsTOdAejmeSFMJfPtJL L9qzzPo7CiH5BB5bNElWnjchkr+HrMMuPUZYg2RoLSukppdvTYRU9GXUhI86tZxScCBq j4Ig== X-Gm-Message-State: ALQs6tB9+3FKcJ2qcWliatI+YkMoHoW6dTEwjF0ayIdrkex2HE1MxbaW UqDwjykzFzPqdsENFm45zOKrayDbxKzk8IgJIM6Z2A== X-Received: by 2002:aca:3d82:: with SMTP id k124-v6mr2760456oia.168.1523443890263; Wed, 11 Apr 2018 03:51:30 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a9d:7081:0:0:0:0:0 with HTTP; Wed, 11 Apr 2018 03:51:29 -0700 (PDT) In-Reply-To: <20180411094000.GD6014@localhost> References: <0a9fa618bd74e74c135ebee2e40b30d361c1d905.1523346135.git.baolin.wang@linaro.org> <20180411094000.GD6014@localhost> From: Baolin Wang Date: Wed, 11 Apr 2018 18:51:29 +0800 Message-ID: Subject: Re: [PATCH 5/5] dmaengine: sprd: Add 'device_config' and 'device_prep_slave_sg' interfaces To: Vinod Koul Cc: Dan Williams , Eric Long , Mark Brown , dmaengine@vger.kernel.org, LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Vinod, On 11 April 2018 at 17:40, Vinod Koul wrote: > On Tue, Apr 10, 2018 at 03:46:07PM +0800, Baolin Wang wrote: >> This patch adds the 'device_config' and 'device_prep_slave_sg' interfaces >> for users to configure DMA. >> >> Signed-off-by: Baolin Wang >> --- >> drivers/dma/sprd-dma.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 48 insertions(+) >> >> diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c >> index f8038de..c923fb0 100644 >> --- a/drivers/dma/sprd-dma.c >> +++ b/drivers/dma/sprd-dma.c >> @@ -869,6 +869,52 @@ static int sprd_dma_config(struct dma_chan *chan, struct sprd_dma_desc *sdesc, >> return vchan_tx_prep(&schan->vc, &sdesc->vd, flags); >> } >> >> +static struct dma_async_tx_descriptor * >> +sprd_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, >> + unsigned int sglen, enum dma_transfer_direction dir, >> + unsigned long flags, void *context) >> +{ >> + struct sprd_dma_chn *schan = to_sprd_dma_chan(chan); >> + struct sprd_dma_config *slave_cfg = &schan->slave_cfg; >> + struct sprd_dma_desc *sdesc; >> + struct scatterlist *sg; >> + int ret, i; >> + >> + /* TODO: now we only support one sg for each DMA configuration. */ >> + if (!is_slave_direction(slave_cfg->config.direction) || sglen > 1) > > the slave direction check seems wrong to me. .device_config shall give you > dma_slave_config. You should check here if dir passed is slave or not. If > you want to check parameters in slave_config then please use .device_config Correct. Sorry I missed this and I will fix it in next version. > >> + return NULL; >> + >> + sdesc = kzalloc(sizeof(*sdesc), GFP_NOWAIT); >> + if (!sdesc) >> + return NULL; >> + >> + for_each_sg(sgl, sg, sglen, i) { >> + if (slave_cfg->config.direction == DMA_MEM_TO_DEV) >> + slave_cfg->config.src_addr = sg_dma_address(sg); > > Nope slave_config specifies peripheral address and not memory one passed here OK. Thanks for your comments. -- Baolin.wang Best Regards