Lines Matching +full:msi +full:- +full:parent
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2013-2015 ARM Limited, All Rights Reserved.
9 #include <linux/msi.h>
14 .name = "ITS-pMSI",
22 /* Suck the DeviceID out of the msi-parent property */ in of_pmsi_get_dev_id()
26 ret = of_parse_phandle_with_args(dev->of_node, in of_pmsi_get_dev_id()
27 "msi-parent", "#msi-cells", in of_pmsi_get_dev_id()
31 return -EINVAL; in of_pmsi_get_dev_id()
43 return -1; in iort_pmsi_get_dev_id()
53 msi_info = msi_get_domain_info(domain->parent); in its_pmsi_prepare()
55 if (dev->of_node) in its_pmsi_prepare()
63 info->scratchpad[0].ul = dev_id; in its_pmsi_prepare()
67 return msi_info->ops->msi_prepare(domain->parent, in its_pmsi_prepare()
82 { .compatible = "arm,gic-v3-its", },
89 struct irq_domain *parent; in its_pmsi_init_one() local
91 parent = irq_find_matching_fwnode(fwnode, DOMAIN_BUS_NEXUS); in its_pmsi_init_one()
92 if (!parent || !msi_get_domain_info(parent)) { in its_pmsi_init_one()
94 return -ENXIO; in its_pmsi_init_one()
98 parent)) { in its_pmsi_init_one()
100 return -ENXIO; in its_pmsi_init_one()
103 pr_info("Platform MSI: %s domain created\n", name); in its_pmsi_init_one()
115 int err = -ENXIO; in its_pmsi_parse_madt()
119 (long)its_entry->base_address); in its_pmsi_parse_madt()
120 domain_handle = iort_find_domain_token(its_entry->translation_id); in its_pmsi_parse_madt()
150 if (!of_property_read_bool(np, "msi-controller")) in its_pmsi_of_init()
153 its_pmsi_init_one(of_node_to_fwnode(np), np->full_name); in its_pmsi_of_init()