iort.c (762f99f4f3cb41a775b5157dd761217beba65873) iort.c (da5fb9e1ad3fbf632dce735f1bdad257ca528499)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2016, Semihalf
4 * Author: Tomasz Nowicki <tn@semihalf.com>
5 *
6 * This file implements early detection/parsing of I/O mapping
7 * reported to OS through firmware via I/O Remapping Table (IORT)
8 * IORT document number: ARM DEN 0049A

--- 1347 unchanged lines hidden (view full) ---

1356 struct acpi_iort_pmcg *pmcg;
1357
1358 /* Retrieve PMCG specific data */
1359 pmcg = (struct acpi_iort_pmcg *)node->node_data;
1360
1361 res[0].start = pmcg->page0_base_address;
1362 res[0].end = pmcg->page0_base_address + SZ_4K - 1;
1363 res[0].flags = IORESOURCE_MEM;
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2016, Semihalf
4 * Author: Tomasz Nowicki <tn@semihalf.com>
5 *
6 * This file implements early detection/parsing of I/O mapping
7 * reported to OS through firmware via I/O Remapping Table (IORT)
8 * IORT document number: ARM DEN 0049A

--- 1347 unchanged lines hidden (view full) ---

1356 struct acpi_iort_pmcg *pmcg;
1357
1358 /* Retrieve PMCG specific data */
1359 pmcg = (struct acpi_iort_pmcg *)node->node_data;
1360
1361 res[0].start = pmcg->page0_base_address;
1362 res[0].end = pmcg->page0_base_address + SZ_4K - 1;
1363 res[0].flags = IORESOURCE_MEM;
1364 res[1].start = pmcg->page1_base_address;
1365 res[1].end = pmcg->page1_base_address + SZ_4K - 1;
1366 res[1].flags = IORESOURCE_MEM;
1364 /*
1365 * The initial version in DEN0049C lacked a way to describe register
1366 * page 1, which makes it broken for most PMCG implementations; in
1367 * that case, just let the driver fail gracefully if it expects to
1368 * find a second memory resource.
1369 */
1370 if (node->revision > 0) {
1371 res[1].start = pmcg->page1_base_address;
1372 res[1].end = pmcg->page1_base_address + SZ_4K - 1;
1373 res[1].flags = IORESOURCE_MEM;
1374 }
1367
1368 if (pmcg->overflow_gsiv)
1369 acpi_iort_register_irq(pmcg->overflow_gsiv, "overflow",
1370 ACPI_EDGE_SENSITIVE, &res[2]);
1371}
1372
1373static struct acpi_platform_list pmcg_plat_info[] __initdata = {
1374 /* HiSilicon Hip08 Platform */

--- 320 unchanged lines hidden ---
1375
1376 if (pmcg->overflow_gsiv)
1377 acpi_iort_register_irq(pmcg->overflow_gsiv, "overflow",
1378 ACPI_EDGE_SENSITIVE, &res[2]);
1379}
1380
1381static struct acpi_platform_list pmcg_plat_info[] __initdata = {
1382 /* HiSilicon Hip08 Platform */

--- 320 unchanged lines hidden ---