From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH v5 6/9] dmaengine: rcar-dmac: group slave configuration Date: Tue, 8 Mar 2016 03:42:51 +0100 Message-ID: <1457404974-1800-7-git-send-email-niklas.soderlund+renesas@ragnatech.se> References: <1457404974-1800-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: <1457404974-1800-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 dGVjaC5zZT4KLS0tCiBkcml2ZXJzL2RtYS9zaC9yY2FyLWRtYWMuYyB8IDM4ICsrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9u cygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvc2gvcmNhci1k bWFjLmMgYi9kcml2ZXJzL2RtYS9zaC9yY2FyLWRtYWMuYwppbmRleCAwMWNmODJmLi5iMzkxMWZl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS9zaC9yY2FyLWRtYWMuYworKysgYi9kcml2ZXJzL2Rt YS9zaC9yY2FyLWRtYWMuYwpAQCAtMTE4LDE0ICsxMTgsMjIgQEAgc3RydWN0IHJjYXJfZG1hY19k ZXNjX3BhZ2UgewogCXNpemVvZihzdHJ1Y3QgcmNhcl9kbWFjX3hmZXJfY2h1bmspKQogCiAvKgor ICogc3RydWN0IHJjYXJfZG1hY19jaGFuX3NsYXZlIC0gU2xhdmUgY29uZmlndXJhdGlvbgorICog QHNsYXZlX2FkZHI6IHNsYXZlIG1lbW9yeSBhZGRyZXNzCisgKiBAeGZlcl9zaXplOiBzaXplIChp biBieXRlcykgb2YgaGFyZHdhcmUgdHJhbnNmZXJzCisgKi8KK3N0cnVjdCByY2FyX2RtYWNfY2hh bl9zbGF2ZSB7CisJcGh5c19hZGRyX3Qgc2xhdmVfYWRkcjsKKwl1bnNpZ25lZCBpbnQgeGZlcl9z aXplOworfTsKKworLyoKICAqIHN0cnVjdCByY2FyX2RtYWNfY2hhbiAtIFItQ2FyIEdlbjIgRE1B IENvbnRyb2xsZXIgQ2hhbm5lbAogICogQGNoYW46IGJhc2UgRE1BIGNoYW5uZWwgb2JqZWN0CiAg KiBAaW9tZW06IGNoYW5uZWwgSS9PIG1lbW9yeSBiYXNlCiAgKiBAaW5kZXg6IGluZGV4IG9mIHRo aXMgY2hhbm5lbCBpbiB0aGUgY29udHJvbGxlcgotICogQHNyY194ZmVyX3NpemU6IHNpemUgKGlu IGJ5dGVzKSBvZiBoYXJkd2FyZSB0cmFuc2ZlcnMgb24gdGhlIHNvdXJjZSBzaWRlCi0gKiBAZHN0 X3hmZXJfc2l6ZTogc2l6ZSAoaW4gYnl0ZXMpIG9mIGhhcmR3YXJlIHRyYW5zZmVycyBvbiB0aGUg ZGVzdGluYXRpb24gc2lkZQotICogQHNyY19zbGF2ZV9hZGRyOiBzbGF2ZSBzb3VyY2UgbWVtb3J5 IGFkZHJlc3MKLSAqIEBkc3Rfc2xhdmVfYWRkcjogc2xhdmUgZGVzdGluYXRpb24gbWVtb3J5IGFk ZHJlc3MKKyAqIEBzcmM6IHNsYXZlIG1lbW9yeSBhZGRyZXNzIGFuZCBzaXplIG9uIHRoZSBzb3Vy Y2Ugc2lkZQorICogQGRzdDogc2xhdmUgbWVtb3J5IGFkZHJlc3MgYW5kIHNpemUgb24gdGhlIGRl c3RpbmF0aW9uIHNpZGUKICAqIEBtaWRfcmlkOiBoYXJkd2FyZSBNSUQvUklEIGZvciB0aGUgRE1B IGNsaWVudCB1c2luZyB0aGlzIGNoYW5uZWwKICAqIEBsb2NrOiBwcm90ZWN0cyB0aGUgY2hhbm5l bCBDSENSIHJlZ2lzdGVyIGFuZCB0aGUgZGVzYyBtZW1iZXJzCiAgKiBAZGVzYy5mcmVlOiBsaXN0 IG9mIGZyZWUgZGVzY3JpcHRvcnMKQEAgLTE0MiwxMCArMTUwLDggQEAgc3RydWN0IHJjYXJfZG1h Y19jaGFuIHsKIAl2b2lkIF9faW9tZW0gKmlvbWVtOwogCXVuc2lnbmVkIGludCBpbmRleDsKIAot CXVuc2lnbmVkIGludCBzcmNfeGZlcl9zaXplOwotCXVuc2lnbmVkIGludCBkc3RfeGZlcl9zaXpl OwotCXBoeXNfYWRkcl90IHNyY19zbGF2ZV9hZGRyOwotCXBoeXNfYWRkcl90IGRzdF9zbGF2ZV9h ZGRyOworCXN0cnVjdCByY2FyX2RtYWNfY2hhbl9zbGF2ZSBzcmM7CisJc3RydWN0IHJjYXJfZG1h Y19jaGFuX3NsYXZlIGRzdDsKIAlpbnQgbWlkX3JpZDsKIAogCXNwaW5sb2NrX3QgbG9jazsKQEAg LTc5MywxMyArNzk5LDEzIEBAIHN0YXRpYyB2b2lkIHJjYXJfZG1hY19jaGFuX2NvbmZpZ3VyZV9k ZXNjKHN0cnVjdCByY2FyX2RtYWNfY2hhbiAqY2hhbiwKIAljYXNlIERNQV9ERVZfVE9fTUVNOgog CQljaGNyID0gUkNBUl9ETUFDSENSX0RNX0lOQyB8IFJDQVJfRE1BQ0hDUl9TTV9GSVhFRAogCQkg ICAgIHwgUkNBUl9ETUFDSENSX1JTX0RNQVJTOwotCQl4ZmVyX3NpemUgPSBjaGFuLT5zcmNfeGZl cl9zaXplOworCQl4ZmVyX3NpemUgPSBjaGFuLT5zcmMueGZlcl9zaXplOwogCQlicmVhazsKIAog CWNhc2UgRE1BX01FTV9UT19ERVY6CiAJCWNoY3IgPSBSQ0FSX0RNQUNIQ1JfRE1fRklYRUQgfCBS Q0FSX0RNQUNIQ1JfU01fSU5DCiAJCSAgICAgfCBSQ0FSX0RNQUNIQ1JfUlNfRE1BUlM7Ci0JCXhm ZXJfc2l6ZSA9IGNoYW4tPmRzdF94ZmVyX3NpemU7CisJCXhmZXJfc2l6ZSA9IGNoYW4tPmRzdC54 ZmVyX3NpemU7CiAJCWJyZWFrOwogCiAJY2FzZSBETUFfTUVNX1RPX01FTToKQEAgLTEwMzgsNyAr MTA0NCw3IEBAIHJjYXJfZG1hY19wcmVwX3NsYXZlX3NnKHN0cnVjdCBkbWFfY2hhbiAqY2hhbiwg c3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2wsCiAJfQogCiAJZGV2X2FkZHIgPSBkaXIgPT0gRE1BX0RF Vl9UT19NRU0KLQkJID8gcmNoYW4tPnNyY19zbGF2ZV9hZGRyIDogcmNoYW4tPmRzdF9zbGF2ZV9h ZGRyOworCQkgPyByY2hhbi0+c3JjLnNsYXZlX2FkZHIgOiByY2hhbi0+ZHN0LnNsYXZlX2FkZHI7 CiAJcmV0dXJuIHJjYXJfZG1hY19jaGFuX3ByZXBfc2cocmNoYW4sIHNnbCwgc2dfbGVuLCBkZXZf YWRkciwKIAkJCQkgICAgICBkaXIsIGZsYWdzLCBmYWxzZSk7CiB9CkBAIC0xMDkzLDcgKzEwOTks NyBAQCByY2FyX2RtYWNfcHJlcF9kbWFfY3ljbGljKHN0cnVjdCBkbWFfY2hhbiAqY2hhbiwgZG1h X2FkZHJfdCBidWZfYWRkciwKIAl9CiAKIAlkZXZfYWRkciA9IGRpciA9PSBETUFfREVWX1RPX01F TQotCQkgPyByY2hhbi0+c3JjX3NsYXZlX2FkZHIgOiByY2hhbi0+ZHN0X3NsYXZlX2FkZHI7CisJ CSA/IHJjaGFuLT5zcmMuc2xhdmVfYWRkciA6IHJjaGFuLT5kc3Quc2xhdmVfYWRkcjsKIAlkZXNj ID0gcmNhcl9kbWFjX2NoYW5fcHJlcF9zZyhyY2hhbiwgc2dsLCBzZ19sZW4sIGRldl9hZGRyLAog CQkJCSAgICAgIGRpciwgZmxhZ3MsIHRydWUpOwogCkBAIC0xMTEwLDEwICsxMTE2LDEwIEBAIHN0 YXRpYyBpbnQgcmNhcl9kbWFjX2RldmljZV9jb25maWcoc3RydWN0IGRtYV9jaGFuICpjaGFuLAog CSAqIFdlIGNvdWxkIGxvY2sgdGhpcywgYnV0IHlvdSBzaG91bGRuJ3QgYmUgY29uZmlndXJpbmcg dGhlCiAJICogY2hhbm5lbCwgd2hpbGUgdXNpbmcgaXQuLi4KIAkgKi8KLQlyY2hhbi0+c3JjX3Ns YXZlX2FkZHIgPSBjZmctPnNyY19hZGRyOwotCXJjaGFuLT5kc3Rfc2xhdmVfYWRkciA9IGNmZy0+ ZHN0X2FkZHI7Ci0JcmNoYW4tPnNyY194ZmVyX3NpemUgPSBjZmctPnNyY19hZGRyX3dpZHRoOwot CXJjaGFuLT5kc3RfeGZlcl9zaXplID0gY2ZnLT5kc3RfYWRkcl93aWR0aDsKKwlyY2hhbi0+c3Jj LnNsYXZlX2FkZHIgPSBjZmctPnNyY19hZGRyOworCXJjaGFuLT5kc3Quc2xhdmVfYWRkciA9IGNm Zy0+ZHN0X2FkZHI7CisJcmNoYW4tPnNyYy54ZmVyX3NpemUgPSBjZmctPnNyY19hZGRyX3dpZHRo OworCXJjaGFuLT5kc3QueGZlcl9zaXplID0gY2ZnLT5kc3RfYWRkcl93aWR0aDsKIAogCXJldHVy biAwOwogfQotLSAKMi43LjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlvbW11IG1haWxpbmcgbGlzdAppb21tdUBsaXN0cy5saW51eC1mb3VuZGF0aW9u Lm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9p b21tdQ== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-4.sys.kth.se ([130.237.48.193]:38767 "EHLO smtp-4.sys.kth.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932350AbcCHCoS (ORCPT ); Mon, 7 Mar 2016 21:44:18 -0500 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH v5 6/9] dmaengine: rcar-dmac: group slave configuration Date: Tue, 8 Mar 2016 03:42:51 +0100 Message-ID: <1457404974-1800-7-git-send-email-niklas.soderlund+renesas@ragnatech.se> In-Reply-To: <1457404974-1800-1-git-send-email-niklas.soderlund+renesas@ragnatech.se> References: <1457404974-1800-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: <20160308024251.qNkV7PSdWKZ80N3yR05nbnkbsL_5ug5XQaQtS4y8Yic@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 --- drivers/dma/sh/rcar-dmac.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 01cf82f..b3911fe 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -118,14 +118,22 @@ struct rcar_dmac_desc_page { sizeof(struct rcar_dmac_xfer_chunk)) /* + * struct rcar_dmac_chan_slave - Slave configuration + * @slave_addr: slave memory address + * @xfer_size: size (in bytes) of hardware transfers + */ +struct rcar_dmac_chan_slave { + phys_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 +150,8 @@ struct rcar_dmac_chan { void __iomem *iomem; unsigned int index; - unsigned int src_xfer_size; - unsigned int dst_xfer_size; - phys_addr_t src_slave_addr; - phys_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 +799,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 +1044,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 +1099,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 +1116,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.2