From nobody Fri Apr 17 09:21:54 2026 Received: from GVAP278CU002.outbound.protection.outlook.com (mail-switzerlandwestazon11020085.outbound.protection.outlook.com [52.101.188.85]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 54979358D00 for ; Wed, 4 Mar 2026 13:27:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.188.85 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772630848; cv=fail; b=EEnf4zbqDFVZ3x7QC9sprTGdvQMFikyDZxZCz88YfIADhbLJxie6e2XhiCv4uybehi+23iql4OdeYVofNdO+9sSi2vYMkQyWS2tyO5ebwD08oalP3Hy3RIz6D+jl77aZs0mM/n04C47DQQ9YGAOmfddxH6jcHFS0tqEsH8ioNfs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772630848; c=relaxed/simple; bh=bQCWBSf0ICrD6546M6Tx2w+0DeOclkZTLv8ed7DqdA4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=J9Drly8gzGER+duez2aIP00TOsZoTV0RNaAg6ZYppTyzXJA7htJIGc5m4A298a1GFNTjrJomv86RQ7Rkp6o9aL91Un7xpwmdla7ThUH2j0HKw+qVXnj8oOGX8zjFA/6pz58LVA3OBZofn5nK9COpFYBOG5cNaVkt1C8PyPBDlmg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=duagon.com; spf=pass smtp.mailfrom=duagon.com; dkim=pass (1024-bit key) header.d=duagon.com header.i=@duagon.com header.b=AM92d2NJ; arc=fail smtp.client-ip=52.101.188.85 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=duagon.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=duagon.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=duagon.com header.i=@duagon.com header.b="AM92d2NJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bSKoLqItKMd9AXqEaNgF3HihPLfSIKFh13YQRKd4CsPeDtGEpVq3K47h6IZg60tfyV4JE5yBwIkxpegKQXURfvDh5Rm9cP7zG0parzy0Y2e/Uycampoua9UxoWrosgTGY02TweOwC+pncssuvui/su5ekMGUwBDL/rILof5cq6VKofNnPmljRm44seIiLQFYi46Vkyo4dosPqa6ARa6DqyeJ6Aga7JVOFLRVq9e5BRL4fpOfl+bQW6Mm2F9NopRZU2UfLr4QA02j+I4k+v3oaAXmbcKC1GZhtN8qI25BzwsEQWY7cYNT2zCwXiKqexnBdIHdH7ybUHCnWXtEmDHvGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DYDhcIqaChVDK3zWcSAuj+yX+MioiByaAS3J3gEZcUM=; b=vF4m/4Kx86lEUwBolAY84Kw/RrxnaLhhzKkh6eojeftWuCKUyBjKCteTE9wBG+YQTyZzkdmtE5fu61ZC7hPYxuE9Oa23yTeLNzb0DeoPiOnR4wVTZgrFQUu0bLX0pqKJaWDE75U0VMLjzhAKs3LXHoy+/Gm5vns1cNWSy2n8s2bkxPN9Sb6kAJ3yoc9A2k+mtevkmuieL64N+WBwtO+g2SMsRquA1+/Zu+ONs6Bc+eX8tlRg7fsyKYJLaVpKrn8kx50GbUp2tWIi1fz7HzqPY5OLHE5WQJ3pR9BZYl9qUKza90ncBQFb+qaq3hfq3Opv+ozrB6vSAnnD1PcKGnWEdA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.93.85.31) smtp.rcpttodomain=gmail.com smtp.mailfrom=duagon.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=duagon.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=duagon.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DYDhcIqaChVDK3zWcSAuj+yX+MioiByaAS3J3gEZcUM=; b=AM92d2NJVnL49H+G7zwzPsMIae5RrAbBwpTgMEOrjK0HQoVeWhqvIrhK3XZssExERo+tXDvSCXpzHnGkKG2rPTEC7/Z/sy6iShmlasHbZH319r30J/7bgI+o6yGRDhl0L0OHPWlC9pqYLlvLcVcIVXipLZ5Aq+lFqFSokaUmfss= Received: from AS4PR10CA0014.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5dc::18) by ZR0P278MB1349.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:82::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Wed, 4 Mar 2026 13:27:22 +0000 Received: from AM1PEPF000252E1.eurprd07.prod.outlook.com (2603:10a6:20b:5dc:cafe::71) by AS4PR10CA0014.outlook.office365.com (2603:10a6:20b:5dc::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.22 via Frontend Transport; Wed, 4 Mar 2026 13:27:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.93.85.31) smtp.mailfrom=duagon.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=duagon.com; Received-SPF: Pass (protection.outlook.com: domain of duagon.com designates 40.93.85.31 as permitted sender) receiver=protection.outlook.com; client-ip=40.93.85.31; helo=ZRZP278CU001.outbound.protection.outlook.com; pr=C Received: from hz-deliver01.de.seppmail.cloud (162.55.72.219) by AM1PEPF000252E1.mail.protection.outlook.com (10.167.16.59) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Wed, 4 Mar 2026 13:27:22 +0000 Received: from hz-glue01.de.seppmail.cloud (unknown [10.11.0.26]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by hz-deliver01.de.seppmail.cloud (Postfix) with ESMTPS id 4fQtkd6rYQz4ws4; Wed, 4 Mar 2026 14:27:21 +0100 (CET) Received: from hz-glue01.de.seppmail.cloud (unknown [172.18.0.4]) by hz-glue01.de.seppmail.cloud (Postfix) with ESMTP id 4fQtkd6Ybtz20SH; Wed, 4 Mar 2026 14:27:21 +0100 (CET) X-SEPP-Suspect: 1a09930c361d43aa88bf895425c4f0df Received: from hz-scan03.de.seppmail.cloud (unknown [10.11.0.33]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by hz-glue03.de.seppmail.cloud (Postfix) with ESMTPS id 4fQtkd5q2Gz1xtv; Wed, 4 Mar 2026 14:27:21 +0100 (CET) Received: from hz-scan03 (localhost [127.0.0.1]) by hz-scan03.de.seppmail.cloud (Postfix) with SMTP id 4fQtkd5Bzfz2XMP; Wed, 04 Mar 2026 14:27:21 +0100 (CET) Received: from hz-m365gate01.de.seppmail.cloud (unknown [10.11.0.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by hz-scan03.de.seppmail.cloud (Postfix) with ESMTPS; Wed, 04 Mar 2026 14:27:20 +0100 (CET) Received: from ZRZP278CU001.outbound.protection.outlook.com (mail-switzerlandnorthazlp17011031.outbound.protection.outlook.com [40.93.85.31]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (secp384r1) server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (not verified)) by hz-m365gate01.de.seppmail.cloud (Postfix) with ESMTPS id 4fQtkb6sr7z2wYF; Wed, 4 Mar 2026 14:27:19 +0100 (CET) Received: from ZR0P278MB1218.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:80::5) by ZR4P278MB1904.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:b5::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Wed, 4 Mar 2026 13:27:18 +0000 Received: from ZR0P278MB1218.CHEP278.PROD.OUTLOOK.COM ([fe80::311:4b5c:48da:9514]) by ZR0P278MB1218.CHEP278.PROD.OUTLOOK.COM ([fe80::311:4b5c:48da:9514%5]) with mapi id 15.20.9678.016; Wed, 4 Mar 2026 13:27:18 +0000 From: Filip Jensen To: morbidrsa@gmail.com Cc: linux-kernel@vger.kernel.org, Filip Jensen , Jose Javier Rodriguez Barbarin Subject: [PATCH v3 1/2] mcb: Use more than the first bar in pci devices Date: Wed, 4 Mar 2026 14:26:49 +0100 Message-Id: <20260304132650.140680-2-dev-Felipe.Jensen@duagon.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260304132650.140680-1-dev-Felipe.Jensen@duagon.com> References: <20260304132650.140680-1-dev-Felipe.Jensen@duagon.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MA4P292CA0010.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:2d::13) To ZR0P278MB1218.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:80::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: ZR0P278MB1218:EE_|ZR4P278MB1904:EE_|AM1PEPF000252E1:EE_|ZR0P278MB1349:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d4e3f69-8a3e-4df9-7472-08de79f1c472 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info-Original: EkuCAkzqIPK4jx2OrqmkA9hrVxlS8kqAXVo67MWc5ls9F48Kc4ehPTA6xroJ6ud5A70YKUmFt06UhHb5ebS2wWT5A54jBUIwigs1WSCKQn+pbg1pEYKT+agzdlpcRUrT1REj260NRqJDPVIyHQC9KV/2sDQk1BZbQuo6S4eAo0Lr737gXMr3anm5L/062q3JJ0JjfXJLpfO+QrVFI/SPYjD+75De3WHsrkkRLJasWJy43vrpvfplYcZXp1Xejp2LE+xVvzvW7rrLwFggs8zVolQXhomdgAk17dvYU+QzCxPkGMq8lewIjHvkLLHJoOHMvUY6gEzKBVMRZ7k9Y2JldNrmo98tU+/GXQ3qemu2f1YHlzKFmlGJMyoiU8jhH2qEv6TigQgD8O2wJXiS/DIGkALn2CxLtu4pkDIhL2KmEJe3b8SkkKSO0+SDeEP43+sFx1TSUdYMvUN1LK0Kca/U9UlOza+ehMg7k1lTNMzChEySGPrYZC0k6lCR1cbfwIqPPxAuaVuCNRTIP9d5FSlhpS70MIa24RR6+CWi75pwHqD4Kz+7nPrf1l9Avb3E8LaTvwL1fpwfmLj7HSxDCbHako2WFKSmoVL4krshDHYOXIeACtJJPdYe+cVPgczwmQhMrHCQtS7q3htbRE2XVRNTk/6ecuo+Y+N8MltsWdHwhii3XSAWVn2fGUbkRLzxcxnojU+OWobvd3Pqrcsx3eaRGmNrK+E7y5O38fYZWwE/DlUkTSInacCBZMD9dKnqUJNF8jaOqszZEuCoAxm3CRmYKdN6ibuLij6LZ2CGbjt6b6A= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZR0P278MB1218.CHEP278.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(52116014)(376014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZR4P278MB1904 X-SEPP-CCCVersion: 2025-12-11T08:12:51+01:00 9ed91da2 X-EOPAttributedMessage: 0 X-MS-Exchange-SkipListedInternetSender: ip=[40.93.85.31];domain=ZRZP278CU001.outbound.protection.outlook.com X-MS-Exchange-ExternalOriginalInternetSender: ip=[40.93.85.31];domain=ZRZP278CU001.outbound.protection.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM1PEPF000252E1.eurprd07.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: eda3f741-65d6-49ca-49ac-08de79f1c1cc X-SM-ruleversion: 2.1.0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|156008|1800799024|36860700016|35042699022|14060799003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?S2E0ank3ekk5YkVIR3NSOHlwZ3ZBaUJ5RmdUdHVJODBoUWZ0NnBkR0VxbCtj?= =?utf-8?B?WlRoYlM3RlZhZ21pdzlwTVZJWjFPY1dGc2I0ZTRJbk1JS2Y5Tmw5RFMrd0Iy?= =?utf-8?B?NjRGOXdJRW5ubHZUNWM5UGpqNC9KeS9Yem5rZVhlSXpQYTh4WkpiNURXNTh3?= =?utf-8?B?M2xlckN3bGZkMzNkeFdSZEZCVVFPMzdTam9BM1lReDZjZnc3MEV3NW1PWW9W?= =?utf-8?B?T1d6S1JMV2FNUGYzWU1FWWUweUVzSW1TMUJlMHIwTEtWZldZQ0JESmJPajFp?= =?utf-8?B?L21OYWNkQ0ovN3p4VHV6dWFNblJGMVN2N0hHOVZUNDNLSldtbk05VDlkUlZ0?= =?utf-8?B?dHgyajRYMDlaYlVaVm11NXZsL3Q5M1JqWm42VUYrSnlXRk9KUTVXTm9ZRDd6?= =?utf-8?B?YnZCYjdMekxtUlJ0ajltbHh6L1pLdVRQMGhEMUhFNGlJSDkveXNmbG1vMGhZ?= =?utf-8?B?eXhqaHFCMHN0azBEc3dmK0ErWWpzdUhZUmpDVDdPRElnMVZjYUZLQkNTMVZa?= =?utf-8?B?bzEzQ00xMkIvQXRmZHJVSzd6ekNsSnRlM05aT0xabGtNOWxyZ04rc1VnbVNO?= =?utf-8?B?ZytjWDAwQ3ZQaFAveHBxVjltNk1iMHlHRy9oY3M0WXVrd2g1R0RJWElXWlUv?= =?utf-8?B?S2o3aENMZnhOUmRsNWFZc0I3TDJnMU5ObGFtaDRsZC9zMldDQzZJY2tOWnBO?= =?utf-8?B?RDRpTUVxRTBZcWpkbjFGbVhKM1FVcnZEZlVXaFdrUmxjZnkvTGdINzJKYncy?= =?utf-8?B?QVBSRGQ1ck4wWHBBV1BLaHVaTmVqNDMvSXBEVHg2SHNOWWc3Uis5Yy92RnYy?= =?utf-8?B?TTB3MmV3cDVuNlZYdUlZTGNJS2N2eS9zbzVrKzJNTU9LeGQrcGw4OGRGZVFa?= =?utf-8?B?aThPcGNiNjRyN2dEUUlPbzFVaVJMekZPVGxvUU05dUh6VVZCQ091MENVSDRZ?= =?utf-8?B?dDVrZmVXK2hMS0ZvdVdoSXJ2NmhlU3RkdmtNLzV2LzV2a2M2YmFoK2QvYlhD?= =?utf-8?B?WCs5aDc1MUZXWVBlYmFTWC9GZVZxSGlzRTBCaWcrS0J6NnhaMTFPRTNWSDRF?= =?utf-8?B?NFdZM2Z1Y2hxa1pDRlplU0NpQWFhWHdZUlpjcXU5U2R1YTZpZ0ZUWWszQk5s?= =?utf-8?B?Y3FKYVNZYUgvdEVSZSs5N25QSzdCZk5QOHBhWk5URWlRdld0dC9qTzdISkI4?= =?utf-8?B?Ym03dUxQN3FnM2lqYnR4c3VxamRHNEJHeWxWWlNtbTd1ekpwVUdnb0ZtelI0?= =?utf-8?B?NkJEcWZjNWVYSUlUakM4YmJEbENNd3VUbkRncWJGY25TMlBOUCtZNlRTdnBZ?= =?utf-8?B?TkdDV0J1QmFiME5YVjhQU2Q2SW41OFh6M1lDemoybm1OVlVxT2pYTWJ2bkFF?= =?utf-8?B?elJaaEZ4amo3THp2VS8yaTIyc1VyRVFacXluZ0ZJKzhWRTdobVlXVDcrcFJu?= =?utf-8?B?akthNWxlZXJvR0VzRnhyOTZWMjBZTE9CVTFodm9RPT0=?= X-Forefront-Antispam-Report: CIP:162.55.72.219;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZRZP278CU001.outbound.protection.outlook.com;PTR:mail-switzerlandnorthazlp17011031.outbound.protection.outlook.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(156008)(1800799024)(36860700016)(35042699022)(14060799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: yOLmSqaC9sfm5f1geG7hEPovQTNYS78+82R3oGts9T/HoR2ALCVhigaHKXV2vQZxZG016MMUwR8AK44qJu4nlgj6sXk5BC0Sfd+IVCEpmh5UfXPqYT38z9rw2G5tc/owaG3nI4Uj9RrBUZeznNsazndG0Ip/IwGQu2ppqxnVgwH8IE2lNxGmZmAiuusDLDUANEAVSaPqGJBHkZAoPT1q2eTgxN9XuNpVMhOu+8SYt9iQSTDHDwMaNr0ymshbsjv0XSx7NkSmg5lBip7LHuuhVwO26z/yVnnitmv2LPLyU2LDP0D+lLDCDRrYtlcfVTspwGfS0MTCY4V+vNrYBuyBPoSjQe33ne0va/keQpiMAkx+smejWqrrgqmTBeVJUgHx48RWKkeo72ibMRmrmnoA6mvLiU7aQcGWQ7j4XDIRa1C33bQVTTO2SIzj5rXlMZTq X-OriginatorOrg: duagon.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2026 13:27:22.2439 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4d4e3f69-8a3e-4df9-7472-08de79f1c472 X-MS-Exchange-CrossTenant-Id: e5e7e96e-8a28-45d6-9093-a40dd5b51a57 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=e5e7e96e-8a28-45d6-9093-a40dd5b51a57;Ip=[162.55.72.219];Helo=[hz-deliver01.de.seppmail.cloud] X-MS-Exchange-CrossTenant-AuthSource: AM1PEPF000252E1.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZR0P278MB1349 Currently The mcb driver in a PCI bus only uses the first BAR when parsing the table of attached devices and thus cannot map devices using other BARS (=C2=ABNo BAR for 16z=C2=BB error will be thrown in method chameleon_parse_gdd if assigned to a bar higher than the first). This patch allows the parsing of devices in BARS other than the first using the standard PCI helpers for accessing PCI BAR info as described in pci.h Reviewed-by: Jose Javier Rodriguez Barbarin Signed-off-by: Filip Jensen --- V2 -> V3: Move declaration of pci_dev inside the only block where it is nee= ded in function chameleon_get_bar. V1 -> V2: No changes in this patch V2: https://lore.kernel.org/lkml/20260302134703.29913-2-dev-Felipe.Jensen@d= uagon.com/ V1: https://lore.kernel.org/lkml/20260226151339.48800-2-dev-Felipe.Jensen@d= uagon.com/ drivers/mcb/mcb-internal.h | 3 +-- drivers/mcb/mcb-lpc.c | 2 +- drivers/mcb/mcb-parse.c | 22 +++++++++++++--------- drivers/mcb/mcb-pci.c | 2 +- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/drivers/mcb/mcb-internal.h b/drivers/mcb/mcb-internal.h index 3602cb3b2021..180ba97cfc08 100644 --- a/drivers/mcb/mcb-internal.h +++ b/drivers/mcb/mcb-internal.h @@ -122,7 +122,6 @@ struct chameleon_bar { #define CHAMELEON_BAR_MAX 6 #define BAR_DESC_SIZE(x) ((x) * sizeof(struct chameleon_bar) + sizeof(__le= 32)) =20 -int chameleon_parse_cells(struct mcb_bus *bus, phys_addr_t mapbase, - void __iomem *base); +int chameleon_parse_cells(struct mcb_bus *bus, void __iomem *base); =20 #endif diff --git a/drivers/mcb/mcb-lpc.c b/drivers/mcb/mcb-lpc.c index 070aa787abc6..d3f48e1ea08b 100644 --- a/drivers/mcb/mcb-lpc.c +++ b/drivers/mcb/mcb-lpc.c @@ -56,7 +56,7 @@ static int mcb_lpc_probe(struct platform_device *pdev) if (IS_ERR(priv->bus)) return PTR_ERR(priv->bus); =20 - ret =3D chameleon_parse_cells(priv->bus, priv->mem->start, priv->base); + ret =3D chameleon_parse_cells(priv->bus, priv->base); if (ret < 0) { goto out_mcb_bus; } diff --git a/drivers/mcb/mcb-parse.c b/drivers/mcb/mcb-parse.c index 2b115cb0e5d9..529ac7fe2ca8 100644 --- a/drivers/mcb/mcb-parse.c +++ b/drivers/mcb/mcb-parse.c @@ -6,6 +6,7 @@ #include #include =20 +#include #include "mcb-internal.h" =20 #define for_each_chameleon_cell(dtype, p) \ @@ -123,8 +124,8 @@ static void chameleon_parse_bar(void __iomem *base, } } =20 -static int chameleon_get_bar(void __iomem **base, phys_addr_t mapbase, - struct chameleon_bar **cb) +static int chameleon_get_bar(void __iomem **base, struct chameleon_bar **c= b, + struct device *dev) { struct chameleon_bar *c; int bar_count; @@ -153,12 +154,16 @@ static int chameleon_get_bar(void __iomem **base, phy= s_addr_t mapbase, chameleon_parse_bar(*base, c, bar_count); *base +=3D BAR_DESC_SIZE(bar_count); } else { - c =3D kzalloc_obj(struct chameleon_bar); + struct pci_dev *pdev =3D to_pci_dev(dev); + + bar_count =3D PCI_STD_NUM_BARS; + c =3D kzalloc_objs(struct chameleon_bar, bar_count); if (!c) return -ENOMEM; - - bar_count =3D 1; - c->addr =3D mapbase; + for (int i =3D 0; i < bar_count; ++i) { + c[i].addr =3D pci_resource_start(pdev, i); + c[i].size =3D pci_resource_len(pdev, i); + } } =20 *cb =3D c; @@ -166,8 +171,7 @@ static int chameleon_get_bar(void __iomem **base, phys_= addr_t mapbase, return bar_count; } =20 -int chameleon_parse_cells(struct mcb_bus *bus, phys_addr_t mapbase, - void __iomem *base) +int chameleon_parse_cells(struct mcb_bus *bus, void __iomem *base) { struct chameleon_fpga_header *header; struct chameleon_bar *cb; @@ -203,7 +207,7 @@ int chameleon_parse_cells(struct mcb_bus *bus, phys_add= r_t mapbase, memcpy(bus->name, header->filename, CHAMELEON_FILENAME_LEN); bus->name[CHAMELEON_FILENAME_LEN] =3D '\0'; =20 - bar_count =3D chameleon_get_bar(&p, mapbase, &cb); + bar_count =3D chameleon_get_bar(&p, &cb, bus->carrier); if (bar_count < 0) { ret =3D bar_count; goto free_header; diff --git a/drivers/mcb/mcb-pci.c b/drivers/mcb/mcb-pci.c index f1353da6ef4f..2401c19a8830 100644 --- a/drivers/mcb/mcb-pci.c +++ b/drivers/mcb/mcb-pci.c @@ -86,7 +86,7 @@ static int mcb_pci_probe(struct pci_dev *pdev, const stru= ct pci_device_id *id) =20 priv->bus->get_irq =3D mcb_pci_get_irq; =20 - ret =3D chameleon_parse_cells(priv->bus, priv->mapbase, priv->base); + ret =3D chameleon_parse_cells(priv->bus, priv->base); if (ret < 0) goto out_mcb_bus; =20 --=20 2.34.1