Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp486341pxb; Wed, 3 Feb 2021 10:00:33 -0800 (PST) X-Google-Smtp-Source: ABdhPJy8s3MEauNNGpKQAFthFCa9h9uicwRZBRc+BQqyDGsprKVdhgj2k1aXyp2pzYJ2F+owWJpm X-Received: by 2002:a17:906:3105:: with SMTP id 5mr1044081ejx.168.1612375233634; Wed, 03 Feb 2021 10:00:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612375233; cv=none; d=google.com; s=arc-20160816; b=qlwEs5GfmeSgxYKETdIOcyebOSBJPVd+/HbUxTAyyqWmxGIxG6/2sx0wdI2ZJtA/Sq qOc+xi2g/O4Xla7z/xJ2tRgXc6XlXkeGXh09iXgoRrr8zVToMzNTS+FltRnmG6DrLm39 FwavYljLWSR3tjtZaTtSR0AXKufkbUD83OPJMJKJocTDsYoII2DKFCj4MY3PQV9JmXBM sNTnFiXAfiGgTeXKy119pan3vYAtFtez6CwIcTjFW4k93OYbmpKgt+Eig+HIayQE1lQE O2GOMJiyg/SLZWf9+qhhBvtDKMAs5nn1/rgJqMsiTlJCPsfdMx7zMhM2wX6i+InfzRFE +8Xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from :dkim-signature; bh=7TfP0XkwPbIOSCuQoMD++LZfnNY8S/CMhKfnaSFOK+M=; b=H9KZtapYbBltiJpUtUXQUQWwqztclIr3Yx3ZI1ZNV5GfaLwEK1vJYAUJ0LJnliDbSD eLmweQIMlOy1vjaB9q1VDnb89Z1jJZQ4IfKhV9pqnTjnbOdQwzaM0aYP1ieXb5DF/OtF qxnknFmwicahjAhkov+hUiY7UU4ptRoFmEnJLZW2v5JzoHt+T3BIQtt1vS2sEEIwlSsb Xm3qYmx2p/N9A05tv1JkmA6w0yl4wGH6YiVvk8ODyDqceA7dAl/gr086oSShgOn6AYw8 UipCr08ZfWbrX4vqmEZ28bJBb1P3+2Gh4hFSQpqpWndGi6ell0dmchkOLDDS7PSDDdJ5 xpFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@synopsys.com header.s=mail header.b="O/4sm2k6"; 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=synopsys.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id kl24si1845151ejc.100.2021.02.03.10.00.08; Wed, 03 Feb 2021 10:00:33 -0800 (PST) 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=@synopsys.com header.s=mail header.b="O/4sm2k6"; 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=synopsys.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231373AbhBCR61 (ORCPT + 99 others); Wed, 3 Feb 2021 12:58:27 -0500 Received: from smtprelay-out1.synopsys.com ([149.117.73.133]:49746 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231828AbhBCR6P (ORCPT ); Wed, 3 Feb 2021 12:58:15 -0500 Received: from mailhost.synopsys.com (mdc-mailhost2.synopsys.com [10.225.0.210]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id ECC3F400E1; Wed, 3 Feb 2021 17:57:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1612375035; bh=N4SrLHDAvSJ3dnKgcShP+vt6i+VMc5c8hvmAqZM7EKc=; h=From:To:Cc:Subject:Date:From; b=O/4sm2k6j/dARNK3I1ZETfYiYAHhq1RW+k+fYP93sEM9UKkTNbdgJd0Sd0ydEfEng uKg4fl+wgLvQc2G8y7WWbwWe7zpwStRlJMPazTWuc/NDFnjKADFoB+dTPvqqXA5ncD Hlj9dcpJru/+B2IHxclGeejBVD0AnuQDH84yebKD00mq9nOnNTicRuquZTstlKUEML qioIN3yLVl01FXyXQ8HSwl0hseU/Fpbp6PPp7M2R4KSee/6DgFKjc9lngT9lrHXksB wG7R7tL4ebpXyPdgiXeW63+xvYEhFsoOW6vkNpgqE2jSiTPmbvZB1TGfHsyweshvs7 8S9BFImvgV9Gg== Received: from de02dwia024.internal.synopsys.com (de02dwia024.internal.synopsys.com [10.225.19.81]) by mailhost.synopsys.com (Postfix) with ESMTP id 3B411A005E; Wed, 3 Feb 2021 17:57:11 +0000 (UTC) X-SNPS-Relay: synopsys.com From: Gustavo Pimentel To: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, Vinod Koul , Dan Williams , Bjorn Helgaas Cc: Gustavo Pimentel Subject: [PATCH v3 00/15] dmaengine: dw-edma: HDMA support Date: Wed, 3 Feb 2021 18:56:52 +0100 Message-Id: X-Mailer: git-send-email 2.7.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series adds the HDMA support, as long the IP design has set the compatible register map parameter, which allows compatibility at some degree for the existing Synopsys DesignWare eDMA driver that is already available on the Kernel. The HDMA "Hyper-DMA" IP is an enhancement of the eDMA "embedded-DMA" IP. This new improvement comes with a PCI DVSEC that allows to the driver recognize and switch behavior if it's an eDMA or an HDMA, becoming retrocompatible, in the absence of this DVSEC, the driver will assume that is an eDMA IP. It also adds the interleaved support, since it will be similar to the current scatter-gather implementation. As well fixes/improves some abnormal behaviors not detected before, such as: - crash on loading/unloading driver - memory space definition for the data area and for the linked list space - scatter-gather address calculation on 32 bits platforms - minor comment and variable reordering Changes: V2: Applied changes based on Bjorn Helgaas' review Rebased patches on top of v5.11-rc1 version V3: Applied changes based on Lukas Wunner' review Cc: Vinod Koul Cc: Dan Williams Cc: Bjorn Helgaas Cc: dmaengine@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org Gustavo Pimentel (15): dmaengine: dw-edma: Add writeq() and readq() for 64 bits architectures dmaengine: dw-edma: Fix comments offset characters' alignment dmaengine: dw-edma: Add support for the HDMA feature PCI: Add pci_find_vsec_capability() to find a specific VSEC dmaengine: dw-edma: Add PCIe VSEC data retrieval support dmaengine: dw-edma: Add device_prep_interleave_dma() support dmaengine: dw-edma: Improve number of channels check dmaengine: dw-edma: Reorder variables to keep consistency dmaengine: dw-edma: Improve the linked list and data blocks definition dmaengine: dw-edma: Change linked list and data blocks offset and sizes dmaengine: dw-edma: Move struct dentry variable from static definition into dw_edma struct dmaengine: dw-edma: Fix crash on loading/unloading driver dmaengine: dw-edma: Change DMA abreviation from lower into upper case dmaengine: dw-edma: Revert fix scatter-gather address calculation dmaengine: dw-edma: Add pcim_iomap_table return checker drivers/dma/dw-edma/dw-edma-core.c | 178 +++++++++++------- drivers/dma/dw-edma/dw-edma-core.h | 37 ++-- drivers/dma/dw-edma/dw-edma-pcie.c | 275 +++++++++++++++++++++------- drivers/dma/dw-edma/dw-edma-v0-core.c | 300 ++++++++++++++++++++++++------- drivers/dma/dw-edma/dw-edma-v0-core.h | 2 +- drivers/dma/dw-edma/dw-edma-v0-debugfs.c | 77 ++++---- drivers/dma/dw-edma/dw-edma-v0-debugfs.h | 4 +- drivers/dma/dw-edma/dw-edma-v0-regs.h | 291 +++++++++++++++++++----------- drivers/pci/pci.c | 34 ++++ include/linux/pci.h | 2 + include/uapi/linux/pci_regs.h | 6 + 11 files changed, 851 insertions(+), 355 deletions(-) -- 2.7.4