Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp165044pxj; Wed, 16 Jun 2021 23:22:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzpAPOvhq/pYKeDgUjI5JwLHSOT9wR5QV8tAsvnWSHqCl2pc50/EIvIFRgNrveEuez0uNrs X-Received: by 2002:a02:c894:: with SMTP id m20mr3113908jao.53.1623910967988; Wed, 16 Jun 2021 23:22:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623910967; cv=none; d=google.com; s=arc-20160816; b=C0RKUQW9cYFE/aC3YQGe41APbs16FKwEQjBpkLp2YMBJgpxedQ1aJrTbrliHsT6kSb RehXNjwL62fEyqQtoCFlVeROPFHmeqkGf2DWzBu1AXGfd5vGU+mIs4y0TjuLPskagG62 K6jnAgN6WcizHE3rYo06ymlfYECe3w6tHQjCJS8Gs/FhxePUQzXr/G8Yl3iXJl8EzlWI mVBrqzV78crN6hfXFU5j0UxaXYD2VFkjBcnwOSqCs1o8/mk3iL1aSfDkO5vJ+p3xgsEx QLxhVVFfGYUgFJq/6oin3JrDVmnFCPTy67VYvD15cVflkrRHMS/eRBvEOke3mc0/Vv/M YpMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=BodHHD22ZzIbF15s98RzvtoIDSuT7znKxGBidll6fMQ=; b=xFlDDLZ/x6poJ/BHrAcrbcDEz7ObFQCmDhoSrQvgJ+C8XewE+9u7AnwzOcExOZFjZI U3lU00W5chlZIzE631pT/825xwBVfnrYrYGACteOcMOR/vE2WtMJ24r5uu8MexJEK6dq hdpSSjR5OpTXcqOmzXkDqDroQ+dr0UH0/D9mIOJkM2+t88BG9Qbavm3KO8Um17h0R6av e7DP4Sx0XmdD9bFE4o56QYQtanaIILwkxrqOv6hoM6IfJtVs6z29w6HpJMrumXUrkMFT 2hG97jmjvxUWCZdQ2dp69hE169Zs5tcXCNhia7V9X2brIcPxAKCpKdW043mtF/gZYymd 0yiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=dFt2djAL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e15si4235961ilu.130.2021.06.16.23.22.36; Wed, 16 Jun 2021 23:22:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=dFt2djAL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229716AbhFQGXH (ORCPT + 99 others); Thu, 17 Jun 2021 02:23:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:51524 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229515AbhFQGXG (ORCPT ); Thu, 17 Jun 2021 02:23:06 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A9D6B60FEA; Thu, 17 Jun 2021 06:20:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1623910859; bh=57dsMicloxNOk1lyxm1iyNvezjRmT/zehpa8a/omzhY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=dFt2djALGgzeWAZu+Dk2zJpX39bUyQPeCqO6YtdyHU7HLGuVBvBJzacgi/liSnitV O61ASU5ehkEC0aHKQjkcPLXw7EROtY140dw5GGXNAUAusxNX3jp0rjYmxX7dnNz6MO op8hoyy0aWGypOGFUsvVav8cO1NS8lbH1N1UsMWk/lEdnRgXGijCCIxUyGURAC1l4I Er5E9qY1Hf/4cXbDTlXdgPk6jEJln700T5ys6wL0nzIXvciKyobgL3BZK4rKfKiMJu qQ+B89er/JIrUg/rcTudzgtQCbC1IClZpuPsXz5h7K56AQl7caMOP4336TQ1lrDRpo vS3c3xVpY/3XA== Date: Thu, 17 Jun 2021 11:50:55 +0530 From: Vinod Koul To: Mark Brown Cc: Bjorn Andersson , Wolfram Sang , linux-arm-msm@vger.kernel.org, Andy Gross , Matthias Kaehlcke , Douglas Anderson , Sumit Semwal , Amit Pundir , linux-spi@vger.kernel.org, linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 4/7] spi: spi-geni-qcom: Add support for GPI dma Message-ID: References: <20210111151651.1616813-1-vkoul@kernel.org> <20210111151651.1616813-5-vkoul@kernel.org> <20210111163504.GD4728@sirena.org.uk> <20210616113505.GB6418@sirena.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 16-06-21, 17:32, Vinod Koul wrote: > On 16-06-21, 12:35, Mark Brown wrote: > > On Wed, Jun 16, 2021 at 02:20:45PM +0530, Vinod Koul wrote: > > > But in this case, that wont work. We have a parent qup device which is > > > the parent for both spi and dma device and needs to be used for > > > dma-mapping! > > > > > If we allow drivers to set dma mapping device and use that, then I can > > > reuse the core. Let me know if that is agreeable to you and I can hack > > > this up. Maybe add a new member in spi_controller which is filled by > > > drivers in can_dma() callback? > > > > Possibly, I'd need to see the code. > > Ok, let me do a prototype and share ... So setting the dma_map_dev in the can_dma() callback does not work as we would need device before we invoke can_dma(), so modified this to be set earlier by driver (in driver probe, set the dma_map_dev) and use in __spi_map_msg(). With this it works for me & I was able to get rid of driver mapping code -- >8 -- diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index e353b7a9e54e..315f7e7545f7 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -961,11 +961,15 @@ static int __spi_map_msg(struct spi_controller *ctlr, struct spi_message *msg) if (ctlr->dma_tx) tx_dev = ctlr->dma_tx->device->dev; + else if (ctlr->dma_map_dev) + tx_dev = ctlr->dma_map_dev; else tx_dev = ctlr->dev.parent; if (ctlr->dma_rx) rx_dev = ctlr->dma_rx->device->dev; + else if (ctlr->dma_map_dev) + rx_dev = ctlr->dma_map_dev; else rx_dev = ctlr->dev.parent; diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 74239d65c7fd..4d3f116f5723 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h @@ -586,6 +586,7 @@ struct spi_controller { bool (*can_dma)(struct spi_controller *ctlr, struct spi_device *spi, struct spi_transfer *xfer); + struct device *dma_map_dev; /* * These hooks are for drivers that want to use the generic -- ~Vinod