From patchwork Fri Nov 15 09:23:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wasim Khan X-Patchwork-Id: 1195496 X-Patchwork-Delegate: priyanka.jain@nxp.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="puxsEqli"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 47DtK53PwHz9sP4 for ; Fri, 15 Nov 2019 20:26:49 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 35676C21E90; Fri, 15 Nov 2019 09:24:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 31C04C21E75; Fri, 15 Nov 2019 09:24:24 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id EEB1CC21C93; Fri, 15 Nov 2019 09:23:46 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70052.outbound.protection.outlook.com [40.107.7.52]) by lists.denx.de (Postfix) with ESMTPS id 99E99C21C51 for ; Fri, 15 Nov 2019 09:23:43 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MJVxgyXRpgmZ83jOyaMsVOs/F2ViHnDX8x41onUK1lko+kWZ7gwSowZdI4mqZlJ40h+I8IN3tGOUdCObKi2GUEqUy297nYzAIiUoRVb/YnZkV63OfHI+QMxxBRbsHR57c/4lRwR2R9alodZInpqm1IgNfyL+kttev0HEKYPUAt4HwxUGKrj5rVH5T2hOI2WxplVw0v3PgdY/6ICVJU5sAlMvy2G6odQd2gdnYRYr4ZgBaOZLv191AkPgYHEx+jgXf9O9nG1/DXxSExVtowXfQbFz7YjG21HwENJcGIXGIgL1T6DOpqPuigH7+yCcnokSpPU0cmJSUYJuQ8DkUksbEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8LKZI3maXaxdnSpv4Eybq+lr4OSF4RPF8jlC1OAECIs=; b=iYFh5qBg94I3FJwHTmYkp2QukOWjQ6eyXyJH7YKORkHIzmBYa7VZoO/xepq1l8uURg6/3OeQ/KcE4lVLlBWSQI+yFBfn5dOt8EwBjTLcTdVWdv0L6nAhlieedkmG7LjJNK0zIqEU03ubCiAsLsrwfBeHN6vWQGix0jTSM5pmWZtQXLF7+4t5XaNt+2dF62Gwg2zZ4LL2fLsIdvy3HCpXX1dgMCVizcZsR8oNztp4SHyOwqyUv1cq7dauiT/DVAgmSvnNCbOggS4aEP5dSwB1mg2Nnlitn8uvgnzwPsrMaMB0dR7znHa25yyZYQlBUzkjVZEdpeBuNYnom/J6ePYlsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8LKZI3maXaxdnSpv4Eybq+lr4OSF4RPF8jlC1OAECIs=; b=puxsEqlio/oBrreBHfcj7xd5Z9ke8M9HKJqo3i2b16R/lqyojoZ2wRHQJFMXBWOvvfJYSqeq2Dm/3Z6E+bKV1XORwvMC9IW+Wmi4XEEq7VYQwiGz+y5gNgcHt5ArMZm4RCzqEsdPIbzYiIQY3mDVFeS8yLpEOtlRpspf1/7ZylY= Received: from VE1PR04MB6702.eurprd04.prod.outlook.com (20.179.234.141) by VE1PR04MB6415.eurprd04.prod.outlook.com (20.179.232.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2451.23; Fri, 15 Nov 2019 09:23:42 +0000 Received: from VE1PR04MB6702.eurprd04.prod.outlook.com ([fe80::e5e3:ef9:4ad0:ecc]) by VE1PR04MB6702.eurprd04.prod.outlook.com ([fe80::e5e3:ef9:4ad0:ecc%7]) with mapi id 15.20.2451.029; Fri, 15 Nov 2019 09:23:42 +0000 From: Wasim Khan To: Priyanka Jain , "Z.q. Hou" Thread-Topic: [PATCH v3 7/9] pci: layerscape: Move streamId allocation to common device tree fixup Thread-Index: AQHVm5Zfd4/g4CwScES8LS0fyXMk0w== Date: Fri, 15 Nov 2019 09:23:42 +0000 Message-ID: <1573809796-1196-8-git-send-email-wasim.khan@nxp.com> References: <1573809796-1196-1-git-send-email-wasim.khan@nxp.com> In-Reply-To: <1573809796-1196-1-git-send-email-wasim.khan@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SG2PR0302CA0001.apcprd03.prod.outlook.com (2603:1096:3:2::11) To VE1PR04MB6702.eurprd04.prod.outlook.com (2603:10a6:803:123::13) authentication-results: spf=none (sender IP is ) smtp.mailfrom=wasim.khan@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.7.4 x-originating-ip: [14.142.151.118] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: ba7f7db4-d17d-468a-17f9-08d769ad81e1 x-ms-traffictypediagnostic: VE1PR04MB6415:|VE1PR04MB6415: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5516; x-forefront-prvs: 02229A4115 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(1496009)(4636009)(366004)(346002)(376002)(396003)(39860400002)(136003)(199004)(189003)(52116002)(316002)(71200400001)(71190400001)(66476007)(66556008)(66446008)(8936002)(478600001)(66066001)(64756008)(36756003)(186003)(66946007)(7736002)(110136005)(6636002)(102836004)(55236004)(6512007)(6506007)(386003)(256004)(26005)(305945005)(4326008)(6436002)(86362001)(3846002)(25786009)(2906002)(6116002)(50226002)(44832011)(5660300002)(54906003)(81166006)(81156014)(76176011)(6486002)(446003)(8676002)(99286004)(14454004)(11346002)(476003)(2616005)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:VE1PR04MB6415; H:VE1PR04MB6702.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: kcBA0ksxmr+sgaflxcQUJJzyKHrJ9Rh3Gqak7ObLE8xmVqY9eClGxMqrnR8GzUhptsHmlERUqqrrRx+aP8FWaHxAmaiTfRaggDkGVTKTmwBknQ48lNTGr3TrQNFcQ+KUAser2H3BiHFDxV6ddBJkUeLtHpPvkV9Xcd6s4xWgQ9obhSF5FMtVMjXTYMk74tyQxx3a5HBFOh9z+8lG8IoATJuVkkyD1Q1yUzbiil7G7C+JBL2jWmrknRxUe/LGX7BuJMExzdoWGu5/mx9ygTYZw+Cl2MEzYqqcPjYW+1fwuAX1oreUaZEVaqYZSq0wrzux0Y35/+KDgANMJAxSSFE2l/S8E39kDXJ1RbH/eb1AcrfCGXFVzPmYDIez3/ntLKA/nRVFYW1shohxIC9dS3Z0AN900SeCjxE33ihG9Lzd2X7UrvWGaCgFuoW9ZObG60y1 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ba7f7db4-d17d-468a-17f9-08d769ad81e1 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2019 09:23:42.7024 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: YYU1pBCXZZx5o6zFTDNEx4AxB9yRX4IRtf73wn3rlOilTsyrc+XXco/A3v0BscDtetUCpvFVtk1EVtXsEiAHJg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6415 Cc: "u-boot@lists.denx.de" Subject: [U-Boot] [PATCH v3 7/9] pci: layerscape: Move streamId allocation to common device tree fixup X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Move streamId allocation to layerscape common device tree fixup. Calculate streamId based on SoC variant. Signed-off-by: Wasim Khan --- Changes in v3:None Changes in v2:None drivers/pci/pcie_layerscape_fixup.c | 16 ++++------------ drivers/pci/pcie_layerscape_fixup_common.c | 24 ++++++++++++++++++++++++ drivers/pci/pcie_layerscape_fixup_common.h | 1 + drivers/pci/pcie_layerscape_gen4_fixup.c | 18 ++++-------------- 4 files changed, 33 insertions(+), 26 deletions(-) diff --git a/drivers/pci/pcie_layerscape_fixup.c b/drivers/pci/pcie_layerscape_fixup.c index 7635df7..b1d2470 100644 --- a/drivers/pci/pcie_layerscape_fixup.c +++ b/drivers/pci/pcie_layerscape_fixup.c @@ -31,17 +31,6 @@ static int ls_pcie_next_lut_index(struct ls_pcie *pcie) return -ENOSPC; /* LUT is full */ } -/* returns the next available streamid for pcie, -errno if failed */ -static int ls_pcie_next_streamid(void) -{ - static int next_stream_id = FSL_PEX_STREAM_ID_START; - - if (next_stream_id > FSL_PEX_STREAM_ID_END) - return -EINVAL; - - return next_stream_id++; -} - static void lut_writel(struct ls_pcie *pcie, unsigned int value, unsigned int offset) { @@ -192,10 +181,13 @@ static void fdt_fixup_pcie_ls(void *blob) bus = bus->parent; pcie = dev_get_priv(bus); - streamid = ls_pcie_next_streamid(); + streamid = pcie_next_streamid(pcie->stream_id_cur, pcie->idx); + if (streamid < 0) { debug("ERROR: no stream ids free\n"); continue; + } else { + pcie->stream_id_cur++; } index = ls_pcie_next_lut_index(pcie); diff --git a/drivers/pci/pcie_layerscape_fixup_common.c b/drivers/pci/pcie_layerscape_fixup_common.c index b953952..3458ae8 100644 --- a/drivers/pci/pcie_layerscape_fixup_common.c +++ b/drivers/pci/pcie_layerscape_fixup_common.c @@ -27,3 +27,27 @@ void ft_pci_setup(void *blob, bd_t *bd) ft_pci_setup_ls(blob, bd); #endif /* CONFIG_FSL_LAYERSCAPE */ } + +#if defined(CONFIG_FSL_LAYERSCAPE) +#ifdef CONFIG_ARCH_LX2160A +/* returns the next available streamid for pcie, -errno if failed */ +int pcie_next_streamid(int currentid, int idx) +{ + if (currentid > FSL_PEX_STREAM_ID_END) + return -EINVAL; + + return currentid | ((idx + 1) << 11); +} +#else +/* returns the next available streamid for pcie, -errno if failed */ +int pcie_next_streamid(int currentid, int idx) +{ + static int next_stream_id = FSL_PEX_STREAM_ID_START; + + if (next_stream_id > FSL_PEX_STREAM_ID_END) + return -EINVAL; + + return next_stream_id++; +} +#endif +#endif /* CONFIG_FSL_LAYERSCAPE */ diff --git a/drivers/pci/pcie_layerscape_fixup_common.h b/drivers/pci/pcie_layerscape_fixup_common.h index 5640406..e747396 100644 --- a/drivers/pci/pcie_layerscape_fixup_common.h +++ b/drivers/pci/pcie_layerscape_fixup_common.h @@ -22,5 +22,6 @@ static void ft_pci_setup_ls_gen4(void *blob, bd_t *bd) } #endif #endif /* CONFIG_FSL_LAYERSCAPE */ +int pcie_next_streamid(int currentid, int id); #endif //_PCIE_LAYERSCAPE_FIXUP_COMMON_H_ diff --git a/drivers/pci/pcie_layerscape_gen4_fixup.c b/drivers/pci/pcie_layerscape_gen4_fixup.c index 480d242..28cfc9a 100644 --- a/drivers/pci/pcie_layerscape_gen4_fixup.c +++ b/drivers/pci/pcie_layerscape_gen4_fixup.c @@ -33,19 +33,6 @@ static int ls_pcie_g4_next_lut_index(struct ls_pcie_g4 *pcie) return -ENOSPC; /* LUT is full */ } -/* returns the next available streamid for pcie, -errno if failed */ -static int ls_pcie_g4_next_streamid(struct ls_pcie_g4 *pcie) -{ - int stream_id = pcie->stream_id_cur; - - if (stream_id > FSL_PEX_STREAM_ID_END) - return -EINVAL; - - pcie->stream_id_cur++; - - return stream_id | ((pcie->idx + 1) << 11); -} - /* * Program a single LUT entry */ @@ -162,10 +149,13 @@ static void fdt_fixup_pcie_ls_gen4(void *blob) bus = bus->parent; pcie = dev_get_priv(bus); - streamid = ls_pcie_g4_next_streamid(pcie); + streamid = pcie_next_streamid(pcie->stream_id_cur, pcie->idx); + if (streamid < 0) { debug("ERROR: no stream ids free\n"); continue; + } else { + pcie->stream_id_cur++; } index = ls_pcie_g4_next_lut_index(pcie);