From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49727C43381 for ; Mon, 11 Mar 2019 11:52:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1934C20657 for ; Mon, 11 Mar 2019 11:52:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=yadro.com header.i=@yadro.com header.b="Ry9TUJ53" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726675AbfCKLws (ORCPT ); Mon, 11 Mar 2019 07:52:48 -0400 Received: from mta-01.yadro.com ([89.207.88.251]:46924 "EHLO mta-01.yadro.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726496AbfCKLwr (ORCPT ); Mon, 11 Mar 2019 07:52:47 -0400 Received: from localhost (unknown [127.0.0.1]) by mta-01.yadro.com (Postfix) with ESMTP id 9B545412D2; Mon, 11 Mar 2019 11:52:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=yadro.com; h= content-type:content-type:content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:date:subject :subject:from:from:received:received:received; s=mta-01; t= 1552305165; x=1554119566; bh=GF6kN91K+PfTL2Cb0UzmEfuUtJ/pzsAT2+q FqgYGn6A=; b=Ry9TUJ53gRY7oTEw+P4l/y/tbJbgTQ1KiMSYsC17gGBoAdR5kOT mDk3hhZVzCTf+NfQQtRC8LX1mMFd2gf+BSdxP1yfGs3ootmEENp8RdwWHnM0yB9n PZ2pLVx6LXnlB+pnaqme6Wy+lF0kh+T2isEQejfJzafCKZG+3jL4GdGI= X-Virus-Scanned: amavisd-new at yadro.com Received: from mta-01.yadro.com ([127.0.0.1]) by localhost (mta-01.yadro.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VCkakqWUyQnt; Mon, 11 Mar 2019 14:52:45 +0300 (MSK) Received: from T-EXCH-02.corp.yadro.com (t-exch-02.corp.yadro.com [172.17.10.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mta-01.yadro.com (Postfix) with ESMTPS id 5672B419D8; Mon, 11 Mar 2019 14:52:42 +0300 (MSK) Received: from NB-148.yadro.com (172.17.15.60) by T-EXCH-02.corp.yadro.com (172.17.10.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.32; Mon, 11 Mar 2019 14:52:41 +0300 From: Sergey Miroshnichenko To: , CC: Oliver O'Halloran , Stewart Smith , Alexey Kardashevskiy , Benjamin Herrenschmidt , Russell Currey , , Sergey Miroshnichenko Subject: [PATCH v5 8/8] powerpc/powernv/pci: Enable reassigning the bus numbers Date: Mon, 11 Mar 2019 14:52:33 +0300 Message-ID: <20190311115233.6514-9-s.miroshnichenko@yadro.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190311115233.6514-1-s.miroshnichenko@yadro.com> References: <20190311115233.6514-1-s.miroshnichenko@yadro.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [172.17.15.60] X-ClientProxiedBy: T-EXCH-01.corp.yadro.com (172.17.10.101) To T-EXCH-02.corp.yadro.com (172.17.10.102) Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org When the pci=realloc command line switch is enabled (which should only be set when working on on top of the skiboot with the "core/pci: Sync VFs and the changes of bdfns between the firmware and the OS" patch serie applied), PowerNV will not depend on PCIe topology info from DT anymore. This makes possible to re-enumerate the fabric, assign the new bus numbers and switch from the pnv_php module to the standard pciehp driver for PCIe hotplug functionality. Signed-off-by: Sergey Miroshnichenko --- arch/powerpc/kernel/pci_dn.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c index 17362a9b4678..9437af1a3b20 100644 --- a/arch/powerpc/kernel/pci_dn.c +++ b/arch/powerpc/kernel/pci_dn.c @@ -595,3 +595,15 @@ static void pci_dev_pdn_setup(struct pci_dev *pdev) pdev->dev.archdata.pci_data = pdn; } DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, pci_dev_pdn_setup); + +char * __init pcibios_setup(char *str) +{ + if (!strncmp(str, "realloc=", 8)) { + if (!strncmp(str + 8, "on", 2)) + pci_add_flags(PCI_REASSIGN_ALL_BUS); + } else if (!strncmp(str, "realloc", 7)) { + pci_add_flags(PCI_REASSIGN_ALL_BUS); + } + + return str; +} -- 2.20.1