From patchwork Wed Jul 15 16:54:42 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Daney X-Patchwork-Id: 495909 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 158981402AE for ; Thu, 16 Jul 2015 02:56:40 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=yhZoueAG; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752700AbbGOQ4Y (ORCPT ); Wed, 15 Jul 2015 12:56:24 -0400 Received: from mail-ie0-f174.google.com ([209.85.223.174]:34959 "EHLO mail-ie0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753269AbbGOQy6 (ORCPT ); Wed, 15 Jul 2015 12:54:58 -0400 Received: by iecuq6 with SMTP id uq6so38001926iec.2; Wed, 15 Jul 2015 09:54:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GF9qzS0AwIdDzZrwXbeExUyo7u8k/DYwDLUqpFwMNkw=; b=yhZoueAGks0kqWCbep+LbyFKAU7gBau38Z604BFXalJN5SjtvNLl/4xdOwjn7xh+RP FT9D2s2AQ9x+AzP/VNmFKxbWkMdBhFcqu7vl8DZk6zyNUSg/nG7b6W1KzLr+zOt2vMQ6 F9F+9u/x8k7JyET893n8izpHAGwLmVNwE1H+QGTqkLw4d3tnfaoz1YlAzGmGiL2dpfmS gIz8NIxTHEfqQdRgVRI+keLlClIT2hJry7rGIOX66bgCs3718VGdDMpm0jQcfeYzMqVY ZTdPsmusKQhZzTcYmaD/qJ/3f88wg5yiQkmWcYktJMcHPp4Sr7A5N3HxfBM9i+rh/+/d IVVw== X-Received: by 10.107.134.83 with SMTP id i80mr5551924iod.123.1436979297924; Wed, 15 Jul 2015 09:54:57 -0700 (PDT) Received: from dl.caveonetworks.com (64.2.3.194.ptr.us.xo.net. [64.2.3.194]) by smtp.gmail.com with ESMTPSA id 76sm3137195iom.12.2015.07.15.09.54.55 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 15 Jul 2015 09:54:56 -0700 (PDT) Received: from dl.caveonetworks.com (localhost.localdomain [127.0.0.1]) by dl.caveonetworks.com (8.14.5/8.14.5) with ESMTP id t6FGssV4008223; Wed, 15 Jul 2015 09:54:54 -0700 Received: (from ddaney@localhost) by dl.caveonetworks.com (8.14.5/8.14.5/Submit) id t6FGss9S008222; Wed, 15 Jul 2015 09:54:54 -0700 From: David Daney To: linux-arm-kernel@lists.infradead.org, Catalin Marinas , Will Deacon , Bjorn Helgaas , linux-pci@vger.kernel.org, Thomas Gleixner , Jason Cooper Cc: linux-kernel@vger.kernel.org, Robert Richter , David Daney Subject: [PATCH 2/5] gic-its: Allow pci_requester_id to be overridden. Date: Wed, 15 Jul 2015 09:54:42 -0700 Message-Id: <1436979285-8177-3-git-send-email-ddaney.cavm@gmail.com> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1436979285-8177-1-git-send-email-ddaney.cavm@gmail.com> References: <1436979285-8177-1-git-send-email-ddaney.cavm@gmail.com> Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org From: David Daney Signed-off-by: David Daney --- drivers/irqchip/irq-gic-v3-its.c | 14 +++++++++++++- include/linux/irqchip/arm-gic-v3.h | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index 1b7e155..4580970 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -1189,11 +1189,23 @@ static int its_pci_msi_vec_count(struct pci_dev *pdev) return max(msi, msix); } +static u32 its_dflt_pci_requester_id(struct pci_dev *pdev, u16 alias) +{ + return alias; +} + +static its_pci_requester_id_t its_pci_requester_id = its_dflt_pci_requester_id; +void set_its_pci_requester_id(its_pci_requester_id_t fn) +{ + its_pci_requester_id = fn; +} +EXPORT_SYMBOL(set_its_pci_requester_id); + static int its_get_pci_alias(struct pci_dev *pdev, u16 alias, void *data) { struct its_pci_alias *dev_alias = data; - dev_alias->dev_id = alias; + dev_alias->dev_id = its_pci_requester_id(pdev, alias); if (pdev != dev_alias->pdev) dev_alias->count += its_pci_msi_vec_count(dev_alias->pdev); diff --git a/include/linux/irqchip/arm-gic-v3.h b/include/linux/irqchip/arm-gic-v3.h index ffbc034..18e3757 100644 --- a/include/linux/irqchip/arm-gic-v3.h +++ b/include/linux/irqchip/arm-gic-v3.h @@ -389,6 +389,8 @@ int its_cpu_init(void); int its_init(struct device_node *node, struct rdists *rdists, struct irq_domain *domain); +typedef u32 (*its_pci_requester_id_t)(struct pci_dev *, u16); +void set_its_pci_requester_id(its_pci_requester_id_t fn); #endif #endif