From patchwork Tue Aug 5 16:11:06 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Minter X-Patchwork-Id: 4680321 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.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 75B4E9F3FF for ; Tue, 5 Aug 2014 16:12:12 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id AFC822017A for ; Tue, 5 Aug 2014 16:12:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CFE61201BA for ; Tue, 5 Aug 2014 16:12:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754821AbaHEQMI (ORCPT ); Tue, 5 Aug 2014 12:12:08 -0400 Received: from mail-wi0-f171.google.com ([209.85.212.171]:51758 "EHLO mail-wi0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754005AbaHEQME (ORCPT ); Tue, 5 Aug 2014 12:12:04 -0400 Received: by mail-wi0-f171.google.com with SMTP id hi2so7292539wib.16 for ; Tue, 05 Aug 2014 09:12:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=myport.ac.uk; s=google-20130730; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=jlAMtyIacROHSIWagRxEtrq+RPmsj6BgVyFtp+l89Ck=; b=T+2zPJuEcXdUb6ZWX4pG7YjRVB5meKhQFu0HogMVMCD57N9f45jubsGiSfF1knMIG3 xErRgcYXkCr86a7NlBWADFnyPtgtXjCZe9EhTp2MmVdg4hauH1HZRD7Bp+0HEwLsHOjc mqALYE2UeVJFjgCsWM2Duy1o9YZFSafCeFECg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=jlAMtyIacROHSIWagRxEtrq+RPmsj6BgVyFtp+l89Ck=; b=jLKDmiKNRX3z04T7eLucJeEg5kqS0z8gtFFgL7wD7jCGDnn+umw6o3Eip/AIaj1gjZ OjT63V9hQ67DFZ2Kpep/i8oNDuaZ6g6WTjRxLUoOVDBRKONwqbaai35jS6TFkY4P6LLy n3EGk3nuDI8GpPGfe9+LtPbfWmvZsJnTTDCmzQUJD6cX5vI4fNXI3KqNOI8W3UpShxpJ mrjo8taqCEkpOe3UEFz0T+10kD4qUplxkgbyChV/cmkC+rYDjT5N+X1ojgal0t4hH8FH BdsSVvtzpl3AcS08ZTmJzk7b6303xuG6OkDmDvAqObWjr0BFabyLQZeCTg5wUosMKNFg eB+Q== X-Gm-Message-State: ALoCoQm/izV3c6Bb2Iszc1VT9J53PqcfNr0QqIruuFQmNQDnheppFl+lJltSen++ufIXF19bAz2G X-Received: by 10.180.99.4 with SMTP id em4mr8137515wib.8.1407255120564; Tue, 05 Aug 2014 09:12:00 -0700 (PDT) Received: from localhost.xy01.xyratex.com (xyratex195.xyratex.com. [194.131.166.195]) by mx.google.com with ESMTPSA id e3sm5169369wjp.4.2014.08.05.09.11.59 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 05 Aug 2014 09:12:00 -0700 (PDT) From: matthew_minter@xyratex.com To: bhelgaas@google.com, linux-pci@vger.kernel.org Cc: matthew_minter Subject: [PATCH 05/22] Added (untested) support to frv architecture to accomodate new irq init code Date: Tue, 5 Aug 2014 17:11:06 +0100 Message-Id: <1407255083-9356-6-git-send-email-matthew_minter@xyratex.com> X-Mailer: git-send-email 2.0.4 In-Reply-To: <1407255083-9356-1-git-send-email-matthew_minter@xyratex.com> References: <1407255083-9356-1-git-send-email-matthew_minter@xyratex.com> Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,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 From: matthew_minter --- arch/frv/mb93090-mb00/pci-frv.h | 1 - arch/frv/mb93090-mb00/pci-irq.c | 28 +++++++++++++++++----------- arch/frv/mb93090-mb00/pci-vdk.c | 1 - 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/arch/frv/mb93090-mb00/pci-frv.h b/arch/frv/mb93090-mb00/pci-frv.h index a7e487fe..492b56d 100644 --- a/arch/frv/mb93090-mb00/pci-frv.h +++ b/arch/frv/mb93090-mb00/pci-frv.h @@ -36,5 +36,4 @@ extern struct pci_ops *__nongpreldata pci_root_ops; extern unsigned int pcibios_irq_mask; void pcibios_irq_init(void); -void pcibios_fixup_irqs(void); void pcibios_enable_irq(struct pci_dev *dev); diff --git a/arch/frv/mb93090-mb00/pci-irq.c b/arch/frv/mb93090-mb00/pci-irq.c index 1c35c93..3463e30 100644 --- a/arch/frv/mb93090-mb00/pci-irq.c +++ b/arch/frv/mb93090-mb00/pci-irq.c @@ -40,19 +40,25 @@ void __init pcibios_irq_init(void) { } -void __init pcibios_fixup_irqs(void) +int pcibios_map_irq(struct pci_dev *dev, uint8_t slot, uint8_t pin) { - struct pci_dev *dev = NULL; - uint8_t line, pin; - - for_each_pci_dev(dev) { - pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); - if (pin) { - dev->irq = pci_bus0_irq_routing[PCI_SLOT(dev->devfn)][pin - 1]; - pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); - } - pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &line); + uint8_t line; + int irq; + + pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); + if (pin) { + irq = pci_bus0_irq_routing[PCI_SLOT(dev->devfn)][pin - 1]; + pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq); } + pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &line); + return irq; +} + +int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge) +{ + bridge->swizzle_irq = NULL; + bridge->map_irq = pcibios_map_irq; + return 0; } void pcibios_enable_irq(struct pci_dev *dev) diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c index efa5d65..86657a7 100644 --- a/arch/frv/mb93090-mb00/pci-vdk.c +++ b/arch/frv/mb93090-mb00/pci-vdk.c @@ -386,7 +386,6 @@ int __init pcibios_init(void) pci_scan_root_bus(NULL, 0, pci_root_ops, NULL, &resources); pcibios_irq_init(); - pcibios_fixup_irqs(); pcibios_resource_survey(); return 0;