From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH v4 5/8] dmaengine: rcar-dmac: group slave configuration Date: Tue, 16 Feb 2016 21:39:41 +0100 Message-ID: <1455655184-14478-6-git-send-email-niklas.soderlund+renesas@ragnatech.se> References: <1455655184-14478-1-git-send-email-niklas.soderlund+renesas@ragnatech.se> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1455655184-14478-1-git-send-email-niklas.soderlund+renesas-1zkq55x86MTxsAP9Fp7wbw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, linux-renesas-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Cc: linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, =?UTF-8?q?Niklas=20S=C3=B6derlund?= , geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org, arnd-r2nGTMty4D4@public.gmane.org, linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org, dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org List-Id: linux-arch.vger.kernel.org R3JvdXAgc2xhdmUgYWRkcmVzcyBhbmQgdHJhbnNmZXIgc2l6ZSBpbiBvd24gc3RydWN0cyBmb3Ig c291cmNlIGFuZApkZXN0aW5hdGlvbi4gVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgaG9va2lu ZyB1cCB0aGUgZG1hLW1hcHBpbmcgQVBJCnRvIHRoZSBzbGF2ZSBhZGRyZXNzZXMuCgpTaWduZWQt b2ZmLWJ5OiBOaWtsYXMgU8O2ZGVybHVuZCA8bmlrbGFzLnNvZGVybHVuZCtyZW5lc2FzQHJhZ25h dGVjaC5zZT4KUmV2aWV3ZWQtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRA aWRlYXNvbmJvYXJkLmNvbT4KLS0tCiBkcml2ZXJzL2RtYS9zaC9yY2FyLWRtYWMuYyB8IDM3ICsr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMSBp bnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9z aC9yY2FyLWRtYWMuYyBiL2RyaXZlcnMvZG1hL3NoL3JjYXItZG1hYy5jCmluZGV4IDc4MjBkMDcu Ljc0Mzg3M2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hL3NoL3JjYXItZG1hYy5jCisrKyBiL2Ry aXZlcnMvZG1hL3NoL3JjYXItZG1hYy5jCkBAIC0xMTgsMTQgKzExOCwyMSBAQCBzdHJ1Y3QgcmNh cl9kbWFjX2Rlc2NfcGFnZSB7CiAJc2l6ZW9mKHN0cnVjdCByY2FyX2RtYWNfeGZlcl9jaHVuaykp CiAKIC8qCisgKiBAc2xhdmVfYWRkcjogc2xhdmUgbWVtb3J5IGFkZHJlc3MKKyAqIEB4ZmVyX3Np emU6IHNpemUgKGluIGJ5dGVzKSBvZiBoYXJkd2FyZSB0cmFuc2ZlcnMKKyAqLworc3RydWN0IHJj YXJfZG1hY19jaGFuX3NsYXZlIHsKKwlkbWFfYWRkcl90IHNsYXZlX2FkZHI7CisJdW5zaWduZWQg aW50IHhmZXJfc2l6ZTsKK307CisKKy8qCiAgKiBzdHJ1Y3QgcmNhcl9kbWFjX2NoYW4gLSBSLUNh ciBHZW4yIERNQSBDb250cm9sbGVyIENoYW5uZWwKICAqIEBjaGFuOiBiYXNlIERNQSBjaGFubmVs IG9iamVjdAogICogQGlvbWVtOiBjaGFubmVsIEkvTyBtZW1vcnkgYmFzZQogICogQGluZGV4OiBp bmRleCBvZiB0aGlzIGNoYW5uZWwgaW4gdGhlIGNvbnRyb2xsZXIKLSAqIEBzcmNfeGZlcl9zaXpl OiBzaXplIChpbiBieXRlcykgb2YgaGFyZHdhcmUgdHJhbnNmZXJzIG9uIHRoZSBzb3VyY2Ugc2lk ZQotICogQGRzdF94ZmVyX3NpemU6IHNpemUgKGluIGJ5dGVzKSBvZiBoYXJkd2FyZSB0cmFuc2Zl cnMgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUKLSAqIEBzcmNfc2xhdmVfYWRkcjogc2xhdmUgc291 cmNlIG1lbW9yeSBhZGRyZXNzCi0gKiBAZHN0X3NsYXZlX2FkZHI6IHNsYXZlIGRlc3RpbmF0aW9u IG1lbW9yeSBhZGRyZXNzCisgKiBAc3JjOiBzbGF2ZSBtZW1vcnkgYWRkcmVzcyBhbmQgc2l6ZSBv biB0aGUgc291cmNlIHNpZGUKKyAqIEBkc3Q6IHNsYXZlIG1lbW9yeSBhZGRyZXNzIGFuZCBzaXpl IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlCiAgKiBAbWlkX3JpZDogaGFyZHdhcmUgTUlEL1JJRCBm b3IgdGhlIERNQSBjbGllbnQgdXNpbmcgdGhpcyBjaGFubmVsCiAgKiBAbG9jazogcHJvdGVjdHMg dGhlIGNoYW5uZWwgQ0hDUiByZWdpc3RlciBhbmQgdGhlIGRlc2MgbWVtYmVycwogICogQGRlc2Mu ZnJlZTogbGlzdCBvZiBmcmVlIGRlc2NyaXB0b3JzCkBAIC0xNDIsMTAgKzE0OSw4IEBAIHN0cnVj dCByY2FyX2RtYWNfY2hhbiB7CiAJdm9pZCBfX2lvbWVtICppb21lbTsKIAl1bnNpZ25lZCBpbnQg aW5kZXg7CiAKLQl1bnNpZ25lZCBpbnQgc3JjX3hmZXJfc2l6ZTsKLQl1bnNpZ25lZCBpbnQgZHN0 X3hmZXJfc2l6ZTsKLQlkbWFfYWRkcl90IHNyY19zbGF2ZV9hZGRyOwotCWRtYV9hZGRyX3QgZHN0 X3NsYXZlX2FkZHI7CisJc3RydWN0IHJjYXJfZG1hY19jaGFuX3NsYXZlIHNyYzsKKwlzdHJ1Y3Qg cmNhcl9kbWFjX2NoYW5fc2xhdmUgZHN0OwogCWludCBtaWRfcmlkOwogCiAJc3BpbmxvY2tfdCBs b2NrOwpAQCAtNzkzLDEzICs3OTgsMTMgQEAgc3RhdGljIHZvaWQgcmNhcl9kbWFjX2NoYW5fY29u ZmlndXJlX2Rlc2Moc3RydWN0IHJjYXJfZG1hY19jaGFuICpjaGFuLAogCWNhc2UgRE1BX0RFVl9U T19NRU06CiAJCWNoY3IgPSBSQ0FSX0RNQUNIQ1JfRE1fSU5DIHwgUkNBUl9ETUFDSENSX1NNX0ZJ WEVECiAJCSAgICAgfCBSQ0FSX0RNQUNIQ1JfUlNfRE1BUlM7Ci0JCXhmZXJfc2l6ZSA9IGNoYW4t PnNyY194ZmVyX3NpemU7CisJCXhmZXJfc2l6ZSA9IGNoYW4tPnNyYy54ZmVyX3NpemU7CiAJCWJy ZWFrOwogCiAJY2FzZSBETUFfTUVNX1RPX0RFVjoKIAkJY2hjciA9IFJDQVJfRE1BQ0hDUl9ETV9G SVhFRCB8IFJDQVJfRE1BQ0hDUl9TTV9JTkMKIAkJICAgICB8IFJDQVJfRE1BQ0hDUl9SU19ETUFS UzsKLQkJeGZlcl9zaXplID0gY2hhbi0+ZHN0X3hmZXJfc2l6ZTsKKwkJeGZlcl9zaXplID0gY2hh bi0+ZHN0LnhmZXJfc2l6ZTsKIAkJYnJlYWs7CiAKIAljYXNlIERNQV9NRU1fVE9fTUVNOgpAQCAt MTAzOCw3ICsxMDQzLDcgQEAgcmNhcl9kbWFjX3ByZXBfc2xhdmVfc2coc3RydWN0IGRtYV9jaGFu ICpjaGFuLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbCwKIAl9CiAKIAlkZXZfYWRkciA9IGRpciA9 PSBETUFfREVWX1RPX01FTQotCQkgPyByY2hhbi0+c3JjX3NsYXZlX2FkZHIgOiByY2hhbi0+ZHN0 X3NsYXZlX2FkZHI7CisJCSA/IHJjaGFuLT5zcmMuc2xhdmVfYWRkciA6IHJjaGFuLT5kc3Quc2xh dmVfYWRkcjsKIAlyZXR1cm4gcmNhcl9kbWFjX2NoYW5fcHJlcF9zZyhyY2hhbiwgc2dsLCBzZ19s ZW4sIGRldl9hZGRyLAogCQkJCSAgICAgIGRpciwgZmxhZ3MsIGZhbHNlKTsKIH0KQEAgLTEwOTMs NyArMTA5OCw3IEBAIHJjYXJfZG1hY19wcmVwX2RtYV9jeWNsaWMoc3RydWN0IGRtYV9jaGFuICpj aGFuLCBkbWFfYWRkcl90IGJ1Zl9hZGRyLAogCX0KIAogCWRldl9hZGRyID0gZGlyID09IERNQV9E RVZfVE9fTUVNCi0JCSA/IHJjaGFuLT5zcmNfc2xhdmVfYWRkciA6IHJjaGFuLT5kc3Rfc2xhdmVf YWRkcjsKKwkJID8gcmNoYW4tPnNyYy5zbGF2ZV9hZGRyIDogcmNoYW4tPmRzdC5zbGF2ZV9hZGRy OwogCWRlc2MgPSByY2FyX2RtYWNfY2hhbl9wcmVwX3NnKHJjaGFuLCBzZ2wsIHNnX2xlbiwgZGV2 X2FkZHIsCiAJCQkJICAgICAgZGlyLCBmbGFncywgdHJ1ZSk7CiAKQEAgLTExMTAsMTAgKzExMTUs MTAgQEAgc3RhdGljIGludCByY2FyX2RtYWNfZGV2aWNlX2NvbmZpZyhzdHJ1Y3QgZG1hX2NoYW4g KmNoYW4sCiAJICogV2UgY291bGQgbG9jayB0aGlzLCBidXQgeW91IHNob3VsZG4ndCBiZSBjb25m aWd1cmluZyB0aGUKIAkgKiBjaGFubmVsLCB3aGlsZSB1c2luZyBpdC4uLgogCSAqLwotCXJjaGFu LT5zcmNfc2xhdmVfYWRkciA9IGNmZy0+c3JjX2FkZHI7Ci0JcmNoYW4tPmRzdF9zbGF2ZV9hZGRy ID0gY2ZnLT5kc3RfYWRkcjsKLQlyY2hhbi0+c3JjX3hmZXJfc2l6ZSA9IGNmZy0+c3JjX2FkZHJf d2lkdGg7Ci0JcmNoYW4tPmRzdF94ZmVyX3NpemUgPSBjZmctPmRzdF9hZGRyX3dpZHRoOworCXJj aGFuLT5zcmMuc2xhdmVfYWRkciA9IGNmZy0+c3JjX2FkZHI7CisJcmNoYW4tPmRzdC5zbGF2ZV9h ZGRyID0gY2ZnLT5kc3RfYWRkcjsKKwlyY2hhbi0+c3JjLnhmZXJfc2l6ZSA9IGNmZy0+c3JjX2Fk ZHJfd2lkdGg7CisJcmNoYW4tPmRzdC54ZmVyX3NpemUgPSBjZmctPmRzdF9hZGRyX3dpZHRoOwog CiAJcmV0dXJuIDA7CiB9Ci0tIAoyLjcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KaW9tbXUgbWFpbGluZyBsaXN0CmlvbW11QGxpc3RzLmxpbnV4LWZv dW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2lvbW11 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-3.sys.kth.se ([130.237.48.192]:58082 "EHLO smtp-3.sys.kth.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932210AbcBPUkQ (ORCPT ); Tue, 16 Feb 2016 15:40:16 -0500 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH v4 5/8] dmaengine: rcar-dmac: group slave configuration Date: Tue, 16 Feb 2016 21:39:41 +0100 Message-ID: <1455655184-14478-6-git-send-email-niklas.soderlund+renesas@ragnatech.se> In-Reply-To: <1455655184-14478-1-git-send-email-niklas.soderlund+renesas@ragnatech.se> References: <1455655184-14478-1-git-send-email-niklas.soderlund+renesas@ragnatech.se> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-arch-owner@vger.kernel.org List-ID: To: vinod.koul@intel.com, linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, iommu@lists.linux-foundation.org Cc: robin.murphy@arm.com, laurent.pinchart@ideasonboard.com, geert+renesas@glider.be, linus.walleij@linaro.org, dan.j.williams@intel.com, arnd@arndb.de, linux-arch@vger.kernel.org, =?UTF-8?q?Niklas=20S=C3=B6derlund?= Message-ID: <20160216203941._Rbyx5AU4DcJ4_tyVfLkAa1hd7_V6ZrE_xxmRqJV2og@z> Group slave address and transfer size in own structs for source and destination. This is in preparation for hooking up the dma-mapping API to the slave addresses. Signed-off-by: Niklas Söderlund Reviewed-by: Laurent Pinchart --- drivers/dma/sh/rcar-dmac.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 7820d07..743873c 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -118,14 +118,21 @@ struct rcar_dmac_desc_page { sizeof(struct rcar_dmac_xfer_chunk)) /* + * @slave_addr: slave memory address + * @xfer_size: size (in bytes) of hardware transfers + */ +struct rcar_dmac_chan_slave { + dma_addr_t slave_addr; + unsigned int xfer_size; +}; + +/* * struct rcar_dmac_chan - R-Car Gen2 DMA Controller Channel * @chan: base DMA channel object * @iomem: channel I/O memory base * @index: index of this channel in the controller - * @src_xfer_size: size (in bytes) of hardware transfers on the source side - * @dst_xfer_size: size (in bytes) of hardware transfers on the destination side - * @src_slave_addr: slave source memory address - * @dst_slave_addr: slave destination memory address + * @src: slave memory address and size on the source side + * @dst: slave memory address and size on the destination side * @mid_rid: hardware MID/RID for the DMA client using this channel * @lock: protects the channel CHCR register and the desc members * @desc.free: list of free descriptors @@ -142,10 +149,8 @@ struct rcar_dmac_chan { void __iomem *iomem; unsigned int index; - unsigned int src_xfer_size; - unsigned int dst_xfer_size; - dma_addr_t src_slave_addr; - dma_addr_t dst_slave_addr; + struct rcar_dmac_chan_slave src; + struct rcar_dmac_chan_slave dst; int mid_rid; spinlock_t lock; @@ -793,13 +798,13 @@ static void rcar_dmac_chan_configure_desc(struct rcar_dmac_chan *chan, case DMA_DEV_TO_MEM: chcr = RCAR_DMACHCR_DM_INC | RCAR_DMACHCR_SM_FIXED | RCAR_DMACHCR_RS_DMARS; - xfer_size = chan->src_xfer_size; + xfer_size = chan->src.xfer_size; break; case DMA_MEM_TO_DEV: chcr = RCAR_DMACHCR_DM_FIXED | RCAR_DMACHCR_SM_INC | RCAR_DMACHCR_RS_DMARS; - xfer_size = chan->dst_xfer_size; + xfer_size = chan->dst.xfer_size; break; case DMA_MEM_TO_MEM: @@ -1038,7 +1043,7 @@ rcar_dmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, } dev_addr = dir == DMA_DEV_TO_MEM - ? rchan->src_slave_addr : rchan->dst_slave_addr; + ? rchan->src.slave_addr : rchan->dst.slave_addr; return rcar_dmac_chan_prep_sg(rchan, sgl, sg_len, dev_addr, dir, flags, false); } @@ -1093,7 +1098,7 @@ rcar_dmac_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr, } dev_addr = dir == DMA_DEV_TO_MEM - ? rchan->src_slave_addr : rchan->dst_slave_addr; + ? rchan->src.slave_addr : rchan->dst.slave_addr; desc = rcar_dmac_chan_prep_sg(rchan, sgl, sg_len, dev_addr, dir, flags, true); @@ -1110,10 +1115,10 @@ static int rcar_dmac_device_config(struct dma_chan *chan, * We could lock this, but you shouldn't be configuring the * channel, while using it... */ - rchan->src_slave_addr = cfg->src_addr; - rchan->dst_slave_addr = cfg->dst_addr; - rchan->src_xfer_size = cfg->src_addr_width; - rchan->dst_xfer_size = cfg->dst_addr_width; + rchan->src.slave_addr = cfg->src_addr; + rchan->dst.slave_addr = cfg->dst_addr; + rchan->src.xfer_size = cfg->src_addr_width; + rchan->dst.xfer_size = cfg->dst_addr_width; return 0; } -- 2.7.1