From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A868AC3A5A6 for ; Thu, 19 Sep 2019 09:59:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 728BB2196E for ; Thu, 19 Sep 2019 09:59:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qTu9xgnt" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389041AbfISJ7U (ORCPT ); Thu, 19 Sep 2019 05:59:20 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:46165 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388956AbfISJ7T (ORCPT ); Thu, 19 Sep 2019 05:59:19 -0400 Received: by mail-wr1-f67.google.com with SMTP id o18so2363047wrv.13; Thu, 19 Sep 2019 02:59:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=6YboXs4mQIylOrMolQVGgl1HM0og05CGlsxjYW+iH7k=; b=qTu9xgntVL5lvm8X1qZsU5crk286GN6BEL/GGXbnJf64rW/GM+EUt0Bu8yDv8CmWWY xf0qCzH/cdoopyoFtP/Nv/TeXDYeGJxg0hymnHWeAaLlbsdi9PxQqls0t0Ek9aHE6ckI Z2nVvxM8HFr6f/UQnaS98vIMA6blz3OI/WrfnjnqmMSLgissuunGJuxSX6gYsOncqqYV 2jnlCNy1rNjflyG2FVCfGJoO94M7K49xiCoQqGZAIQrjjbOQTNxEBaLMv50mhDFDVXFu d8OwtzzZxwiBCV6Njl4tkOyRZCJlIZpC2MEZc4ROjPr3vEy8WmweZfDpx80RBJT3ZyID 64Cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=6YboXs4mQIylOrMolQVGgl1HM0og05CGlsxjYW+iH7k=; b=FG27jgilOJ7yuR10XVZ8DJQQjXrMOiyh5IT+Y/YTEg/KQwi8IDfvNb12UvsOFvnbMp clYFRl89LAnYXKZmZJq0h8+dvH6Q9AzUNG+S1+jbklPyn7TtMIiSXq4QeGOSeMPtU9BL w2KfVWdZQ30AXWwtuAjl5h4NkIO6gPqUwkl6qZ9oRsaKL6+76/KNWi78sgk2IwbJHCdB YsGkOVKecpYH5A7U/TPnuQyBy0pmX83IyFD76JkxMi+mcPj/iU/ZF70AZjjAYnJi1kvX MZrFkbO14JRuk0U2INOwyI4g9RK3Mwo161jztbAVWNdfREIgYod8pzQNGOq9wDl5qext Vu3g== X-Gm-Message-State: APjAAAUE4jXvOwdmKrt2su86uHvmuiad2pqIMW5XgvjLhQIlQx3dExgE uAGUsj2AO1FFQjm5e+1KZ/TsTtKT X-Google-Smtp-Source: APXvYqwkccDuJHbaNPpKriH1ct1LstdVeisfChkzu85ct1d5VdtuJTBELwZtNELGqXp7JiqyE7uhWA== X-Received: by 2002:a5d:4745:: with SMTP id o5mr6250925wrs.125.1568887156690; Thu, 19 Sep 2019 02:59:16 -0700 (PDT) Received: from localhost.localdomain ([213.86.25.14]) by smtp.googlemail.com with ESMTPSA id y186sm10037704wmb.41.2019.09.19.02.59.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Sep 2019 02:59:15 -0700 (PDT) From: Alexander Gordeev To: linux-kernel@vger.kernel.org Cc: Alexander Gordeev , Michael Chen , devel@driverdev.osuosl.org, dmaengine@vger.kernel.org Subject: [PATCH RFC 0/2] staging: Support Avalon-MM DMA Interface for PCIe Date: Thu, 19 Sep 2019 11:59:11 +0200 Message-Id: X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: dmaengine-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org The Avalon-MM DMA Interface for PCIe is a design found in hard IPs for Intel Arria, Cyclone or Stratix FPGAs. It transfers data between on-chip memory and system memory. This RFC is an attempt to provide a generic API: typedef void (*avalon_dma_xfer_callback)(void *dma_async_param); int avalon_dma_submit_xfer( struct avalon_dma *avalon_dma, enum dma_data_direction direction, dma_addr_t dev_addr, dma_addr_t host_addr, unsigned int size, avalon_dma_xfer_callback callback, void *callback_param); int avalon_dma_submit_xfer_sg(struct avalon_dma *avalon_dma, enum dma_data_direction direction, dma_addr_t dev_addr, struct sg_table *sg_table, avalon_dma_xfer_callback callback, void *callback_param); int avalon_dma_issue_pending(struct avalon_dma *avalon_dma); Patch 1 introduces "avalon-dma" driver that provides the above-mentioned generic interface. Patch 2 adds "avalon-drv" driver using "avalon-dma" to transfer user- provided data. This driver was used to debug and stress "avalon-dma" and could be used as a code base for other implementations. Strictly speaking, it does not need to be part of the kernel tree. A companion tool using "avalon-drv" to DMA files (not part of this patchset) is located at git@github.com:a-gordeev/avalon-drv-tool.git The suggested interface is developed with the standard "dmaengine" in mind and could be reworked to suit it. I would appreciate, however gathering some feedback on the implemenation first - as the hardware- specific code would persist. It is also a call for testing - I only have access to a single Arria 10 device to try on. This series is against v5.3 and could be found at git@github.com:a-gordeev/linux.git avalon-dma-engine CC: Michael Chen CC: devel@driverdev.osuosl.org CC: dmaengine@vger.kernel.org Alexander Gordeev (2): staging: avalon-dma: Avalon DMA engine staging: avalon-drv: Avalon DMA driver drivers/staging/Kconfig | 4 + drivers/staging/Makefile | 2 + drivers/staging/avalon-dma/Kconfig | 45 ++ drivers/staging/avalon-dma/Makefile | 11 + drivers/staging/avalon-dma/avalon-dma-core.c | 515 ++++++++++++++ drivers/staging/avalon-dma/avalon-dma-core.h | 52 ++ .../staging/avalon-dma/avalon-dma-interrupt.c | 118 ++++ .../staging/avalon-dma/avalon-dma-interrupt.h | 13 + drivers/staging/avalon-dma/avalon-dma-util.c | 196 ++++++ drivers/staging/avalon-dma/avalon-dma-util.h | 25 + drivers/staging/avalon-drv/Kconfig | 34 + drivers/staging/avalon-drv/Makefile | 14 + drivers/staging/avalon-drv/avalon-drv-dev.c | 193 ++++++ drivers/staging/avalon-drv/avalon-drv-ioctl.c | 137 ++++ drivers/staging/avalon-drv/avalon-drv-ioctl.h | 12 + drivers/staging/avalon-drv/avalon-drv-mmap.c | 93 +++ drivers/staging/avalon-drv/avalon-drv-mmap.h | 12 + .../staging/avalon-drv/avalon-drv-sg-buf.c | 132 ++++ .../staging/avalon-drv/avalon-drv-sg-buf.h | 26 + drivers/staging/avalon-drv/avalon-drv-util.c | 54 ++ drivers/staging/avalon-drv/avalon-drv-util.h | 12 + drivers/staging/avalon-drv/avalon-drv-xfer.c | 655 ++++++++++++++++++ drivers/staging/avalon-drv/avalon-drv-xfer.h | 24 + drivers/staging/avalon-drv/avalon-drv.h | 22 + include/linux/avalon-dma-hw.h | 72 ++ include/linux/avalon-dma.h | 68 ++ include/uapi/linux/avalon-drv-ioctl.h | 30 + 27 files changed, 2571 insertions(+) create mode 100644 drivers/staging/avalon-dma/Kconfig create mode 100644 drivers/staging/avalon-dma/Makefile create mode 100644 drivers/staging/avalon-dma/avalon-dma-core.c create mode 100644 drivers/staging/avalon-dma/avalon-dma-core.h create mode 100644 drivers/staging/avalon-dma/avalon-dma-interrupt.c create mode 100644 drivers/staging/avalon-dma/avalon-dma-interrupt.h create mode 100644 drivers/staging/avalon-dma/avalon-dma-util.c create mode 100644 drivers/staging/avalon-dma/avalon-dma-util.h create mode 100644 drivers/staging/avalon-drv/Kconfig create mode 100644 drivers/staging/avalon-drv/Makefile create mode 100644 drivers/staging/avalon-drv/avalon-drv-dev.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-ioctl.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-ioctl.h create mode 100644 drivers/staging/avalon-drv/avalon-drv-mmap.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-mmap.h create mode 100644 drivers/staging/avalon-drv/avalon-drv-sg-buf.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-sg-buf.h create mode 100644 drivers/staging/avalon-drv/avalon-drv-util.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-util.h create mode 100644 drivers/staging/avalon-drv/avalon-drv-xfer.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-xfer.h create mode 100644 drivers/staging/avalon-drv/avalon-drv.h create mode 100644 include/linux/avalon-dma-hw.h create mode 100644 include/linux/avalon-dma.h create mode 100644 include/uapi/linux/avalon-drv-ioctl.h -- 2.22.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BAC1FC49ED7 for ; Thu, 19 Sep 2019 09:59:22 +0000 (UTC) Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 90DC421927 for ; Thu, 19 Sep 2019 09:59:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qTu9xgnt" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 90DC421927 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 661E084508; Thu, 19 Sep 2019 09:59:22 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id E9l-9BrwHTCU; Thu, 19 Sep 2019 09:59:21 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 647EF844B5; Thu, 19 Sep 2019 09:59:21 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 51C971BF20B for ; Thu, 19 Sep 2019 09:59:19 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 48FD187E6C for ; Thu, 19 Sep 2019 09:59:19 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Zc4aZlbYClQJ for ; Thu, 19 Sep 2019 09:59:18 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by hemlock.osuosl.org (Postfix) with ESMTPS id 5020687E5F for ; Thu, 19 Sep 2019 09:59:18 +0000 (UTC) Received: by mail-wr1-f66.google.com with SMTP id i1so2413954wro.4 for ; Thu, 19 Sep 2019 02:59:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=6YboXs4mQIylOrMolQVGgl1HM0og05CGlsxjYW+iH7k=; b=qTu9xgntVL5lvm8X1qZsU5crk286GN6BEL/GGXbnJf64rW/GM+EUt0Bu8yDv8CmWWY xf0qCzH/cdoopyoFtP/Nv/TeXDYeGJxg0hymnHWeAaLlbsdi9PxQqls0t0Ek9aHE6ckI Z2nVvxM8HFr6f/UQnaS98vIMA6blz3OI/WrfnjnqmMSLgissuunGJuxSX6gYsOncqqYV 2jnlCNy1rNjflyG2FVCfGJoO94M7K49xiCoQqGZAIQrjjbOQTNxEBaLMv50mhDFDVXFu d8OwtzzZxwiBCV6Njl4tkOyRZCJlIZpC2MEZc4ROjPr3vEy8WmweZfDpx80RBJT3ZyID 64Cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=6YboXs4mQIylOrMolQVGgl1HM0og05CGlsxjYW+iH7k=; b=KUQVJxiLgCRiUJ2R6jfYG9aIgW+/DoTqn7q8cvNI6hRhcE41aSexLh890L/Vz7dp23 yC+UdVTb+T6Ttl/P5YB1e2sK5nQMZU+CiG9KykLFd1omjsrEbEKJUbfDoEiSIVIzUbws IjLooJN3z8MpMJZa6c2xLI5BysxYraZgH6qLD8TfdLk4PBzWwiA0Low4y9P8Y91NvPSb tMVCweQzWDYrZbtI9kw3Mtfm1I/0eY3YulKpZZfunfBO9pS2+uG74DiDHffgCCCNCyKt jPNBEwyh1mta0SAfvozhTjiWVk9JtFYaKeqw2j1u5lZsPbsrbxmC2MQqnjZUG+VCPT0U VKug== X-Gm-Message-State: APjAAAX9QS9to9IGPSwnqUNaR4u8jU1iF9IborLc8YNaI3bsHMDQAVwZ e+W5ooRXY+rAB6pVs9jo2Bo= X-Google-Smtp-Source: APXvYqwkccDuJHbaNPpKriH1ct1LstdVeisfChkzu85ct1d5VdtuJTBELwZtNELGqXp7JiqyE7uhWA== X-Received: by 2002:a5d:4745:: with SMTP id o5mr6250925wrs.125.1568887156690; Thu, 19 Sep 2019 02:59:16 -0700 (PDT) Received: from localhost.localdomain ([213.86.25.14]) by smtp.googlemail.com with ESMTPSA id y186sm10037704wmb.41.2019.09.19.02.59.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Sep 2019 02:59:15 -0700 (PDT) From: Alexander Gordeev To: linux-kernel@vger.kernel.org Subject: [PATCH RFC 0/2] staging: Support Avalon-MM DMA Interface for PCIe Date: Thu, 19 Sep 2019 11:59:11 +0200 Message-Id: X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 X-BeenThere: driverdev-devel@linuxdriverproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Driver Project Developer List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, Michael Chen , Alexander Gordeev , dmaengine@vger.kernel.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" The Avalon-MM DMA Interface for PCIe is a design found in hard IPs for Intel Arria, Cyclone or Stratix FPGAs. It transfers data between on-chip memory and system memory. This RFC is an attempt to provide a generic API: typedef void (*avalon_dma_xfer_callback)(void *dma_async_param); int avalon_dma_submit_xfer( struct avalon_dma *avalon_dma, enum dma_data_direction direction, dma_addr_t dev_addr, dma_addr_t host_addr, unsigned int size, avalon_dma_xfer_callback callback, void *callback_param); int avalon_dma_submit_xfer_sg(struct avalon_dma *avalon_dma, enum dma_data_direction direction, dma_addr_t dev_addr, struct sg_table *sg_table, avalon_dma_xfer_callback callback, void *callback_param); int avalon_dma_issue_pending(struct avalon_dma *avalon_dma); Patch 1 introduces "avalon-dma" driver that provides the above-mentioned generic interface. Patch 2 adds "avalon-drv" driver using "avalon-dma" to transfer user- provided data. This driver was used to debug and stress "avalon-dma" and could be used as a code base for other implementations. Strictly speaking, it does not need to be part of the kernel tree. A companion tool using "avalon-drv" to DMA files (not part of this patchset) is located at git@github.com:a-gordeev/avalon-drv-tool.git The suggested interface is developed with the standard "dmaengine" in mind and could be reworked to suit it. I would appreciate, however gathering some feedback on the implemenation first - as the hardware- specific code would persist. It is also a call for testing - I only have access to a single Arria 10 device to try on. This series is against v5.3 and could be found at git@github.com:a-gordeev/linux.git avalon-dma-engine CC: Michael Chen CC: devel@driverdev.osuosl.org CC: dmaengine@vger.kernel.org Alexander Gordeev (2): staging: avalon-dma: Avalon DMA engine staging: avalon-drv: Avalon DMA driver drivers/staging/Kconfig | 4 + drivers/staging/Makefile | 2 + drivers/staging/avalon-dma/Kconfig | 45 ++ drivers/staging/avalon-dma/Makefile | 11 + drivers/staging/avalon-dma/avalon-dma-core.c | 515 ++++++++++++++ drivers/staging/avalon-dma/avalon-dma-core.h | 52 ++ .../staging/avalon-dma/avalon-dma-interrupt.c | 118 ++++ .../staging/avalon-dma/avalon-dma-interrupt.h | 13 + drivers/staging/avalon-dma/avalon-dma-util.c | 196 ++++++ drivers/staging/avalon-dma/avalon-dma-util.h | 25 + drivers/staging/avalon-drv/Kconfig | 34 + drivers/staging/avalon-drv/Makefile | 14 + drivers/staging/avalon-drv/avalon-drv-dev.c | 193 ++++++ drivers/staging/avalon-drv/avalon-drv-ioctl.c | 137 ++++ drivers/staging/avalon-drv/avalon-drv-ioctl.h | 12 + drivers/staging/avalon-drv/avalon-drv-mmap.c | 93 +++ drivers/staging/avalon-drv/avalon-drv-mmap.h | 12 + .../staging/avalon-drv/avalon-drv-sg-buf.c | 132 ++++ .../staging/avalon-drv/avalon-drv-sg-buf.h | 26 + drivers/staging/avalon-drv/avalon-drv-util.c | 54 ++ drivers/staging/avalon-drv/avalon-drv-util.h | 12 + drivers/staging/avalon-drv/avalon-drv-xfer.c | 655 ++++++++++++++++++ drivers/staging/avalon-drv/avalon-drv-xfer.h | 24 + drivers/staging/avalon-drv/avalon-drv.h | 22 + include/linux/avalon-dma-hw.h | 72 ++ include/linux/avalon-dma.h | 68 ++ include/uapi/linux/avalon-drv-ioctl.h | 30 + 27 files changed, 2571 insertions(+) create mode 100644 drivers/staging/avalon-dma/Kconfig create mode 100644 drivers/staging/avalon-dma/Makefile create mode 100644 drivers/staging/avalon-dma/avalon-dma-core.c create mode 100644 drivers/staging/avalon-dma/avalon-dma-core.h create mode 100644 drivers/staging/avalon-dma/avalon-dma-interrupt.c create mode 100644 drivers/staging/avalon-dma/avalon-dma-interrupt.h create mode 100644 drivers/staging/avalon-dma/avalon-dma-util.c create mode 100644 drivers/staging/avalon-dma/avalon-dma-util.h create mode 100644 drivers/staging/avalon-drv/Kconfig create mode 100644 drivers/staging/avalon-drv/Makefile create mode 100644 drivers/staging/avalon-drv/avalon-drv-dev.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-ioctl.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-ioctl.h create mode 100644 drivers/staging/avalon-drv/avalon-drv-mmap.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-mmap.h create mode 100644 drivers/staging/avalon-drv/avalon-drv-sg-buf.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-sg-buf.h create mode 100644 drivers/staging/avalon-drv/avalon-drv-util.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-util.h create mode 100644 drivers/staging/avalon-drv/avalon-drv-xfer.c create mode 100644 drivers/staging/avalon-drv/avalon-drv-xfer.h create mode 100644 drivers/staging/avalon-drv/avalon-drv.h create mode 100644 include/linux/avalon-dma-hw.h create mode 100644 include/linux/avalon-dma.h create mode 100644 include/uapi/linux/avalon-drv-ioctl.h -- 2.22.0 _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel