From patchwork Tue Apr 12 18:10:31 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bjorn Helgaas X-Patchwork-Id: 8813721 X-Patchwork-Delegate: bhelgaas@google.com Return-Path: X-Original-To: patchwork-linux-pci@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 423849F54F for ; Tue, 12 Apr 2016 18:10:42 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 56B3420361 for ; Tue, 12 Apr 2016 18:10:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 532D820173 for ; Tue, 12 Apr 2016 18:10:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965747AbcDLSKg (ORCPT ); Tue, 12 Apr 2016 14:10:36 -0400 Received: from mail.kernel.org ([198.145.29.136]:36061 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965275AbcDLSKe (ORCPT ); Tue, 12 Apr 2016 14:10:34 -0400 Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 193DB201BB; Tue, 12 Apr 2016 18:10:33 +0000 (UTC) Received: from localhost (unknown [67.51.76.21]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 190E920173; Tue, 12 Apr 2016 18:10:32 +0000 (UTC) Date: Tue, 12 Apr 2016 13:10:31 -0500 From: Bjorn Helgaas To: Bjorn Helgaas Cc: Jacek Lawrynowicz , linux-pci@vger.kernel.org, Alex Williamson , Joerg Roedel , David Woodhouse , iommu@lists.linux-foundation.org Subject: Re: [PATCH v4 0/6] PCI: Support multiple DMA aliases Message-ID: <20160412181031.GA13093@localhost> References: <20160224193926.7585.10833.stgit@bhelgaas-glaptop2.roam.corp.google.com> <20160412043828.GA11361@localhost> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20160412043828.GA11361@localhost> User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Status: No, score=-7.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On Mon, Apr 11, 2016 at 11:38:28PM -0500, Bjorn Helgaas wrote: > On Wed, Feb 24, 2016 at 01:43:32PM -0600, Bjorn Helgaas wrote: > > This is a revision of Jacek's v3 posting: > > http://lkml.kernel.org/r/1454152012-46337-1-git-send-email-jacek.lawrynowicz@intel.com > > > > The changes from v3 are: > > > > - Split into smaller patches for reviewability > > - Move printk when adding DMA alias > > - Change dma_alias_is_enabled() interface to take two pci_devs > > - Rename dma_alias_is_enabled() to indicate PCI context > > > > The only remaining thing I want to sort out is the dma_alias_is_enabled() > > vs pci_for_each_dma_alias() question Alex raised. I'll respond to the > > relevant part of the patch in this series with my specific questions. > > > > --- > > > > Bjorn Helgaas (1): > > PCI: Rename dma_alias_is_enabled() to pci_devs_are_dma_aliases() > > > > Jacek Lawrynowicz (5): > > PCI: Add pci_add_dma_alias() to abstract implementation > > PCI: Move informational printk to pci_add_dma_alias() > > PCI: Add support for multiple DMA aliases > > pci: Add DMA alias quirk for mic_x200_dma > > PCI: Squash pci_dev_flags to remove holes > > I applied this series to pci/ntb for v4.7. Jacek sent another patch to add a second PCI ID. I don't see it on the list, probably because it's got too much fancy encoding. I applied it, so the last patch now looks like this: commit b1a928cdb477037fb7c10fbf94c47f65f2bcce77 Author: Jacek Lawrynowicz Date: Thu Mar 3 15:53:20 2016 +0100 PCI: Add DMA alias quirk for mic_x200_dma The MIC x200 NTB forwards DMA transactions upstream using multiple alien RIDs. These RIDs have to be added as aliases to the DMA device to allow buffer access when the IOMMU is enabled. Signed-off-by: Jacek Lawrynowicz Signed-off-by: Bjorn Helgaas Reviewed-by: Alex Williamson Acked-by: David Woodhouse --- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 7559e40..8889ac4 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -3725,6 +3725,21 @@ DECLARE_PCI_FIXUP_HEADER(0x1283, 0x8892, quirk_use_pcie_bridge_dma_alias); DECLARE_PCI_FIXUP_HEADER(0x8086, 0x244e, quirk_use_pcie_bridge_dma_alias); /* + * MIC x200 NTB forwards PCIe traffic using multiple alien RIDs. They have to + * be added as aliases to the DMA device in order to allow buffer access + * when IOMMU is enabled. Following devfns have to match RIT-LUT table + * programmed in the EEPROM. + */ +static void quirk_mic_x200_dma_alias(struct pci_dev *pdev) +{ + pci_add_dma_alias(pdev, PCI_DEVFN(0x10, 0x0)); + pci_add_dma_alias(pdev, PCI_DEVFN(0x11, 0x0)); + pci_add_dma_alias(pdev, PCI_DEVFN(0x12, 0x3)); +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2260, quirk_mic_x200_dma_alias); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2264, quirk_mic_x200_dma_alias); + +/* * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) * class code. Fix it. */