From patchwork Thu Nov 12 02:33:17 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gavin Shan X-Patchwork-Id: 543192 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id E43361401E7 for ; Thu, 12 Nov 2015 13:36:33 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id BF9C71A0908 for ; Thu, 12 Nov 2015 13:36:33 +1100 (AEDT) X-Original-To: skiboot@lists.ozlabs.org Delivered-To: skiboot@lists.ozlabs.org Received: from e23smtp09.au.ibm.com (e23smtp09.au.ibm.com [202.81.31.142]) (using TLSv1 with cipher CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 0AE3B1A0387 for ; Thu, 12 Nov 2015 13:35:26 +1100 (AEDT) Received: from /spool/local by e23smtp09.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 12 Nov 2015 12:35:25 +1000 Received: from d23dlp02.au.ibm.com (202.81.31.213) by e23smtp09.au.ibm.com (202.81.31.206) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 12 Nov 2015 12:35:23 +1000 X-Helo: d23dlp02.au.ibm.com X-MailFrom: gwshan@linux.vnet.ibm.com X-RcptTo: skiboot@lists.ozlabs.org Received: from d23relay10.au.ibm.com (d23relay10.au.ibm.com [9.190.26.77]) by d23dlp02.au.ibm.com (Postfix) with ESMTP id 070612BB0052 for ; Thu, 12 Nov 2015 13:35:23 +1100 (EST) Received: from d23av03.au.ibm.com (d23av03.au.ibm.com [9.190.234.97]) by d23relay10.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id tAC2ZF6h45875430 for ; Thu, 12 Nov 2015 13:35:23 +1100 Received: from d23av03.au.ibm.com (localhost [127.0.0.1]) by d23av03.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id tAC2YoBx028542 for ; Thu, 12 Nov 2015 13:34:50 +1100 Received: from ozlabs.au.ibm.com (ozlabs.au.ibm.com [9.192.253.14]) by d23av03.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id tAC2Yo4N027666; Thu, 12 Nov 2015 13:34:50 +1100 Received: from bran.ozlabs.ibm.com (haven.au.ibm.com [9.192.254.114]) by ozlabs.au.ibm.com (Postfix) with ESMTP id 3C729A03E2; Thu, 12 Nov 2015 13:33:35 +1100 (AEDT) Received: from gwshan (shangw.ozlabs.ibm.com [10.61.2.199]) by bran.ozlabs.ibm.com (Postfix) with ESMTP id 3274EE46AC; Thu, 12 Nov 2015 13:33:35 +1100 (AEDT) Received: by gwshan (Postfix, from userid 1000) id 0AAD394212B; Thu, 12 Nov 2015 13:33:34 +1100 (AEDT) From: Gavin Shan To: skiboot@lists.ozlabs.org Date: Thu, 12 Nov 2015 13:33:17 +1100 Message-Id: <1447295609-20446-11-git-send-email-gwshan@linux.vnet.ibm.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1447295609-20446-1-git-send-email-gwshan@linux.vnet.ibm.com> References: <1447295609-20446-1-git-send-email-gwshan@linux.vnet.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15111202-0033-0000-0000-0000026065BB Subject: [Skiboot] [PATCH v9 10/22] core/pci: Extend pci_restore_bridge_buses() for PCI slot X-BeenThere: skiboot@lists.ozlabs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Mailing list for skiboot development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Skiboot" Currently, pci_restore_bridge_buses() restores the assigned bus ranges for all PCI bridges behind the specified PHB. This extends the function and allows it to do that for the PCI bridges behind the specified slot. Signed-off-by: Gavin Shan --- core/pci.c | 4 ++-- hw/p7ioc-phb.c | 2 +- hw/phb3.c | 2 +- include/pci.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core/pci.c b/core/pci.c index ad3b17a..1fac425 100644 --- a/core/pci.c +++ b/core/pci.c @@ -1604,9 +1604,9 @@ static int __pci_restore_bridge_buses(struct phb *phb, return 0; } -void pci_restore_bridge_buses(struct phb *phb) +void pci_restore_bridge_buses(struct phb *phb, struct pci_device *pd) { - pci_walk_dev(phb, NULL, __pci_restore_bridge_buses, NULL); + pci_walk_dev(phb, pd, __pci_restore_bridge_buses, NULL); } struct pci_cfg_reg_filter *pci_find_cfg_reg_filter(struct pci_device *pd, diff --git a/hw/p7ioc-phb.c b/hw/p7ioc-phb.c index 66c166f..b743bba 100644 --- a/hw/p7ioc-phb.c +++ b/hw/p7ioc-phb.c @@ -345,7 +345,7 @@ static int64_t p7ioc_sm_freset(struct p7ioc_phb *p) */ if (p->flags & P7IOC_RESTORE_BUS_NUM) { p->flags &= ~P7IOC_RESTORE_BUS_NUM; - pci_restore_bridge_buses(&p->phb); + pci_restore_bridge_buses(&p->phb, NULL); } return OPAL_SUCCESS; diff --git a/hw/phb3.c b/hw/phb3.c index 87bf470..2053277 100644 --- a/hw/phb3.c +++ b/hw/phb3.c @@ -2045,7 +2045,7 @@ static void phb3_setup_for_link_up(struct phb3 *p) */ if (p->flags & PHB3_RESTORE_BUS_NUM) { p->flags &= ~PHB3_RESTORE_BUS_NUM; - pci_restore_bridge_buses(&p->phb); + pci_restore_bridge_buses(&p->phb, NULL); } } diff --git a/include/pci.h b/include/pci.h index fbc62c0..1f648bd 100644 --- a/include/pci.h +++ b/include/pci.h @@ -524,7 +524,7 @@ extern struct pci_device *pci_walk_dev(struct phb *phb, void *), void *userdata); extern struct pci_device *pci_find_dev(struct phb *phb, uint16_t bdfn); -extern void pci_restore_bridge_buses(struct phb *phb); +extern void pci_restore_bridge_buses(struct phb *phb, struct pci_device *pd); extern struct pci_cfg_reg_filter *pci_find_cfg_reg_filter(struct pci_device *pd, uint32_t start, uint32_t len); extern struct pci_cfg_reg_filter *pci_add_cfg_reg_filter(struct pci_device *pd,